UML 2 pour les bases de données
166
© Éditions Eyrolles
Solution par collections
L’exemple 2-82 représente l’association plusieurs-à-plusieurs (A1) et une association binaire
entre A1 et C3. L’association A1 se compose d’une collection de deux références, et l’association A2 d’une structure et de trois références. La contrainte va porter sur toutes les références.
La contrainte d’inclusion induite par l’association A2 s’énonce ainsi : pour tout objet A2, la
référence refC1 pointe un objet C1 qui possède une référence refC2a sur un objet C2 d’OID
x, et la référence refC2b doit pointer l’objet d’OID x. Cette contrainte est notée ci. Les
conditions sont décrites dans le tableau 2.8.
Exemple
Considérons les installations de logiciels avec la contrainte d’unicité (un logiciel d’un département ne doit être installé que sur un seul serveur) et la contrainte d’inclusion (une installation est
valide seulement si le logiciel a été acheté par le département). L’exemple 2-83 met en œuvre la
solution universelle. Le tableau 2.9 décrit les contraintes avec les multiplicités m1=* et m2=1.
Figure 2-82 Collections pour les classes-associations
Tableau 2.8 Contraintes à respecter pour la solution avec structures
m1
m2
Contraintes
1
1
Pour tous les objets de type A2, les couples de références (refC1,refC2b) sont
distincts deux à deux et on n’utilise pas la collection colA2. La contrainte ci doit aussi
être respectée.
1
*
On n’utilise pas la collection colA2 et la contrainte ci doit être respectée.
*
1
Pour tous les objets A2, les couples de références (refC1,refC2b) sont distincts deux
à deux et on utilise la collection colA2. La contrainte ci doit aussi être respectée.
*
*
On utilise la collection colA2 et la contrainte ci doit être respectée.
Tableau 2.9 Contraintes à respecter pour la solution universelle
m1
m2
Contrainte
*
1
Pour tous les objets Installation, la référence refAch est distincte. Plusieurs objets
Installation peuvent avoir la même référence refServ.
C1 [ … , …, colA1{ a, @refC2a }]
C2 [ … , … ]
C3 [ … , … , colA2{ b, @refC1, @refC2b }]
Précédent

- 173/316

Suivant