Bonsoir Ian,
Dans un 1er temps, votre MCD ressemble à celui-ci, dans lequel les 3 entités-types sont en relation au moyen d’une association ternaire R, correspondant au prédicat suivant :
Le personnage PersonnageId est associé au cercle CercleId pour la catégorie CategorieId
Mais s’il existe la contrainte selon laquelle « Dans une catégorie donnée, un personnage ne peut appartenir qu’à un seul cercle », alors il faut mettre en oeuvre une CIF (contrainte d’intégrité fonctionnelle), à la manière de la FAQ Merise.
La représentation peut être ainsi simplifiée :
S’il existe la contrainte selon laquelle « Pour une cercle donné, un personnage ne peut appartenir qu’à une seule catégorie », de la même façon :
Et si les deux contraintes sont à assurer :
Le problème est que souvent les AGL ne répercutent pas les contraintes lors du passage au MLD, où le triplet {PersonnageId, CategorieId, CercleId} est alors clé candidate de R, c'est-à-dire que pour une catégorie donnée, un personnage peut se retrouver associé à plusieurs cercles, et que pour un cercle donné, ce personnage peut être associé à plusieurs catégories. Avec DB-MAIN (gratuit) on sait assurer les contraintes, car cet AGL permet de déclarer les identifiants de l’association R dès le MCD : {PERSONNAGE, CATEGORIE} et {PERSONNAGE, CERCLE} :
Et l’on observe dans le MLD les deux contraintes sous forme des clés candidates {PersonnageId, CategorieId} et {PersonnageId, CercleId} :
On retrouve le problème qui se pose par exemple avec les courses de chevaux : lors d’une course, un jockey ne peut monter qu’un seul cheval, un cheval ne peut être monté que par un seul jockey et être porteur d’un seul numéro. Ces 3 contraintes peuvent être prises en compte ainsi avec DB-MAIN, voyez ici et là.
Maintenant, votre récit est ambigu. Par exemple, vous écrivez :
Envoyé par
Ian
Je voudrais associer chaque personnage à un couple (catégorie / cercle) pour chaque catégorie existante.
Est-ce à dire que les paires {CATEGORIE, CERCLE} sont prédéfinies, et que vous voulez associer chaque personnage à une et une seule de ces paires ? Si oui, la modélisation se simplifie.
Partager