Aller au contenu
MCD → MLD

Identifiant relatif → MLD

Une entité faible devient une table dont la clé primaire est composée de la clé étrangère vers l'entité forte et de l'identifiant local. Cette clé étrangère ne peut donc jamais être vide.

  • entité faible
  • clé composée
  • identification relative
  • dépendance

Syntaxe

Modèle
FORTE (1,n) ── ASSOC ── (1,1) FAIBLE   (identification relative)→ faible(cle_forte FK → forte, cle_locale, …)  clé primaire = (cle_forte, cle_locale)

Exemple

Exemple concret
MCD : HOTEL (1,n) ── COMPORTER ── (1,1) CHAMBRE   [identification relative]MLD : hotel(num_hotel PK, nom, ville)      chambre(num_hotel FK → hotel, num_chambre, etage, nb_lits)        clé primaire = (num_hotel, num_chambre)  num_hotel | num_chambre | etage  1         | 12          | 1  2         | 12          | 1     ✓ autorisé : autre hôtel  1         | 12          | 2     ✗ refusé : doublon (1, 12)

À retenir

  1. La clé étrangère fait partie de la clé primaire : elle est donc forcément NOT NULL, ce qui traduit le (1,1).
  2. Une table qui référence une chambre a besoin des deux colonnes : reservation(…, num_hotel, num_chambre), avec une clé étrangère composée vers chambre.
  3. ON DELETE CASCADE est souvent justifié ici : supprimer un hôtel supprime ses chambres, qui n'ont pas d'existence propre. Confirmez-le avec le métier.
  4. Piège : ne mettre que num_chambre en clé primaire. Deux hôtels ne pourraient plus avoir chacun une chambre 12, ce qui contredit la réalité.

Voir aussi