© Éditions Eyrolles
209
chapitre n° 3
Le niveau physique : de SQL2 à SQL3
Sans contrainte
Aucune contrainte de validation (CHECK) n’est à programmer.
Bilan
Dressons un bilan des avantages et des inconvénients de chacune de ces approches. Aucune des
solutions ne constitue la panacée. Il semblerait que la décomposition descendante soit la plus pénalisante. La décomposition ascendante semble être la plus souple au point de vue de la programmation des contraintes, mais n’est pas optimale d’un point de vue stockage des informations. La
décomposition par distinction peut paraître comme un compromis entre ces deux solutions.
Transformation des agrégations
Pour UML, l’agrégation renforce le couplage d’une association. Pour le modèle entité-association, il s’agit d’affiner une association n-aire (qui se traduit en classes-associations dans la
notation UML).
Agrégations UML
UML distingue une agrégation partagée (ou simple) d’une composition. L’agrégation partagée
se traduit sous SQL comme une simple association. La composition nécessite d’inclure dans la
clé primaire de la table composant l’identifiant de la table composite.
L’exemple 3-18 décrit une agrégation simple plusieurs-à-plusieurs et une composition un-àplusieurs (une composition est toujours un-à-plusieurs ou un-à-un).
La première association est agrégée dans le sens où la suppression d’un immeuble doit se répercuter sur la suppression des achats relatifs à cet immeuble. Il ne s’agit pas de détruire les copropriétaires de l’immeuble supprimé, car ils peuvent être copropriétaires d’autres immeubles. En appliquant
les règles R1 et R3, on obtient trois relations CoProprietaire, Immeuble et Achat.
La programmation SQL de l’agrégation UML (partagée ou composition) se réalise à l’aide des
directives UPDATE CASCADE et DELETE CASCADE qui permettent de propager la suppression
(ou la modification) d’un enregistrement composite au niveau du composant.
Tableau 3.17 Bilan des traductions de l’héritage
Décomposition
distinction
descendante
ascendante
Avantages
Pas de redondances de
données.
Prédicats C et D implicites.
Diminution du nombre de
jointures en exploitation.
Prédicats C et D implicites.
Simplicité des prédicats A
et B à programmer.
Prédicats C et D implicites.
Inconvénients
Prédicats A et B à
programmer.
Redondances possibles
de données.
Prédicats A et B à
programmer.
Possibilité de valeurs
nulles dans les données.
209
chapitre n° 3
Le niveau physique : de SQL2 à SQL3
Sans contrainte
Aucune contrainte de validation (CHECK) n’est à programmer.
Bilan
Dressons un bilan des avantages et des inconvénients de chacune de ces approches. Aucune des
solutions ne constitue la panacée. Il semblerait que la décomposition descendante soit la plus pénalisante. La décomposition ascendante semble être la plus souple au point de vue de la programmation des contraintes, mais n’est pas optimale d’un point de vue stockage des informations. La
décomposition par distinction peut paraître comme un compromis entre ces deux solutions.
Transformation des agrégations
Pour UML, l’agrégation renforce le couplage d’une association. Pour le modèle entité-association, il s’agit d’affiner une association n-aire (qui se traduit en classes-associations dans la
notation UML).
Agrégations UML
UML distingue une agrégation partagée (ou simple) d’une composition. L’agrégation partagée
se traduit sous SQL comme une simple association. La composition nécessite d’inclure dans la
clé primaire de la table composant l’identifiant de la table composite.
L’exemple 3-18 décrit une agrégation simple plusieurs-à-plusieurs et une composition un-àplusieurs (une composition est toujours un-à-plusieurs ou un-à-un).
La première association est agrégée dans le sens où la suppression d’un immeuble doit se répercuter sur la suppression des achats relatifs à cet immeuble. Il ne s’agit pas de détruire les copropriétaires de l’immeuble supprimé, car ils peuvent être copropriétaires d’autres immeubles. En appliquant
les règles R1 et R3, on obtient trois relations CoProprietaire, Immeuble et Achat.
La programmation SQL de l’agrégation UML (partagée ou composition) se réalise à l’aide des
directives UPDATE CASCADE et DELETE CASCADE qui permettent de propager la suppression
(ou la modification) d’un enregistrement composite au niveau du composant.
Tableau 3.17 Bilan des traductions de l’héritage
Décomposition
distinction
descendante
ascendante
Avantages
Pas de redondances de
données.
Prédicats C et D implicites.
Diminution du nombre de
jointures en exploitation.
Prédicats C et D implicites.
Simplicité des prédicats A
et B à programmer.
Prédicats C et D implicites.
Inconvénients
Prédicats A et B à
programmer.
Redondances possibles
de données.
Prédicats A et B à
programmer.
Possibilité de valeurs
nulles dans les données.
