Académique Documents
Professionnel Documents
Culture Documents
Olivier
1.1 Un exemple
Soit le MCD présenté l̀a fin du cours 1 :
figure 1
Exemple :
ETUDIANT (Numero, Nom, Prenom, Age)
A chaque attribut on peut associer un domaine de valeurs.
Exemple de domaines :
– Pour le numéro étudiant : Dnumero = entier compris entre 1 et 99999
– Pour le nom : Dnom = chaı̂ne de caractères de longueur maximale 20
– Pour l’age : Dage=entier compris entre 15 et 65.
On utilisera cependant peu dans la suite du cours cette syntaxe assez lourde. Pour les domaines de
valeurs on se réfèrera au dictionnaire des données (voir cours 1).
Organiser les données - Le schéma relationnel - Master 2 C.G.A.O. - A. Olivier 3
figure 2
Ici, c’est NumClient qui devient clé étrangère dans la relation Tableau. Son nom apparaı̂t à la
FIN de la liste d’attributs.
La clé étrangère est précédée du symbole # (clé externe).
Elle n’est PAS soulignée (ce n’est pas un identifiant).
A chaque tableau sera donc associé un numéro de client.
Si l’on “ne sais plus” de quel côté insérer la clé étrangère, il suffit de raisonner sur le sens de la
relation ainsi créée et sur les occurences qui apparaı̂tront dans cette relation.
Dans notre exemple, si nous insérons la clé Référence dans la relation Clients,
cela signifie qu’une référence de tableau figurera sur chaque ligne Numéro client. Ce qui signifie
qu’il ne pourra y avoir qu’un seul tableau par client. Ce qui n’est pas compatible avec les
cardinalites.
C’est donc bien NumClient qui doit être inséré dans Tableau et non l’inverse.
Règle 5 - Les associations non hiérarchiques (1,n - 1,n) donnent naissance à une relation (et donc
à une table dans la base) dont l’identifiant est une clé double constituée des deux clés primaires
des entités associées, comme nous l’avons vu dans l’exemple de la figure 1.
Exemple :
figure 3
Organiser les données - Le schéma relationnel - Master 2 C.G.A.O. - A. Olivier 4
Les deux premières relations correspondent aux entités du MCD, avec les mêmes clés.
La troisième remplace l’association non hiérarchique, avec une clé double (celle de l’entitéClient
et celle de l’entité Produit).
Ces deux clés sont précédées du symbole # (clés externes).
Elles sont soulignées (ce sont des identifiants).
Cette relation n’a pas d’attribut propre.
Remarque :
Les MCD des figures 2 et 3, bien que présentant des points communs (base de données achats
impliquant des clients et un “produit”), sont traités de manière tout-à-fait différente en terme
de schéma relationnel :
– dans le premier cas, les produits sont “unique” (cardinalité 1,1 et association hiérarchique) ;
– dans le second MCD, les produits sont nombreux et indifférenciés (cardinalité 1,n et as-
sociation non hiérarchique).
Exemple :
Le MCD suivant est celui de la base de données d’une société d’immeubles.
Chaque immeuble est référencé par un code (A,B,C,D...) et possède plusieurs appartements, eux-
mêmes référencés par un nombre correspondant à l’étage (101, 102, 103 pour le premier étage, 201, 202,
203 pour le deuxième étage, etc.)
figure 4
Voyons comment cette particularité se traduit d’abord en termes de MCD, puis dans le schéma rela-
tionnel, pour les associations hiérarchiques d’une part et pour les associations non hiérarchiques d’autre
part.
figure 5
Le schéma relationnel :
Nous sommes dans le cas d’une association hiérarchique. Il n’y aura donc pas de création de relation
pour cette association mais la clé de l’entité côté n est insérée dans l’entité côté 1 (voir règle 4).
Dans notre cas, ces deux entités sont confondues et la clé est unique.
Avec l’ajout de la clé externe, deux attributs NumSalarié vont apparaı̂tre dans la relation :
– le premier comme clé primaire,
– et le second comme clé externe.
La clé “externe” devra donc porter un nom différent, tout en se référant au même attribut.
Le schéma relationnel sera le suivant :
A chaque salarié sera attaché un attribut NumChef qui sera en fait le numéro de salarié de son
supérieur hiérarchique. Il s’agit d’une clé externe qui n’est pas un identifiant et qui sera donc :
– placée en dernier dans la liste des attributs,
– précédée du symbole #,
– et non soulignée.
figure 6
L’association Composition relie l’entité Pièce à elle-même et les “connecteurs” précisent la signification
de chaque branche.
Remarquez les cardinalités :
– un élément peut entrer dans la composition de plusieurs autres élements (cardinalité maximale =
n), sauf s’il s’agit d’un produit fini, auquel cas il n’entrera dans la composition d’aucun (cardinalité
minimale = 0).
– un élément peut être composé de plusieurs sous-éléments (cardinalité maximale = n), sauf s’il s’agit
d’un composant élémentaire, c’est-à-dire non décomposable (cardinalité minimale = 0).
Remarquez également que l’association Composition possède un attribut propre, l’attribut Nombre :
plusieurs composants de même type (c’est-à-dire non différenciables et ayant même référence : des boulons
ou des écrous par exemple) peuvent entrer dans la fabrication d’un élément.
Organiser les données - Le schéma relationnel - Master 2 C.G.A.O. - A. Olivier 7
Le schéma relationnel :
Il s’agit bien d’une association non hiérarchique.
L’association doit donc donner lieu à la création d’une relation dont l’identifiant est constitué des
deux clés des entités associées, et pouvant contenir des attributs propres (règle 5).
Cependant, deux attributs ne pouvant porter le même nom, on sera amenés à renommer l’une de ces
clés. Ici, nous choisissons de renommer les deux (RéférenceComposé et RéférenceComposant), étant bien
entendu que ces deux clés font référence au même attribut.
Ces deux clés externes sont des identifiants et sont donc :
– placées au début de la liste des attributs,
– précédées du symbole #,
– et soulignées.
Le schéma relationnel s’écrit comme suit :
figure 7
Organiser les données - Le schéma relationnel - Master 2 C.G.A.O. - A. Olivier 8
Le schéma relationnel :
Pour les tableaux n’ayant pas trouvé acquéreur, la valeur de #NumClient sera nulle. Mais ce
n’est pas un problème.
Cas 2 - Valeurs nulles non acceptées.
Dans ce cas, une association hiérarchique ayant une cardinalité 0,1 sur un côté donnera naissance
à une nouvelle relation, et sera traitée comme une association non hiérarchique.
La relation Achète ne contient que les Références de tableaux ayant trouvé acquéreur et les
NumClient correspondants. Elle est donc compatible avec un système de gestion de base de
données n’acceptant pas les valeurs nulles.