Bonjour Big1,
La transitivité est une notion empruntée au modèle relationnel de Codd et adaptée à Merise (mais elle y est tout à fait pertinente).
Supposons le schéma théorique suivant.
1 2 3 4 5 6
|
[ENTITE_A]--1,1----(x)----0,n->[ENTITE_B]--1,1----(y)----0,n->[ENTITE_C]
| |
1,1 0,n
| |
+-----------------------------(z)----------------------------+ |
Une occurrence de ENTITE_A détermine une et une seule occurrence de ENTITE_B. De même, une occurrence de ENTITE_B détermine une et une seule occurrence de ENTITE_C. Par conséquent, une occurrence de ENTITE_A détermine,
par transitivité, une et une seule occurrence de ENTITE_C.
L'association entre ENTITE_A et ENTITE C peut donc être obtenue par transitivité au moyen des associations (qui sont des Contraintes d'Intégrité Fonctionnelle, ou CIF) x et y. La CIF z n'est donc pas une association directe et, à ce titre, doit être éliminée. Pourquoi ? Parce qu'elle est source d'incohérences. En effet, supposons :
- que l'occurrence a1 de ENTITE_A détermine l'occurrence b1 de ENTITE_B
- et que l'occurrence b1 de ENTITE_B détermine l'occurrence c1 de ENTITE_C
rien n'interdit que a1 détermine, via la CIF z, une autre occurrence de ENTITE_C, c2 par exemple, ce qui est totalement incohérent.
Il ne s'agit donc pas de "supprimer les transitivités", ceci est un abus de langage, mais plutôt d'éliminer les CIF qui ne sont pas directes.
L'adaptation de cette règle du Modèle Relationnel au MCD Merise est soumise à une contrainte : elle ne peut être vérifiée qu'avec des CIF, c'est-à-dire des associations du type 1,1---x,n (où x vaut 0 ou 1).
Partager