UML 2 pour les bases de données
200
© Éditions Eyrolles
Le schéma physique est composé de deux tables dans lesquelles le contenu de la relation issue
de la sur-entité (ici Personnel) a été intégralement dupliqué. La table Personnel n’est pas
nécessaire car aucun personnel ne peut être ni PNT ni PNC.
Décomposition ascendante (push-up)
L’exemple 3-16 illustre la décomposition ascendante du graphe d’héritage.
Le schéma physique est constitué d’une seule table dans laquelle se trouvent tous les attributs
des sous-entités (sous-classes). La table Personnel contiendra des valeurs nulles dans
certains cas (par exemple pour un personnel seulement PNT, les colonnes indice et prime
vaudront NULL).
Tableau 3.13 Héritage push-down
Schéma logique
Script SQL2
PNC[numPers, nomPers,
indice, prime]
PNT[numPers, nomPers,
brevet, validiteLicence]
CREATE TABLE PNC
(numPers NUMBER, nomPers VARCHAR(20),
indice NUMBER, prime NUMBER(8,2),
CONSTRAINT pk_PNC PRIMARY KEY(numPers))
CREATE TABLE PNT
(numPers NUMBER, nomPers VARCHAR(20),
brevet VARCHAR(10), validiteLicence DATE,
CONSTRAINT pk_PNT PRIMARY KEY(numPers))
Figure 3-16 Décomposition ascendante (push-up) d’une association d’héritage
Personnel
numPers
nomPers
PNT
brevet
validiteLicence
PNC
indice
prime
Personnel
numPers
nomPers
PNT
brevet
validiteLicence
PNC
indice
prime
Merise/2
UML
{incomplete,overlapping}
push-up
Personnel[numPers, nomPers, indice, prime,
brevet, validiteLicence]
200
© Éditions Eyrolles
Le schéma physique est composé de deux tables dans lesquelles le contenu de la relation issue
de la sur-entité (ici Personnel) a été intégralement dupliqué. La table Personnel n’est pas
nécessaire car aucun personnel ne peut être ni PNT ni PNC.
Décomposition ascendante (push-up)
L’exemple 3-16 illustre la décomposition ascendante du graphe d’héritage.
Le schéma physique est constitué d’une seule table dans laquelle se trouvent tous les attributs
des sous-entités (sous-classes). La table Personnel contiendra des valeurs nulles dans
certains cas (par exemple pour un personnel seulement PNT, les colonnes indice et prime
vaudront NULL).
Tableau 3.13 Héritage push-down
Schéma logique
Script SQL2
PNC[numPers, nomPers,
indice, prime]
PNT[numPers, nomPers,
brevet, validiteLicence]
CREATE TABLE PNC
(numPers NUMBER, nomPers VARCHAR(20),
indice NUMBER, prime NUMBER(8,2),
CONSTRAINT pk_PNC PRIMARY KEY(numPers))
CREATE TABLE PNT
(numPers NUMBER, nomPers VARCHAR(20),
brevet VARCHAR(10), validiteLicence DATE,
CONSTRAINT pk_PNT PRIMARY KEY(numPers))
Figure 3-16 Décomposition ascendante (push-up) d’une association d’héritage
Personnel
numPers
nomPers
PNT
brevet
validiteLicence
PNC
indice
prime
Personnel
numPers
nomPers
PNT
brevet
validiteLicence
PNC
indice
prime
Merise/2
UML
{incomplete,overlapping}
push-up
Personnel[numPers, nomPers, indice, prime,
brevet, validiteLicence]
