Le modèle relationnel
Comme nous l'avons vu, la gestion et l'interrogation d'une grande quantité de données nécessite une structure plus complexe qu'un simple tableau. Plusieurs modèles existent et sont adaptés à des situations différentes, on peut notamment citer le modèle hiérarchiques, le modèle réseau...Nous nous intéresserons cette année uniquement au modèle relationnel.
Comme nous pouvons le voir ci-dessus le modèle relationnel est le modèle de bases de données le plus répandu dans le monde.
E.F Codd
Dans le modèle relationnel, les données sont organisées en tables appelées aussi relations. Ces relations sont soumises à des contraintes, qui délimitent les données a l'intérieur des relations, et qui établissent des liens entre les relations.
Mais tout cela est très théorique. Nous allons donc nous intéresser à un exemple précis pour comprendre tout cela.
Relation, attribut, domaine
Une relation est une table regroupant des données. Elle est caractérisé par son nom. Il doit être unique au sein de la base de données.
Un attribut correspond au titre d'une colonne d'une relation.
Les données correspondant à chaque attribut ont
une nature particulière (date, heure, nom, numéro
d'identification...). On peut les définir grâce à des types
prédéfinis (ENTIER, TEXTE...) ou à des ensembles
(maladies={angine, grippe, fracture, ...})
Clef primaire, clef étrangère
Mais une base de données c'est n'est pas une seule relation, mais un ensemble de relations. Il faut donc d'une part garantir que l'on ne confondra pas les données présentes dans chaque relation, et d'autre part modéliser un lien entre ces relations.Pour cela on utilisera deux notions :
Clef primaire
Chaque relation doit comporter une unique clef primaire. C'est une donnée qui permet d'identifier de manière unique une ligne dans une relation. Par exemple dans une table regroupant des voitures, la plaque d'imatriculation est une bonne clef primaire.
- Une clef primaire peut être composée de plusieurs attributs. Par exemple, dans une base de donnée regroupant les élèves du lycée, l'ensemble (nom, prénom, date de naissance) est une bonne clef primaire. La probabilité d'avoir deux homonymes parfaits nés le même jour étant très faible.
- Si l'ensemble des données d'une table ne présente pas de clef primaire, il est possible d'ajouter un attribut comprenant un numéro d’identification, généré automatiquement.
Clef étrangère
Une clef étrangère est un attribut dans une relation dont les données sont prises parmi les données d'une clef primaire d'une autre relation.
Dans l'exemple ci-dessous, la relation LesCages a pour clef primaire l'attribut noCage (numero de cage).
La relation LesAnimaux possède une clef étrangère nommée également noCage (ce qui n'est pas obligatoire). Celma signifie que le numéro de la cage de chaque animal est nécessairement pris dans la relation qui répertorie toutes les cages du zoo.
Dans l'exemple ci-dessous, la relation LesCages a pour clef primaire l'attribut noCage (numero de cage).
La relation LesAnimaux possède une clef étrangère nommée également noCage (ce qui n'est pas obligatoire). Celma signifie que le numéro de la cage de chaque animal est nécessairement pris dans la relation qui répertorie toutes les cages du zoo.
Principes de construction et schéma
On ne vous demandera pas cette année de construire une base de données de A à Z, cependant il est important de comprendre les principes de base du modèle relationnel :- séparer les données dans plusieurs relations
- chaque relation contient des données relatives à un même sujet
- éviter la redondance des données
- ne pas stocker des données qui peuvent être calculées
- chaque attribut ne contient qu'une seule information
La schématisation des bases de données permet de préciser les noms des relations, les attributs qu'elles comportent les clefs primaires et étrangères.
Si nous reprenons la base de donnée exemple précédente présentant les animaux d'un zoo, les cages qui les logent et les maladies qu'ils ont contractées. La représentation schématique de la base sera la suivante :
- LesAnimaux(NomA, sexe, type, anNais, pays, noCage)
- LesMaladies(nomA, nomM)
- LesCages(noCage, fonction, allée)
Il est cependant nécessaire de préciser quelles sont les clefs étarngères. Pour cela on ajoute les lignes :
- LesMaladies[nomA] est pris dans LesAnimaux[nomA]
- LesAnimaux[noCage] est pris dans LesCages[noCage]
QCM d'entraînement
En résumé, les notions à connaître sont les suivantes :
- relation
- attribut
- domaine
- clef primaire
- clef étrangère
- schéma relationnel