Database
 sql >> Base de données >  >> RDS >> Database

Le modèle relationnel

Le modèle relationnel est le plus populaire des modèles de données logiques et il est à la base des bases de données SQL.

Le modèle relationnel repose sur deux concepts simples :

  • tableaux
  • relations

Le modèle relationnel remonte à 1969 et aux travaux d'Edgar F. Codd, un informaticien anglais. Bien qu'en tant que programmeurs informatiques, nous ayons l'habitude de regarder avec curiosité de nouvelles choses brillantes, une technologie qui peut être au centre de tout ce qui concerne les ordinateurs pendant 50 ans vaut vraiment la peine d'être étudiée.

Le fait que le modèle soit basé sur des tableaux le rend très intuitif à utiliser, car nous sommes habitués à utiliser des tableaux pour organiser les choses. Pensez à une feuille de calcul Excel, par exemple.

Avec les bases de données basées sur SQL, comme PostgreSQL, Oracle, MySQL, SQLite et MS SQL Server, et bien d'autres, les données analysées à l'aide du modèle ER peuvent être modélisées à l'aide du modèle relationnel et être presque immédiatement transformées en un format de base de données SQL, qui peut être considéré comme une implémentation réelle du modèle relationnel, mais nous en parlerons dans d'autres articles.

Dans cet article, je souhaite parler de la théorie et des concepts sur lesquels repose le modèle relationnel, non exprimés en termes mathématiques, mais de ce que cela signifie en pratique.

Si vous êtes étudiant, vous constaterez peut-être que ce que j'écris ici n'est pas ce qui est écrit sur votre manuel, mais peut-être que vous pouvez le lire plus facilement pour saisir les concepts plus formels exprimés dans votre matériel d'apprentissage.

Tableaux

Dans un modèle relationnel, une table est une collection d'éléments.

Il est organisé en lignes et en colonnes :

Nom Âge
Flavio 36
Roger 7
Syd 6

Tuples

Chaque entrée du tableau est appelée un tuple . Vous pouvez également utiliser les termes enregistrer ou ligne .

Un tuple représente une ligne du tableau, comme ceci :

Flavio 36

Attributs

Un attribut est un élément unique dans le tuple.

Dans cet exemple :

Flavio 36

"Flavio" est un attribut. 36 est un autre attribut.

Les tuples sont uniques

Chaque tuple de la table est unique.

Dans le modèle relationnel, nous ne pouvons pas avoir de données en double, ce qui signifie que chaque ligne du tableau doit être différente dans au moins un attribut.

La clé de relation

La chose qui garantit qu'un tuple est unique est la clé de relation .

La clé est un attribut qui doit identifier de manière unique un tuple.

Si la clé de relation est un ensemble d'attributs, elle doit être non redondante . Cela signifie que si nous supprimons l'un des attributs de la clé, la clé ne peut pas garantir son unicité.

Si plusieurs clés peuvent être déterminées, l'une de ces clés sera identifiée comme la clé primaire .

Contrainte d'intégrité de clé

Le ou les attributs de clé de n'importe quel tuple de la table ne doivent jamais être nuls , et ne doit jamais répéter .

Étant donné une clé, nous devons pouvoir pointer vers un tuple/ligne spécifique sans ambiguïté.

Les contraintes du domaine

Chaque attribut a des règles sur la valeur qu'il peut contenir .

Si nous décidons de stocker des nombres, nous ne pouvons pas stocker de chaînes, par exemple. Et nous pourrions décider de ne pas stocker de chaînes de plus de 10 caractères pour les noms.

Nous pouvons également appeler ce type .

La contrainte d'intégrité référentielle

Si une table contient une référence à une table secondaire ou à d'autres tuples dans la même table, nous devons respecter les règles qui empêchent la référence de se casser.

Il faut notamment éviter de casser la référence en :

  • en évitant de supprimer ou de modifier la clé primaire de l'enregistrement vers lequel nous pointons, dans l'autre table.
  • évitez d'insérer un nouvel enregistrement avec une clé inexistante vers laquelle pointer dans l'autre table.
  • éviter de changer la clé de l'enregistrement vers lequel on pointe, sans s'assurer que la nouvelle clé existe dans l'autre table.

Un SGBD (Système de Gestion de Base de Données) mettra en place des mesures pour nous aider à mettre en place l'intégrité référentielle.