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
FORTE (1,n) ── ASSOC ── (1,1) FAIBLE (identification relative)→ faible(cle_forte FK → forte, cle_locale, …) clé primaire = (cle_forte, cle_locale)Exemple
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
- La clé étrangère fait partie de la clé primaire : elle est donc forcément NOT NULL, ce qui traduit le (1,1).
- 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.
- 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.
- 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
- Clé primaire (PK)La clé primaire est la colonne, ou le groupe de colonnes, qui identifie chaque ligne sans ambiguïté. Elle vient de l'identifiant du MCD et ne peut être ni vide ni dupliquée.
- Clé étrangère (FK)Une clé étrangère est une colonne qui reprend la clé primaire d'une autre table pour matérialiser un lien du MCD. Le SGBD vérifie alors que la ligne référencée existe bien.
- Clé naturelle ou clé techniqueUne clé naturelle vient du métier (ISBN, code pays) ; une clé technique est un numéro sans signification attribué par le système. Le bon choix dépend de la stabilité de la donnée.