Previous Up Next
Accueil

2.3  Compléments sur les associations

2.3.1  Associations plurielles


Figure 2.6: Exemple d’associations plurielles entre un type-entité Personne et un type-entité Livre. Sur ce schéma, un type-association permet de modéliser que des personnes écrivent des livres et un autre que des personnes critiquent (au sens de critique littéraire) des livres.

Deux mêmes entités peuvent être plusieurs fois en association (c’est le cas sur la figure 2.6).

2.3.2  Association réflexive


Figure 2.7: Exemple d’associations reflexives sur le type-entité Personne. Le premier type-association permet de modéliser la relation parent/enfant et le deuxième type-association la relation de fraternité.

Les type-associations réflexifs sont présents dans la plupart des modèles.

Définition 20     -Type-association réflexif- Un type-association est qualifié de réflexif quand il matérialise une relation entre un type-entité et lui-même (cf. figure 2.7).

Une occurrence de ce type-association (i.e. une association) associe généralement une occurrence du type-association (i.e. une entité) à une autre entité du même type. Cette relation peut être symétrique, c’est le cas du type-association Etre frère sur la figure 2.7, ou ne pas l’être, comme le type-association Etre parent sur cette même figure. Dans le cas où la relation n’est pas symétrique, on peut préciser les rôles sur les pattes du type-association comme pour la relation Etre parent de la figure 2.7. L’ambiguïté posée par la non-symétrie d’un type-association réflexif sera levée lors du passage au modèle relationnel (cf. section 3.1.3).

2.3.3  Association n-aire (n>2)

Dans la section 2.2.4 nous avons introduit la notion de type-association n-aire. Ce type-association met en relation n type-entités. Même s’il n’y a, en principe, pas de limite sur l’arité d’un type-association, dans la pratique on ne va rarement au-delà de trois. Les associations de degré supérieur à deux sont plus difficiles à manipuler et à interpréter, notamment au niveau des cardinalités.

Exemple d’association n-aire inappropriée


Figure 2.8: Exemple de type-association ternaire inapproprié.

Le type-association ternaire Contient associant les type-entités Facture, Produit et Client représenté sur la figure 2.8 est inapproprié puisqu’une facture donnée est toujours adressée au même client. En effet, cette modélisation implique pour les associations (instances du type-association) Contient une répétition du numéro de client pour chaque produit d’une même facture.


Figure 2.9: Type-association ternaire de la figure 2.8 corrigé en deux type-associations binaires.

La solution consiste à éclater le type-association ternaire Contient en deux type-associations binaires comme représenté sur la figure 2.9.

Décomposition d’une association n-aire


Figure 2.10: Exemple de type association ternaire entre des type-entités Créneau horaire, Salle et Film.


Figure 2.11: Transformation du type-association ternaire de la figure 2.10 en un type-entité et trois type-associations binaires.

La figure 2.10 nous montre un exemple de type-association ternaire entre les type-entités Créneau horaire, Salle et Film. Il est toujours possible de s’affranchir d’un type-association n-aire (n>2) en se ramenant à des type-associations binaires de la manière suivante :

La figure 2.11 illustre le résultat de cette transformation sur le schéma de la figure 2.10.

L’avantage du schéma de la figure 2.11 est de rendre plus intelligible la lecture des cardinalités. Il ne faut surtout pas le voir comme un aboutissement mais comme une étape intermédiaire avant d’aboutir au schéma de la figure 2.10 (cf. règle 27). Ainsi, le mécanisme, que nous venons de détailler ci-dessus, de passage d’un type-association n-aire (n>2) à un type-entité et n type-associations binaires est tout à fait réversible à condition que :

Détection d’une erreur de modélisation par décomposition d’une association n-aire


Figure 2.12: Modèle représentant un type-association ternaire Vol liant trois type-entités Avion, Trajet et Pilote.


Figure 2.13: Transformation du type-association ternaire de la figure 2.12 en un type-entité et trois type-associations binaires.


Figure 2.14: Modèle de la figure 2.13 corrigé au niveau des cardinalités.

Passer par cette étape intermédiaire ne comportant pas de type-association n-aire (n>2) peut, dans certains cas, éviter d’introduire un type-association n-aire inapproprié. Imaginons par exemple un type-association ternaire Vol liant trois type-entités Avion, Trajet et Pilote comme représenté sur la figure 2.12.

La transformation consistant à supprimer le type-association ternaire du modèle de la figure 2.12 produit le modèle de la figure 2.13. Ce modèle fait immédiatement apparaître une erreur de conception qui était jusque là difficile à diagnostiquer : généralement, à un vol donné sont affectés plusieur pilotes (par exemple le commandant de bord et un copilote) et non pas un seul.

Le modèle correct modélisant cette situation est celui de la figure 2.14 où le type-entité Vol ne peut être transformé en un type-association ternaire Vol comme sur la figure 2.12.

Base de Données et langage SQL – Laurent Audibert

Previous Up Next