UML 2 pour les bases de données
192
© Éditions Eyrolles
La majorité des outils génèrent les clés étrangères après les tables par l’instruction ALTER
TABLE.
Associations plusieurs-à-plusieurs
Une relation dont l’identifiant est composé de plusieurs attributs devient une table pour laquelle la
clé primaire se compose de plusieurs colonnes à l’aide de la contrainte de type PRIMARY
KEY(col1,col2,…).
Les règles R1 et R3 ont été appliquées à l’exemple 3-10 de manière à dériver trois relations,
dont l’une (Affreter) possède une clé primaire composée.
Tableau 3.6 Association un-à-plusieurs
Schéma logique
Script SQL2
Compagnie[comp, nomcomp]
Avion[na, type, cap, comp#]
CREATE TABLE compagnie
(comp VARCHAR(4),nomcomp VARCHAR(30),
CONSTRAINT pk_compagnie PRIMARY KEY(comp))
CREATE TABLE avion
(na VARCHAR(2), type VARCHAR(4),
cap NUMBER(3), comp VARCHAR(4),
CONSTRAINT pk_avion PRIMARY KEY(na),
CONSTRAINT fk_avion_comp_compagnie
FOREIGN KEY(comp) REFERENCES compagnie(comp),
CONSTRAINT nn_avion_comp
CHECK (comp IS NOT NULL))
Figure 3-10 Exemple d’association plusieurs-à-plusieurs
Avion
immat
typeav
Compagnie
comp
nomcomp
Compagnie[comp, nomcomp]
Affreter[immat#, comp#, dateaff]
Avion[immat, typeav]
Avion
immat
typeav
Compagnie
comp
nomcomp
R1 et R3
1..*
0..*
0,N
1,N
Affreter
dateaff
Affreter
dateaff
192
© Éditions Eyrolles
La majorité des outils génèrent les clés étrangères après les tables par l’instruction ALTER
TABLE.
Associations plusieurs-à-plusieurs
Une relation dont l’identifiant est composé de plusieurs attributs devient une table pour laquelle la
clé primaire se compose de plusieurs colonnes à l’aide de la contrainte de type PRIMARY
KEY(col1,col2,…).
Les règles R1 et R3 ont été appliquées à l’exemple 3-10 de manière à dériver trois relations,
dont l’une (Affreter) possède une clé primaire composée.
Tableau 3.6 Association un-à-plusieurs
Schéma logique
Script SQL2
Compagnie[comp, nomcomp]
Avion[na, type, cap, comp#]
CREATE TABLE compagnie
(comp VARCHAR(4),nomcomp VARCHAR(30),
CONSTRAINT pk_compagnie PRIMARY KEY(comp))
CREATE TABLE avion
(na VARCHAR(2), type VARCHAR(4),
cap NUMBER(3), comp VARCHAR(4),
CONSTRAINT pk_avion PRIMARY KEY(na),
CONSTRAINT fk_avion_comp_compagnie
FOREIGN KEY(comp) REFERENCES compagnie(comp),
CONSTRAINT nn_avion_comp
CHECK (comp IS NOT NULL))
Figure 3-10 Exemple d’association plusieurs-à-plusieurs
Avion
immat
typeav
Compagnie
comp
nomcomp
Compagnie[comp, nomcomp]
Affreter[immat#, comp#, dateaff]
Avion[immat, typeav]
Avion
immat
typeav
Compagnie
comp
nomcomp
R1 et R3
1..*
0..*
0,N
1,N
Affreter
dateaff
Affreter
dateaff
