© Éditions Eyrolles
199
chapitre n° 3
Le niveau physique : de SQL2 à SQL3
Décomposition descendante (push-down)
L’héritage de partition 3-15 exprime le fait qu’aucun personnel ne peut être à la fois PNT et PNC,
et qu’il n’existe pas non plus de personnel n’étant ni PNT ni PNC. Nous verrons plus loin
comment traduire cette contrainte. Il est question ici uniquement de traduire les relations déduites
au niveau logique en tables.
Tableau 3.12 Héritage par distinction
Schéma logique
Script SQL2
PNC[numPers#, indice, prime]
Personnel[numPers, nomPers]
PNT[numPers#, brevet,
validiteLicence]
CREATE TABLE Personnel
(numPers NUMBER, nomPers VARCHAR(20),
CONSTRAINT pk_Personnel PRIMARY KEY(numPers))
CREATE TABLE PNC
(numPers NUMBER,indice NUMBER,prime NUMBER(8,2),
CONSTRAINT pk_PNC PRIMARY KEY(numPers),
CONSTRAINT fk_PNC_Personnel FOREIGN KEY(numPers)
➥REFERENCES Personnel(numPers))
CREATE TABLE PNT
(numPers NUMBER, brevet VARCHAR(10),
validiteLicence DATE,
CONSTRAINT pk_PNT PRIMARY KEY(numPers),
CONSTRAINT fk_PNT_Personnel FOREIGN KEY(numPers)
➥REFERENCES Personnel(numPers))
Figure 3-15 Exemple de décomposition descendante (push-down) d’une association d’héritage
Personnel
numPers
nomPers
PNT
brevet
validiteLicence
PNC
indice
prime
Personnel
numPers
nomPers
PNT
brevet
validiteLic ence
PNC
indice
prime
push-down
Merise/2
UML
XT
PNT[numPers, nomPers, brevet, validiteLicence]
PNC[numPers, nomPers, indice, prime]
{complete, disjoint }
199
chapitre n° 3
Le niveau physique : de SQL2 à SQL3
Décomposition descendante (push-down)
L’héritage de partition 3-15 exprime le fait qu’aucun personnel ne peut être à la fois PNT et PNC,
et qu’il n’existe pas non plus de personnel n’étant ni PNT ni PNC. Nous verrons plus loin
comment traduire cette contrainte. Il est question ici uniquement de traduire les relations déduites
au niveau logique en tables.
Tableau 3.12 Héritage par distinction
Schéma logique
Script SQL2
PNC[numPers#, indice, prime]
Personnel[numPers, nomPers]
PNT[numPers#, brevet,
validiteLicence]
CREATE TABLE Personnel
(numPers NUMBER, nomPers VARCHAR(20),
CONSTRAINT pk_Personnel PRIMARY KEY(numPers))
CREATE TABLE PNC
(numPers NUMBER,indice NUMBER,prime NUMBER(8,2),
CONSTRAINT pk_PNC PRIMARY KEY(numPers),
CONSTRAINT fk_PNC_Personnel FOREIGN KEY(numPers)
➥REFERENCES Personnel(numPers))
CREATE TABLE PNT
(numPers NUMBER, brevet VARCHAR(10),
validiteLicence DATE,
CONSTRAINT pk_PNT PRIMARY KEY(numPers),
CONSTRAINT fk_PNT_Personnel FOREIGN KEY(numPers)
➥REFERENCES Personnel(numPers))
Figure 3-15 Exemple de décomposition descendante (push-down) d’une association d’héritage
Personnel
numPers
nomPers
PNT
brevet
validiteLicence
PNC
indice
prime
Personnel
numPers
nomPers
PNT
brevet
validiteLic ence
PNC
indice
prime
push-down
Merise/2
UML
XT
PNT[numPers, nomPers, brevet, validiteLicence]
PNC[numPers, nomPers, indice, prime]
{complete, disjoint }
