Modélisation de logiciels de gestion 120. Modélisation des données Généralisation - spécialisation Table des matières 1 Concepts de base... 2 2 Représentation conceptuelle... 2 3 Contraintes d intégrité... 3 3.1 Ensemble et sous-ensembles... 4 3.2 Partitionnement d ensemble... 5 4 Imbrication de sous-ensembles et de partitionnement... 6 5 Transformation en modèle logique relationnel... 7 6 Limites... 9 1/9
1 Concepts de base La généralisation spécialisation permet d organiser les entités dans une vision de classification hiérarchique. Au niveau supérieur, se trouve une entité générale ou super entité ; au niveau inférieur se trouve une ou plusieurs entités spécialisées ou sous entités. La généralisation permet de faire ressortir les caractéristiques communes à plusieurs entités ; ces caractéristiques communes constituent la base d une nouvelle «super entité» nommée sur-type par certains auteurs. La spécialisation est le cheminent inverse de la généralisation ; la spécialisation permet de décliner des caractéristiques particulières à certaines occurrences d une entité. Ces occurrences d entité qui ont des caractéristiques particulières de même nature sont regroupées dans une ou plusieurs nouvelles «sous entités» nommées sous-type par certains auteurs. Dans l exemple ci-contre, la super entité Livre contient les attributs tels que Titre ou DateEdition communs à tous les livres qu ils soient destinés aux enfants ou à l enseignement. Par contre, dans la sous entité LivreEnfants nous trouvons les attributs AgeMin et AgeMax qui lui sont propres et que nous ne retrouvons pas dans les livres d enseignement. 2 Représentation conceptuelle En UML, la généralisation spécialisation est représentée par une «relation» de généralisation qui ne comporte ni cardinalité ni nom. La généralisation s exprime généralement sous la forme suivante : «l entité B est une sorte de A». Pour l exemple précédent, un livre d enfant est une sorte de livre. /modelisation-2005 2/9
3 Contraintes d intégrité Le mécanisme de généralisation - spécialisation peut s assimiler au concept de sous-ensemble ou de partitionnement d ensemble. De ce fait, la relation de généralisation spécialisation comporte implicitement les contraintes d intégrité suivantes: Toute occurrence de sous entité est obligatoirement une et une seule occurrence de la super entité. Toute occurrence de super entité ne peut être spécialisée que par au maximum une occurrence d une seule sous entité 1. Le modèle de droite illustre la relation de généralisation représentée par une simple association dotée de cardinalité. Une occurrence b i de B est obligatoirement une occurrence a j de A. Une occurrence a i de A ne peut être spécialisée que par une seule occurrence parmi les occurrences de B et de C soit: b j de B ou (exclusivement) c k de C. La généralisation spécialisation est statique et permanente ; lorsqu une relation de généralisation spécialisation est établie entre une occurrence de super entité A et une occurrence de sous entité B elle ne peut pas être transformée en : changeant d occurrence de la super entité A; changeant d occurrence de la sous entité B ; transférant la spécialisation d une occurrence de B vers une occurrence de C. Pour notre exemple, un livre d enfant ne peut devenir un livre d enseignement. 1 Les restrictions ou contraintes d intégrité que nous venons d énumérer s appliquent à la modélisation des données. Dans la vision générale du langage UML appliquée à la technologie orientée objet, ces restrictions ne s appliquent pas ; une sous classe peut être la spécialisation de plus d une super classe et une super classe peut être spécialisée par plus d une sous classe. /modelisation-2005 3/9
3.1 Ensemble et sous-ensembles Le mécanisme de généralisation - spécialisation peut s assimiler au concept de sousensemble. La super entité représente l ensemble dans sa totalité et la ou les éventuelles sous entités les divers sous-ensembles. Dans le cas de la modélisation de sous-ensembles, nous postulons que : Une occurrence de la super entité peut exister sans être spécialisée par une sous entité. Pour notre exemple, il peut exister un livre qui n est ni livre d enfant ni livre d enseignement. Le livre existe en ayant comme propriétés les éléments communs, à savoir : un code, un titre et une date d édition. /modelisation-2005 4/9
3.2 Partitionnement d ensemble Le mécanisme de généralisation - spécialisation peut aussi s assimiler au concept de partitionnement d ensemble. La super entité représente l ensemble dans sa totalité et les sous entités les diverses partitions de l ensemble. Dans le cas de partitionnement d ensemble, nous pouvons affirmer que : Une occurrence de la super entité ne peut pas exister sans être spécialisée par une sous entité. Pour montrer le caractère restrictif du partitionnement avec UML, nous spécifions la super entité comme étant abstraite 2. Une entité abstraite est représentée graphiquement en écrivant son nom en italique. Pour notre exemple, le modèle montre qu il ne peut pas exister d enfant qui ne soit un garçon ou une fille. Remarque: Dans le cas présent, nous n avons pas de propriétés spécifiques à l une des deux sous entités Garcon et Fille; les deux sous entités nous serviront essentiellement à dissocier les enfants en filles et garçons. 2 En UML, une classe abstraite sert de classificateur pour des objets qui seront instantiés à partir de sous-classes non abstraites. /modelisation-2005 5/9
4 Imbrication de sous-ensembles et de partitionnement Naturellement, les concepts de sous-ensembles et de partitionnement peuvent s imbriquer sur plusieurs niveaux pour représenter des structures quelque peu complexes. L exemple ci-contre montre qu une personne ne peut être qu une éducatrice, un garçon ou une fille ; mais, un garçon ou une fille sont des enfants. Personne et Enfant sont deux entités abstraites. /modelisation-2005 6/9
5 Transformation en modèle logique relationnel Pour respecter la sémantique de la généralisation spécialisation : les différentes entités sont transformées en tables ; les relations de spécialisation, «est une sorte de», sont transformées en relations identifiantes entre tables ; les cardinalités des relations identifiantes sont obligatoirement : o 1 du côté de la table provenant de la super entité ; o 0..1 du côté de la table provenant de la sous entité. Ces cardinalités correspondent aux contraintes d intégrité que nous avons définies précédemment. Le modèle relationnel ci-dessus peut s avérer difficilement exploitable par certaines bases de données ou outils de développement. Face à ce genre de situation, une structure de généralisation spécialisation peut être transformée en une simple table qui contient les attributs de chacune des entités super-type et sous-types. Naturellement, la réduction de la structure de généralisation spécialisation à une seule table se traduit par une perte importante de sémantique : Les propriétés spécifiques des sous entités deviennent générales ; Les relations spécifiques à certaines sous entités deviennent, elles aussi, générales. L attribut TypeLivre contient l une des deux valeurs {ENFANT, ENSEIG} ou une valeur nulle pour pouvoir mémoriser l éventuelle spécialisation d un livre ; la valeur nulle correspond à un livre qui n est pas spécialisé. /modelisation-2005 7/9
L attribut TypeLivre ne respecte manifestement pas la règle de non redondance «horizontale». Conformément aux règles de normalisation 3, nous ajoutons en référence à notre table de livres une table contenant les types de livres. Avec notre table unique de livres, nous avons perdu de la sémantique par rapport à la structure de généralisation spécialisation du modèle conceptuel. Nous pouvons en retrouver une partie en créant un lien réflexif 4 sur la table de types de livres pour montrer sous forme d une arborescence dynamique la structure de spécialisation des livres. Remarque: La table de type et la relation réflexive pourraient être modélisées au niveau conceptuel en lieu et place de la généralisation spécialisation pour avoir une représentation uniforme entre le niveau conceptuel d une part et le niveau logique ou relationnel d autre part. 3 Plus de détails dans le chapitre de normalisation du modèle relationnel 4 Plus de détails dans le chapitre des associations réflexives /modelisation-2005 8/9
6 Limites Les structures de spécialisation/généralisation sont très contraignantes : L ajout d une entité spécialisée nécessite de revoir le modèle Une erreur dans les hiérarchies nécessite aussi de revoir le modèle Il n est pas possible de modifier l appartenance d une occurrence d entité spécialisée ; par exemple, de la spécialisation B à la spécialisation C. Ce besoin de changement n est pas forcément lié à une mutation de l occurrence de l entité spécialisée mais ce peut être simplement une erreur de saisie. Face à ces limites, nous recommandons de ne recourir aux structures de spécialisation que lorsque le modèle de données est figé, ce qui nous semble que rarement le cas et que les erreurs de saisies sont inexistantes ce qui nous semble tout aussi peu réaliste. Dès lors, nous privilégions le recours à des modèles évolutifs et/ou supportant les erreurs. Pour la gestion des enfants de la crèche et pour se prémunir d erreurs, nous proposons un modèle où le genre de l enfant est fixé, optionnellement ou pas par une table de genre. Pour la gestion des livres et pour anticiper la création de nouvelles spécialisations de livre, nous proposons un modèle conceptuel utilisant une entité de référence hiérarchique pour simuler la généralisation/spécialisation. /modelisation-2005 9/9