Association porteuse d'attributs
Une 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.
- attribut porté
- association enrichie
- N-N
- quantité
- CIF
Syntaxe
ENTITE_A (x,n) ── ASSOCIATION ── (x,n) ENTITE_B │ attribut_du_lienExemple
Besoin : « Une commande contient plusieurs produits,chacun en une certaine quantité. »CLIENT (0,n) ── PASSER ── (1,1) COMMANDE (num_commande, date_commande)COMMANDE (1,n) ── CONTENIR ── (0,n) PRODUIT │ quantite, prix_ventequantite dépend du couple (commande, produit) :elle ne peut aller ni dans COMMANDE ni dans PRODUIT.date_commande dépend de la seule commande : elle va dans COMMANDE.À retenir
- Test : un attribut va sur l'association s'il dépend de l'ensemble des entités reliées ; la quantité dépend de la commande et du produit.
- Sur une association plusieurs-à-plusieurs, les attributs deviennent des colonnes de la table de liaison au MLD : contenir(num_commande, ref_produit, quantite, prix_vente).
- Une association fonctionnelle (une patte en (x,1)) ne devrait pas porter d'attribut : il dépend de la seule entité côté (x,1) et se place sur elle. S'il reste sur l'association, il migre avec la clé étrangère dans la table de ce côté ; il ne crée jamais de table.
- Piège : garder le modèle simplifié CLIENT ── COMMANDER(date, quantite) ── PRODUIT dès qu'une commande regroupe plusieurs produits. Deux achats du même produit le même jour se confondent ; l'entité COMMANDE reliée par PASSER et CONTENIR règle le problème.
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).
- Cas fréquentsTrois combinaisons couvrent l'essentiel des modèles : fonctionnelle (x,n)–(x,1), plusieurs-à-plusieurs (x,n)–(x,n) et un-à-un. Savoir les reconnaître donne directement la structure du MLD.
- HistorisationHistoriser, c'est garder les valeurs passées d'une information qui change, comme un prix ou une affectation. On le fait dès qu'une règle de gestion demande de retrouver la situation à une date donnée.
- 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.