Bonjour,
Commençons par régler le plus urgent grâce à cette règle de modélisation conceptuelle (s'appliquant donc aux MCD) :
Une association d'ordre supérieur à 2 (ternaire, quaternaire, etc.) ne doit pas contenir de "patte" dont la cardinalité maximale est 1 (donc 0,1 ou 1,1). Si elle en contient, alors l'association peut, et doit, être décomposée.
Cette règle mérite quelques explications. Prenons l'exemple de l'association Envoie du MCD1 du post #1. Elle peut se lire ainsi :
- Pour un Tribunal, il existe 0 à n couples {Client, Facture}
- Pour un Client, il existe 0 à n couples {Tribunal, Facture}
- Pour une Facture, il existe un et un seul couple {Tribunal, Client}
La dernière phrase signifie qu'une Facture est envoyée par un et un seul Tribunal et qu'elle ne concerne qu'un et un seul Client. Par conséquent, il faut décomposer l'association Envoie en 2 CIF :
[ Facture ]--1,1----( est envoyée )----0,n->[ Tribunal ]
[ Facture ]--1,1----( concerne )----0,n->[ Client ]
La décomposition étant effectuée, il faut vérifier qu'il n'y a pas de perte sémantique. Autrement dit, il faut vérifier qu'on retrouve bien les 0,n couples {Client, Facture} d'un Tribunal et les 0,n couples {Tribunal, Facture} d'un Client.
Soit le cas suivant :
- Le Tribunal T1 envoie 2 factures au client C1
- Le Tribunal T1 envoie 1 facture au client C2
- Le Tribunal T2 envoie 1 facture au client C1
- Le Tribunal T2 envoie 3 factures au client C2
L'association Envoie contient (clés soulignées) :
1 2 3 4 5 6 7 8 9 10
|
Tribunal Client Facture
-------- ------ -------
T1 C1 F1
T1 C1 F2
T1 C2 F3
T2 C1 F4
T2 C2 F5
T2 C2 F6
T2 C2 F7 |
On notera que chaque Facture n'est associée qu'à un seul couple {Tribunal, Client} ; autrement dit, chaque facture n'est représentée qu'une fois dans l'association.
Vérifions donc qu'il n'y a pas de perte sémantique après décomposition :
CIF "est envoyée" :
1 2 3 4 5 6 7 8 9 10
|
Facture Tribunal
------- --------
F1 T1
F2 T1
F3 T1
F4 T2
F5 T2
F6 T2
F7 T2 |
CIF "concerne" :
1 2 3 4 5 6 7 8 9 10
|
Facture Client
------- ------
F1 C1
F2 C1
F3 C2
F4 C1
F5 C2
F6 C2
F7 C2 |
Effectuons une "jointure" sur Facture :
1 2 3 4 5 6 7 8 9 10
|
Facture Tribunal Client
------- -------- ------
F1 T1 C1
F2 T1 C1
F3 T1 C2
F4 T2 C1
F5 T2 C2
F6 T2 C2
F7 T2 C2 |
On retrouve bien l'ensemble des lignes de l'association d'origine Envoie à l'identique. Il n'y a pas de perte sémantique.
Il faudrait donc inspecter et revoir les différents MCD proposés car ils comportent tous au moins une association décomposable. La présence de ce type d'associations dans un MCD révèle souvent soit un amalgame entre données et traitements, soit l'imprécision des règles de gestion ou un défaut dans leur analyse.
Partager