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.
Le modèle relationnel a été introduit par Edgard Franck Codd en 1970 alors qu'il travaillait au centre de recherche d’IBM de San-José. Codd a reçu le prix Turing en 1981 pour son
travail sur les bases de données.
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.
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
Une fois ces bases posées, il est nécessaire de se pencher sur le problème de la représentation schématique d'une base de données.
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
:
On reconnait les clefs primaires soulignées dans la liste des attributs
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 :