© Éditions Eyrolles
191
chapitre n° 3
Le niveau physique : de SQL2 à SQL3
Nommez nn_T1_col une contrainte de type NOT NULL sur la colonne col de la table T1.
Nommez unique_T1_col une contrainte de type UNIQUE sur la colonne col de la table T1.
Associations un-à-plusieurs
L’exemple 3-9 décrit une association un-à-plusieurs entre une compagnie et ses avions. Les
règles à adopter sont R1 et R2.
La cardinalité minimale 1 de l’association Possede se traduit à l’aide d’une contrainte de
type NOT NULL sur la clé étrangère.
Tableau 3.5 Association un-à-un
Schéma logique
Script SQL2
Stage[nstage, entreprise]
Etudiant[netu, nometu, nstage#]
CREATE TABLE stage
(nstage VARCHAR(4), entreprise VARCHAR(30),
CONSTRAINT pk_stage PRIMARY KEY(nstage))
CREATE TABLE etudiant
(netu VARCHAR(2),nometu VARCHAR(30),
nstage VARCHAR(4),
CONSTRAINT pk_etudiant PRIMARY KEY(netu),
CONSTRAINT fk_etudiant_nstage_stage
FOREIGN KEY(nstage)
REFERENCES stage(nstage),
CONSTRAINT nn_etudiant_nstage
CHECK (nstage IS NOT NULL),
CONSTRAINT unique_etudiant_nstage UNIQUE
(nstage))
Figure 3-9 Exemple d’association un-à-plusieurs
Avion
na
type
cap
Compagnie
comp
nomcomp
Avion[na, type, cap, comp#]
Compagnie[comp, nomcomp]
Avion
na
type
cap
Compagnie
comp
nomcomp
R1 et R2
0..*
fils
Possède
père
1
père
fils
1,1
0,N
Possède
191
chapitre n° 3
Le niveau physique : de SQL2 à SQL3
Nommez nn_T1_col une contrainte de type NOT NULL sur la colonne col de la table T1.
Nommez unique_T1_col une contrainte de type UNIQUE sur la colonne col de la table T1.
Associations un-à-plusieurs
L’exemple 3-9 décrit une association un-à-plusieurs entre une compagnie et ses avions. Les
règles à adopter sont R1 et R2.
La cardinalité minimale 1 de l’association Possede se traduit à l’aide d’une contrainte de
type NOT NULL sur la clé étrangère.
Tableau 3.5 Association un-à-un
Schéma logique
Script SQL2
Stage[nstage, entreprise]
Etudiant[netu, nometu, nstage#]
CREATE TABLE stage
(nstage VARCHAR(4), entreprise VARCHAR(30),
CONSTRAINT pk_stage PRIMARY KEY(nstage))
CREATE TABLE etudiant
(netu VARCHAR(2),nometu VARCHAR(30),
nstage VARCHAR(4),
CONSTRAINT pk_etudiant PRIMARY KEY(netu),
CONSTRAINT fk_etudiant_nstage_stage
FOREIGN KEY(nstage)
REFERENCES stage(nstage),
CONSTRAINT nn_etudiant_nstage
CHECK (nstage IS NOT NULL),
CONSTRAINT unique_etudiant_nstage UNIQUE
(nstage))
Figure 3-9 Exemple d’association un-à-plusieurs
Avion
na
type
cap
Compagnie
comp
nomcomp
Avion[na, type, cap, comp#]
Compagnie[comp, nomcomp]
Avion
na
type
cap
Compagnie
comp
nomcomp
R1 et R2
0..*
fils
Possède
père
1
père
fils
1,1
0,N
Possède
