Exemple de transformation d'une relation d'héritage

Soit le modèle UML suivant :

Représentation de documents

Type d'héritage

  1. L'héritage presque complet et

  2. La classe mère est abstraite,

la meilleure solution est donc ici un héritage par les classes filles.

.

Héritage représenté par une référence

Document(#Titre:Chaîne, Auteur:Chaîne) avec Document AND (These OR Livre)
These(#Titre=>Document, Discipline:Chaîne)
Livre(#Titre=>Document, Editeur:Chaîne)

Avantages du choix

Il n'y a ni redondance ni valeur nulle inutile dans les relations These et Livre.

Inconvénients du choix

  • Il est relativement lourd de devoir créer un tuple dans Document pour chaque tuple dans These ou Livre

  • De plus la classe Document étant abstraite, il ne devra jamais y avoir de tuple dans document qui n'a pas de tuple correspondant dans Livre ou These

Héritage absorbé par les classes filles

These(#Titre, Discipline:Chaîne, Auteur:Chaîne)
Livre(#Titre, Editeur:Chaîne, Auteur:Chaîne)

Avantages du choix

Il est plus simple que le précédent, puisque la représentation d'une thèse ou d'un livre ne nécessite plus que d'ajouter un seul tuple. Il évite donc les clés étrangères, toujours plus délicates à gérer d'un point de vue applicatif.

Inconvénient du choix

Si l'héritage est exclusif ce modèle n'a aucun inconvénient.

Héritage absorbé par la classe mère

Document(#Titre, Discipline:Chaîne, Editeur:Chaîne, Auteur:Chaîne, Type:{These|Livre})

Avantages du choix

Il est plus simple que le premier, puisque la représentation d'une thèse ou d'un livre ne nécessite plus que d'ajouter un seul tuple. Il évite donc les clés étrangères..

Inconvénient du choix

  • Les tuples de Document contiendront systématiquement une valeur nulle soit pour l'éditeur soit pour la discipline.

  • Il faut vérifier l'adéquation entre la valeur de Type et le fait que Discipline ou Auteur n'est pas valué.

AccueilCours > Choisir la meilleure modélisation > Exemple de transformation d'une relation d'héritage< PrécédentSuivant >