UML 2 pour les bases de données
136
© Éditions Eyrolles
Cette structure de données imbriquée rappelle le modèle des SGBD hiérarchiques. Elle présente un inconvénient majeur au niveau de SQL dans la mesure où l’ajout d’un avion qui n’est
pas encore propriété d’une compagnie sera impossible. Cette solution est seulement adaptée
aux associations pour lesquelles les objets fils n’ont pas d’existence propre.
Lors du bilan, nous reviendrons sur ce cas de transformation et expliquerons dans quels cas il
convient de l’employer.
Les schémas de la figure 2-38 illustrent la deuxième possibilité de transformation avec une collection sans référence. Les solutions sont basées sur une collection dans la classe père. La table fils
contient ou non un lien inverse. Dans notre exemple, la classe Compagnie héberge la collection
flotte qui ne contient que l’identifiant immat de la table Avion. Il faudra définir aussi la classe
Avion qui peut éventuellement contenir une clé étrangère ncomp# réalisant un lien inverse.
L’inconvénient majeur réside dans la gestion des références inverses lorsqu’elles existent.
Les schémas de la figure 2-39 illustrent la deuxième possibilité de transformation avec une
collection de références.
Figure 2-37 Transformation d’une association un-à-plusieurs
Figure 2-38 Transformation avec deux classes sans référence
R5 et R6
Compagnie[ncomp, nomcomp,
avions{immat, typeav}]
Avion
immat
typeav
Compagnie
ncomp
nomcomp
Avion
immat
typeav
Compagnie
ncomp
nomcomp
0..*
fils
Possède
père
1
père
fils
1,1
O,N
Possède
Compagnie[ncomp, nomcomp, flotte{immat}]
Avion[immat, typeav]
ou
Compagnie[ncomp, nomcomp, flotte{immat}]
Avion[immat, typeav, ncomp#]
Précédent

- 143/316

Suivant