Définition du modèle relationnel

Objectif

  • Comprendre les objectifs et la logique du modèle relationnel.

Mise en situation

Comment décrire aux systèmes de gestion de base de données la structure des données ?

Si la réponse immédiate est « grâce au langage SQL », il ne faut pas oublier que SQL doit bien se baser sur une certaine logique.

Et en effet, cela fait des dizaines d'années que les SGBD relationnels utilisent une structure de tableau pour stocker les données. Ce n'est pas un hasard, car ils se basent tous sur le modèle relationnel, qui indique comment formaliser des données et leurs interactions sous forme de tableau.

Dans ce module, vous découvrirez la philosophie du modèle relationnel. Le modèle relationnel est indépendant de tout SGBD. Il est fondamental car, bien utilisé, il permet d'assurer la cohérence des données.

Introduction

Le modèle relationnel a été introduit par Codd[1], en 1970 au laboratoire de recherche d'IBM de San José. Il s'agit d'un modèle simple et puissant à la base de la majorité des bases de données, encore aujourd'hui.

Les objectifs du modèle relationnel, formulés par Codd, sont les suivants :

  • Assurer l'indépendance des applications et de la représentation interne des données.

  • Gérer les problèmes de cohérence et de redondance des données.

  • Utiliser des langages de données basés sur des théories solides.

DéfinitionModèle relationnel

On appelle modèle relationnel un ensemble de concepts permettant de formaliser logiquement la description d'articles de fichiers plats, indépendamment de la façon dont ils sont physiquement stockés dans une mémoire numérique.

Le modèle relationnel inclut des concepts pour la description de données, ainsi que des concepts pour la manipulation de données.

FondamentalReprésenter le monde en tables

Le modèle relationnel permet de représenter les données que l'on va gérer à l'aide d'un très petit nombre de concepts très simples :

  • Les relations ou tables : des lignes et des colonnes.

  • Les domaines de valeurs : chaque case d'une table prend une unique valeur dans un domaine pré-défini.

  • Les clés : il existe des cases dont les valeurs doivent être uniques et non nulles.

  • Les clés étrangères : il existe des cases qui doivent prendre une valeur existante dans les cases d'une autre table.