Bonjour,
Plusieurs sujets parlent du passage du MCD au MLD et débouchent sur des règles qui entrent en contradiction avec une grande partie de la littérature sur Merise, y compris sur le site Developpez.com :
Petit guide d'analyse des données à l'aide de la méthode MERISE
http://sqlpro.developpez.com/cours/m...passage#L5.1.2
FAQ Merise
http://merise.developpez.com/faq/?pa...LD_PasserAuMLD
Je vais donc tenter, sous votre contrôle, de synthétiser les différentes idées issues de plusieurs sujets, et de redéfinir les principales règles permettant de créer des tables à partir d'un MCD (pour les associations binaires).
Pour une association binaire, 10 cas sont possibles :
0,1 - 0,1
0,1 - 1,1
0,1 - 0,n
0,1 - 1,n
1,1 - 0,n
Pour ces 5 premiers cas, la création d'une table associative permet d'éviter les NULL, le MLD correspondant comportera donc 3 tables pour chacun des cas.
1,1 - 1,1
Dans ce cas soit nous obtenons 2 tables, soit les deux entités sont fusionnées pour obtenir 1 table.
1,n - 1,1
Ici nous obtenons 2 tables (et l'identifiant de l'entité "père" devient une clé étrangère dans la table "fille")
0,n - 0,n
0,n - 1,n
1,n - 1,n
Pour ces trois derniers cas, nous obtenons 3 tables.
En conclusion, on peut dire :
- Si au moins une cardinalité minimum vaut zéro, on crée une table associative pour éviter les NULL.
- Si les deux cardinalités maximales sont à n, on crée une table associative.
- pour une relation 1,1 - 1,1, il est possible de fusionner les tables.
- pour une relation 1,n - 1,1, on crée deux tables et l'on ajoute une clé étrangère dans la table fille.
Je souhaite limiter cette discussion sur ces règles élémentaires pour éviter que l'on se disperse (plus tard, nous pourrons par exemple compléter ce sujet en parlant des clés, des relations unaires ou n-aires, de l'identification relative, etc...).
Dans un premier temps j'aimerai voir si nous parvenons à obtenir un consensus sur ces règles.
L'objectif du sujet sera d'obtenir un consensus sur un algorithme simple et optimisé qui permettra de passer d'un MCD validé à un MLD.
Partager