Aller au contenu
Modélisation avancée

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.

  • CIF
  • contrainte d'intégrité fonctionnelle
  • inclusion
  • exclusion
  • avancé

Syntaxe

Modèle
CIF : patte en (x,1) → l'entité de cette patte détermine l'autreContraintes entre associations (notées dans un cercle) :  I   inclusion  : participer à A2 exige de participer à A1  X   exclusion  : participer à A1 interdit de participer à A2  T   totalité   : participer à au moins une des associations  XT  partition  : participer à exactement une

Exemple

Exemple concret
CIF :  COMMANDE (1,1) ── PASSER ── (0,n) CLIENT  num_commande → num_client : connaître la commande,  c'est connaître son client.Inclusion (I) :  ETUDIANT ── PASSER_EXAMEN ── MATIERE                    ⊆ (I)  ETUDIANT ── SUIVRE ── MATIERE  On ne passe l'examen que d'une matière que l'on suit.Exclusion (X) :  CONTRAT ── SOUSCRIRE_PART ── PARTICULIER  CONTRAT ── SOUSCRIRE_PRO  ── SOCIETE  Un contrat est souscrit soit par un particulier,  soit par une société, jamais par les deux.

À retenir

  1. Toute association binaire qui a une patte en (x,1) est une CIF : c'est exactement ce que le MLD traduit par une clé étrangère.
  2. Une CIF posée sur une ternaire indique que deux pattes déterminent la troisième : c'est souvent le signe que la ternaire peut se décomposer.
  3. Les contraintes inter-associations ne passent pas automatiquement au MLD : il faut les programmer au MPD (CHECK, déclencheur) ou dans l'application.
  4. Piège : charger le MCD de contraintes décoratives. N'en notez une que si une règle de gestion l'exige et si quelqu'un l'implémentera réellement.

Voir aussi