© Éditions Eyrolles
201
chapitre n° 3
Le niveau physique : de SQL2 à SQL3
Traduction des associations d’héritage multiple
Les trois familles de décomposition précédemment étudiées peuvent s’appliquer aux associations
d’héritage multiple. Chaque association du graphe d’héritage pourra ainsi être traduite soit par
distinction, soit de manière descendante, soit de manière ascendante, dans la mesure du possible
en fonction des contraintes existantes par ailleurs (contraintes d’héritage mais aussi d’autres
contraintes comme une sous-entité connectée à une entité non rattachée au graphe d’héritage, etc.).
Dans le graphe d’héritage suivant, nous choisissons d’utiliser la décomposition par distinction
pour le premier niveau d’héritage, et la décomposition ascendante (push-up) pour le second
niveau d’héritage.
Tableau 3.14 Héritage push-up
Schéma logique
Script SQL2
Personnel[numPers, nomPers,
indice, prime, brevet,
validiteLicence]
CREATE TABLE Personnel
(numPers NUMBER, nomPers VARCHAR(20),
indice NUMBER, prime NUMBER(8,2),
brevet VARCHAR(10), validiteLicence DATE,
CONSTRAINT pk_Personnel PRIMARY KEY(numPers))
Figure 3-17 Décomposition d’une association d’héritage multiple
Personnel
numPers
nomPers
PNT
brevet
validiteLicence
PNC
indice
prime
Stagiaire
dateStage
X
Personnel[numPers, nomPers]
PNT[numPers#, brevet, validiteLicence,
dateStage]
PNC[numPers#, indice, prime, dateStage]
distinction
et push-up
Personnel
numPers
nomPers
PNT
brevet
validiteLicence
PNC
indice
prime
UML
Stagiaire
dateStage
Merise/2
201
chapitre n° 3
Le niveau physique : de SQL2 à SQL3
Traduction des associations d’héritage multiple
Les trois familles de décomposition précédemment étudiées peuvent s’appliquer aux associations
d’héritage multiple. Chaque association du graphe d’héritage pourra ainsi être traduite soit par
distinction, soit de manière descendante, soit de manière ascendante, dans la mesure du possible
en fonction des contraintes existantes par ailleurs (contraintes d’héritage mais aussi d’autres
contraintes comme une sous-entité connectée à une entité non rattachée au graphe d’héritage, etc.).
Dans le graphe d’héritage suivant, nous choisissons d’utiliser la décomposition par distinction
pour le premier niveau d’héritage, et la décomposition ascendante (push-up) pour le second
niveau d’héritage.
Tableau 3.14 Héritage push-up
Schéma logique
Script SQL2
Personnel[numPers, nomPers,
indice, prime, brevet,
validiteLicence]
CREATE TABLE Personnel
(numPers NUMBER, nomPers VARCHAR(20),
indice NUMBER, prime NUMBER(8,2),
brevet VARCHAR(10), validiteLicence DATE,
CONSTRAINT pk_Personnel PRIMARY KEY(numPers))
Figure 3-17 Décomposition d’une association d’héritage multiple
Personnel
numPers
nomPers
PNT
brevet
validiteLicence
PNC
indice
prime
Stagiaire
dateStage
X
Personnel[numPers, nomPers]
PNT[numPers#, brevet, validiteLicence,
dateStage]
PNC[numPers#, indice, prime, dateStage]
distinction
et push-up
Personnel
numPers
nomPers
PNT
brevet
validiteLicence
PNC
indice
prime
UML
Stagiaire
dateStage
Merise/2
