Modélisation de logiciels de gestion 120. Modélisation des données

Transcription

Modélisation de logiciels de gestion 120. Modélisation des données
Modélisation
de logiciels de gestion
120. Modélisation des données
Généralisation - spécialisation
Table des matières
1
2
3
Concepts de base ................................................................................................................ 2
Représentation conceptuelle ............................................................................................... 2
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.
Cours de modélisation 2005/2006
http://lgl.isnetne.ch/modelisation-2005
120. Généralisation - spécialisation
2/9
3.9.2007/ P-A. Sunier
http://lgl.isnetne.ch
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 bi de B est obligatoirement une occurrence aj de A.
 Une occurrence ai de A ne peut être spécialisée que par une seule occurrence parmi les
occurrences de B et de C soit: bj de B ou (exclusivement) ck 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.
Cours de modélisation 2005/2006
http://lgl.isnetne.ch/modelisation-2005
120. Généralisation - spécialisation
3/9
3.9.2007/ P-A. Sunier
http://lgl.isnetne.ch
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.
Cours de modélisation 2005/2006
http://lgl.isnetne.ch/modelisation-2005
120. Généralisation - spécialisation
4/9
3.9.2007/ P-A. Sunier
http://lgl.isnetne.ch
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 abstraite2.
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.
Cours de modélisation 2005/2006
http://lgl.isnetne.ch/modelisation-2005
120. Généralisation - spécialisation
5/9
3.9.2007/ P-A. Sunier
http://lgl.isnetne.ch
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.
Cours de modélisation 2005/2006
http://lgl.isnetne.ch/modelisation-2005
120. Généralisation - spécialisation
6/9
3.9.2007/ P-A. Sunier
http://lgl.isnetne.ch
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é.
Cours de modélisation 2005/2006
http://lgl.isnetne.ch/modelisation-2005
120. Généralisation - spécialisation
7/9
3.9.2007/ P-A. Sunier
http://lgl.isnetne.ch
L’attribut TypeLivre ne respecte manifestement pas la règle de non redondance
« horizontale ». Conformément aux règles de normalisation3, 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éflexif4 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
4
Plus de détails dans le chapitre de normalisation du modèle relationnel
Plus de détails dans le chapitre des associations réflexives
Cours de modélisation 2005/2006
http://lgl.isnetne.ch/modelisation-2005
120. Généralisation - spécialisation
8/9
3.9.2007/ P-A. Sunier
http://lgl.isnetne.ch
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.
Cours de modélisation 2005/2006
http://lgl.isnetne.ch/modelisation-2005
120. Généralisation - spécialisation
9/9
3.9.2007/ P-A. Sunier
http://lgl.isnetne.ch