Association ternaire
Une association ternaire relie exactement trois entités ; au-delà, on parle d'association n-aire. Elle se justifie seulement quand le fait n'a de sens qu'avec les trois entités à la fois.
- 3 entités
- ternaire
- n-aire
- décomposition
Syntaxe
ENTITE_A (x,n) ──┐ENTITE_B (x,n) ──┼── ASSOCIATIONENTITE_C (x,n) ──┘(une cardinalité sur chacune des trois pattes)Exemple
Règle : « Un fournisseur livre un produit à un magasin,à un prix négocié propre à ce trio. »FOURNISSEUR (0,n) ──┐PRODUIT (1,n) ──┼── LIVRER (prix_negocie)MAGASIN (0,n) ──┘Test de décomposition : FOURNIR (fournisseur, produit) etVENDRE (produit, magasin) ne disent plus quel fournisseurlivre quel magasin, ni à quel prix → la ternaire est justifiée.MLD : livrer(num_fournisseur, ref_produit, num_magasin, prix_negocie) clé primaire = les trois clés étrangèresÀ retenir
- Faites toujours le test de décomposition : si deux ou trois associations binaires restituent exactement les mêmes faits, préférez-les.
- Une cardinalité maximale à 1 sur une patte de ternaire signale presque toujours une erreur : l'entité concernée détermine alors les deux autres, et la ternaire se décompose en binaires.
- Au MLD, la ternaire devient une table dont la clé primaire réunit les trois clés étrangères, complétée de ses attributs.
- Piège : relier trois entités par une ternaire alors que les faits sont indépendants (un professeur enseigne des matières, il intervient dans des salles). On obligerait à saisir des combinaisons qui n'ont pas de sens.
Voir aussi
- AssociationUne association exprime un lien métier entre entités, comme un client qui passe une commande. Elle a au moins deux pattes, qui peuvent viser la même entité (association réflexive).
- Association porteuse d'attributsUne association peut porter des attributs qui décrivent le lien lui-même, comme la quantité d'un produit dans une commande. On les y place quand ils dépendent de toutes les entités reliées.
- CIF et contraintes inter-associations (avancé)Notion avancée : une CIF signale qu'une entité en détermine une autre, et les contraintes inter-associations (inclusion, exclusion) expriment les règles que les cardinalités seules ne disent pas.
- Dépendances fonctionnellesUne dépendance fonctionnelle A → B signifie qu'une valeur de A détermine une seule valeur de B. Les repérer dans le dictionnaire indique où placer chaque attribut et quels liens poser.