Le modèle relationnel

icône de pdf
Signaler

Les bases de données actuelles gèrent de très grosses quantités d’informations (de l’ordre du pétaoctet). Dans ce cadre, identifier rapidement des informations est d’une importance capitale. Les notions de clé primaire et clé étrangère permettent l’identification simple d’éléments dans une ou plusieurs tables.

I) Clés primaires

Soit S le schéma d’une relation R, et K un ensemble d’attributs de S.

On dit que K est une clé primaire pour une relation R de schéma S si la connaissance du ou des seuls attributs de K pour les éléments de R permet d’identifier un unique enregistrement de R.

Plus formellement, pour tout couple d’enregistrements t1 et t2 de R, si t1 et t2 coïncident sur K, alors on a t1=t2.

Dans l’exemple de la fiche https://www.annabac.com/revision-bac/vocabulaire-des-bases-de-donnees sur la relation relative aux élèves d’une classe de Terminale, aucun attribut seul ne peut jouer le rôle de clé primaire : le nom Garcin correspond à deux personnes différentes, et il en est de même pour les prénoms, dates de naissances et spécialités étudiées.

Plusieurs couples pourraient, dans cet exemple, jouer le rôle de clé primaire, le couple (Nom, Prénom) paraît naturel. Néanmoins, rien ne garantit que des personnes différentes n’aient pas les mêmes noms et prénoms.

La solution consiste alors à ajouter une clé primaire artificielle, qui est le plus souvent un identifiant entier naturel. Les systèmes gestionnaires de bases de données proposent de créer des identifiants auto-incrémentés.

La relation précédente devient alors :

30ec1709-3441-4e4d-96ac-01cb7272d6e5

II) Clés étrangères

Un attribut dans une relation R′ de schéma S′ qui sert à caractériser un enregistrement dans une relation R de schéma S et qui est une clé primaire de S est appelé une clé étrangère dans la relation R′.

Dans l’exemple précédent, on souhaite désormais stocker dans une autre table leurs résultats aux devoirs d’informatique. Si on le faisait dans la même table, il y aurait soit des attributs pour lesquels des enregistrements n’ont pas de valeur (ce qui est à éviter) soit des attributs dont les données seraient des listes (à éviter aussi, on parle d’atomicité des attributs en normalisation des bases de données, c’est-à-dire que les attributs doivent être insécables). Cela nuirait en tout cas aux performances de la base de données.

On choisit alors de représenter ces données dans une autre relation R’, dont le schéma est S’ = (id_eleve, N), (devoir, S), (note, R),R est l’ensemble des décimaux. Un exemple de table pourrait être :

21d83ae2-f560-4d01-9739-d8ddafbf2dc6

id_eleve est une clé étrangère dans cette relation R’. En effet, elle est clé primaire dans la table R et sert à caractériser les enregistrements de R (les élèves) dans R’ (leurs notes).

Cette table ne comporte aucun attribut clé primaire, mais le couple (id_eleve, devoir) constitue une clé primaire, en admettant qu’aucun élève ne peut avoir deux notes différentes pour le même devoir.

III) Contraintes d’intégrité

Une contrainte d’intégrité est une règle qui définit la cohérence d’une donnée ou d’un ensemble de données d’une base de données.

Le type de données que l’on cherche à stocker définit une contrainte de domaine. Cela est intégré dans le modèle du schéma relationnel.

Chaque enregistrement d’une relation doit pouvoir être identifié par une clé primaire, unique et non nulle. On parle dans ce cas de contrainte de relation.

Lorsque des relations sont liées, il est indispensable que les trois règles suivantes soient respectées :

Une clé étrangère ne peut être une valeur qui n’est pas clé primaire de la table à laquelle elle se réfère.

Un enregistrement de la table primaire ne peut être effacé s’il possède des enregistrements liés.

La clé primaire ne peut être changée dans la table primaire si cet enregistrement possède des enregistrements liés.

Ces trois règles définissent la notion de contrainte d’intégrité référentielle d’une base de données. Cet ensemble de règles est au cœur même des bases de données et confère le caractère relationnel au modèle étudié.