• Aucun résultat trouvé

Généralisation et agrégation

2.2 Le modèle entité-association

2.2.3 Généralisation et agrégation

On peut généraliser, spécialiser les entités

La généralisation (generalization, en anglais) des ensembles d'entités est un processus d'abstraction qui consiste à généraliser les entités, et donc les ensembles d'entités en un seul ensemble ascendant.

Réciproquement, la spécialisation consiste à définir des ensembles d'entités descendants ou sous-ensembles d'entités dans une hiérarchie de généralisation. La généralisation des ensembles d'entités donne lieu à plusieurs cas possibles :

Ensembles d’entités avec intersection

„ Les sous-ensembles d'entités définis par spécialisation présentent des intersections. Considérons par exemple l'ensemble d'entités EMPLOYÉ et ses deux sous-ensembles, CLUB DE PHOTO et CLUB DE SPORT. Chaque membre d'un club est donc en même temps un employé. Réciproquement, un employé peut adhérer au club interne de l'entreprise pour la photo tout en étant membre actif du club de sport. En d'autres termes, les sous-ensembles CLUB DE PHOTO et CLUB DE SPORT ont une intersection non vide.

Ensembles d’entités avec intersection et complets

„ Les sous-ensembles d'entités définis par spécialisation ont des intersections, et contiennent tous les éléments de l'ensemble d'entités ascendant qui les généralise. Nous désignons ce cas par l'expression «avec intersection et complet». Ajoutons par exemple un troisième sous-ensemble d'entités CLUB D'ÉCHEC, et admettons qu'à l'embauche chaque employé adhère au moins à l'un des trois clubs, CLUB DE PHOTO, CLUB DE SPORT ou CLUB

D'ÉCHEC. Par conséquent, ces trois sous-ensembles contiennent tous les éléments de l'ensemble EMPLOYÉ d'une part, et présentent des intersections non vides d'autre part. En effet, un employé qui est membre d'au moins un club peut adhérer à deux ou trois clubs simultanément.

Ensembles d’entités disjoints

„ Les sous-ensembles d'entités définis par spécialisation sont mutuellement disjoints, c'est-à-dire que leur intersection est vide.

Considérons par exemple l'ensemble d'entités EMPLOYÉ et ses deux sous-ensembles spécialisés, CADRE SUPÉRIEUR et SPÉCIALISTE. Puisqu'un employé ne peut pas occuper un poste de cadre supérieur et travailler en même temps comme spécialiste, CADRE SUPÉRIEUR et SPÉCIALISTE sont donc des sous-ensembles spécialisés disjoints.

Ensembles d’entités disjoints et complets

„ Les sous-ensembles d'entités définis par spécialisation sont mutuellement disjoints, et contiennent tous les éléments de l'ensemble d'entités ascendant qui les généralise. Nous identifions ce cas par l'expression «disjoint et complet». Pour chaque entité dans l'ensemble d'entités ascendant, il doit exister une sous-entité définie par spécialisation, et vice versa. À titre d’exemple, reprenons l'ensemble d'entités EMPLOYÉ et ses deux sous-ensembles spécialisés, CADRE SUPÉRIEUR et SPÉCIALISTE, et ajoutons un troisième sous-ensemble d'entités APPRENTI. Nous constatons maintenant que chaque employé travaille soit comme cadre supérieur, soit comme spécialiste, soit comme apprenti.

Représentation graphique de la hiérarchie de généralisation

Pour représenter graphiquement une hiérarchie de généralisation, nous adoptons le symbole de la fourche, accompagnée de la mention

«avec intersection et incomplet», «avec intersection et complet»,

«disjoint et incomplet» ou «disjoint et complet».

La généralisation définit une structure EST-UN

La figure 2-5 illustre le cas «disjoint et complet» où l'ensemble d'entités EMPLOYÉ généralise CADRE SUPÉRIEUR, SPÉCIALISTE et APPRENTI. Chaque entité dépendante, telle que le chef de groupe ou le chef de département dans l'ensemble d'entités CADRE SUPÉRIEUR, est de type EMPLOYÉ. C'est une association de type 1. C'est pourquoi, on dit aussi que la généralisation est une structure EST-UN (IS A structure,

en anglais) : un chef de groupe «est un» (is a, en anglais) employé, un chef de département est également un employé. L'association dans la direction inverse est aussi de type 1 dans le cas «disjoint et complet»

d'une hiérarchie de généralisation ; par exemple chaque employé appartient à un et un seul sous-ensemble d'entités.

Figure 2-5 EMPLOYÉ, un exemple de généralisation

Création d’une structure d’agrégation Comme la généralisation, une deuxième structure de liens joue

également un rôle important. Elle repose sur le concept d'agrégation (aggregation, en anglais) qui consiste à réunir les entités en un tout de niveau supérieur. Les propriétés de la structure d’agrégation sont définies dans un ensemble de liens qui en résulte.

Le konzern, un exemple de structure d’agrégation À titre d’exemple, considérons la structure de participation des

sociétés dans un konzern3. Pour la modéliser, nous définissons un ensemble de liaisons, nommé STRUCTURE DU KONZERN, qui relie l'ensemble d'entités FIRME à lui-même, comme le montre la figure 2-6. Le numéro de société dans l'ensemble d'entités FIRME sera utilisé deux fois comme clés étrangères dans la STRUCTURE DU KONZERN, pour désigner d'une part la société mère hiérarchiquement supérieure,

Exemple de catégorisation des employés :

«Tout employé est soit un cadre supérieur, soit un spécialiste, soit un apprenti et vice versa»

EMPLOYÉ 1

CADRE

SUPÉRIEUR SPÉCIALISTE APPRENTI

1 1 1

disjoint et complet

3 Le konzern désigne un groupe d'entreprises juridiquement indépendantes, liées par des participations financières croisées, l'entreprise F1 possédant une partie du capital en actions de l'entreprise F2, et inversement.

d'autre part la filiale hiérarchiquement inférieure (voir aussi la figure 2-13). D'autres attributs tels que le taux de participation d'une firme viennent compléter les propriétés de la STRUCTURE DU KONZERN. Figure 2-6

Agrégation en réseau dans la STRUCTURE DU KONZERN

L’agrégation définit une structure MEMBRE-DE

L'agrégation permet un regroupement des entités dans une structure dite MEMBRE-DE (PART OF structure, en anglais). Ainsi, dans la STRUCTURE DU KONZERN, chaque firme est «membre d'un»

(part of, en anglais) konzern particulier. Puisque la STRUCTURE DU KONZERN est définie comme une structure en réseau dans l’exemple, les deux associations reliant les membres supérieurs et inférieurs sont donc de type complexe.

La généralisation et l’agrégation sont deux importants concepts de structuration

Les deux concepts d'abstraction, la généralisation et l'agrégation, permettent de définir deux structures4 importantes dans un modèle de données. Elles sont représentées dans un modèle entité-association soit par des symboles graphiques particuliers, soit par des boîtes spéciales. Ainsi, l'agrégation représentée dans la figure 2-6 peut aussi s'exprimer comme un ensemble d'entités généralisé KONZERN qui inclut implicitement l'ensemble d'entités FIRME et l'ensemble de liens STRUCTURE DU KONZERN.

Exemple de la structure d'un konzern :

Type mc : «Chaque firme peut avoir plusieurs sociétés parentes et en même temps, plusieurs sociétés dépendantes»

FIRME

STRUCTURE DU KONZERN

«Le groupe de sociétés se compose de …»

«La société membre

dépend de …»

mc mc

4 Les systèmes de bases de données étendus supportent les concepts de généralisation et d'agrégation pour structurer les données (voir la section 6.4 qui traite des systèmes de bases de données relationnelles-objet).

À la structure en réseau, ajoutons une deuxième variante qui est la structure MEMBRE-DE hiérarchique, illustrée par l’ensemble de liens NOMENCLATURE dans la figure 2-7 : chaque article peut être assemblé à partir de plusieurs composants. Réciproquement, chaque composant, à l’exception de l’article au sommet de la hiérarchie, fait partie d’un article de niveau supérieur. (voir figure 2-15).

Figure 2-7 Un exemple d’agrégation hiérarchique : NOMENCLATURE

La modélisation de données assistée par ordinateur Le modèle entité-association occupe une place importante dans

le développement d’outils pour la modélisation de données assistée par ordinateur. Il est intégré à des degrés différents dans les outils CASE (CASE = Computer Aided Software Engineering). Les premières étapes de développement, assisté par ordinateur, consistent à définir des ensembles d'entités et de liens, et à structurer les données par la généralisation et l'agrégation. Ensuite c’est le passage partiellement automatique du modèle entité-association à un schéma de base de données. Ce processus de transformation conduit généralement à plusieurs variantes possibles. C’est pourquoi il incombe aux architectes de données de prendre les décisions appropriées. Dans cette optique, les sections suivantes définissent un ensemble de règles simples qui permettent de traduire correctement un modèle entité-association en un schéma de base de données relationnelle.

Exemples de nomenclature :

Type mc : «Chaque article peut être assemblé à partir de plusieurs composants»

Type c : «Chaque composant appartient conditionnellement à un article de niveau supérieur»

ARTICLE

NOMENCLATURE

«Un article se compose de …»

«Un composant appartient à …»

mc c

2.3 Le schéma d'une base de données