UML 2 pour les bases de données
190
© Éditions Eyrolles
Traduction des associations binaires
Nous étudions la traduction des associations un-à-un, un-à-plusieurs, plusieurs-à-plusieurs et
réflexives. Nous illustrons nos exemples avec les formalismes Merise et UML de manière à ce
que le lecteur puisse mieux appréhender les niveaux conceptuel, logique et physique.
Les clés étrangères sont traduites avec des contraintes FOREIGN KEY… REFERENCES…
Associations un-à-un
L’exemple 3-8 décrit l’inscription d’un étudiant à un stage. Les règles R1 et R4 doivent être
appliquées. Il est préférable de placer la clé étrangère dans la table Etudiant pour éviter les
valeurs nulles en base.
La particularité du script SQL réside dans la définition des deux dernières contraintes qui
traduisent les deux cardinalités minimales (à 1) de l’association Effectue. Ces contraintes
expriment le fait qu’un étudiant doit être affecté à un seul stage (contrainte NOT NULL), et
qu’un stage n’est attribué qu’à un seul étudiant (contrainte UNIQUE). La contrainte NOT NULL
interdira les valeurs nulles dans la colonne nstage. La contrainte UNIQUE interdira qu’une
valeur dans la colonne nstage puisse apparaître pour différents étudiants.
Figure 3-8 Exemple d’association un-à-un
Stage
nstage
entreprise
Etudiant
netu
nometu
Stage
nstage
entreprise
Etudiant
netu
nometu
R1 et R4
1
Effectue
0..1
0,1
1,1
Effectue
Stage[nstage, entreprise]
Etudiant[netu, nometu, nstage#]
190
© Éditions Eyrolles
Traduction des associations binaires
Nous étudions la traduction des associations un-à-un, un-à-plusieurs, plusieurs-à-plusieurs et
réflexives. Nous illustrons nos exemples avec les formalismes Merise et UML de manière à ce
que le lecteur puisse mieux appréhender les niveaux conceptuel, logique et physique.
Les clés étrangères sont traduites avec des contraintes FOREIGN KEY… REFERENCES…
Associations un-à-un
L’exemple 3-8 décrit l’inscription d’un étudiant à un stage. Les règles R1 et R4 doivent être
appliquées. Il est préférable de placer la clé étrangère dans la table Etudiant pour éviter les
valeurs nulles en base.
La particularité du script SQL réside dans la définition des deux dernières contraintes qui
traduisent les deux cardinalités minimales (à 1) de l’association Effectue. Ces contraintes
expriment le fait qu’un étudiant doit être affecté à un seul stage (contrainte NOT NULL), et
qu’un stage n’est attribué qu’à un seul étudiant (contrainte UNIQUE). La contrainte NOT NULL
interdira les valeurs nulles dans la colonne nstage. La contrainte UNIQUE interdira qu’une
valeur dans la colonne nstage puisse apparaître pour différents étudiants.
Figure 3-8 Exemple d’association un-à-un
Stage
nstage
entreprise
Etudiant
netu
nometu
Stage
nstage
entreprise
Etudiant
netu
nometu
R1 et R4
1
Effectue
0..1
0,1
1,1
Effectue
Stage[nstage, entreprise]
Etudiant[netu, nometu, nstage#]
