Aller au contenu
Concepts MLD

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.

  • FK
  • FOREIGN KEY
  • référence
  • nullable
  • intégrité référentielle

Syntaxe

Modèle
table_enfant(…, cle_parent FK → table_parent)  NOT NULL si la cardinalité de ce côté est (1,1)  nullable si elle est (0,1)

Exemple

Exemple concret
client(num_client PK, nom)commande(num_commande PK, date_commande, num_client FK → client)client   : (17, Dupont)commande : (C1001, 2026-10-03, 17)   ✓ le client 17 existe           (C1002, 2026-10-04, 99)   ✗ refusée : aucun client 99

À retenir

  1. La clé étrangère se place dans la table dont la cardinalité maximale vaut 1 : une commande pointe vers son client, jamais l'inverse.
  2. Elle est NOT NULL quand la cardinalité de son côté est (1,1), nullable quand elle est (0,1).
  3. Elle reprend le nom de la clé visée (num_client), sauf quand un rôle l'impose, comme num_encadrant dans une association réflexive.
  4. À la suppression d'un parent, choisissez selon la règle métier : refus (RESTRICT ou NO ACTION, le défaut), CASCADE pour une dépendance forte, SET NULL pour un lien optionnel.
  5. Piège : faire pointer la clé étrangère vers une colonne qui n'est ni clé primaire ni UNIQUE, comme le nom du client. Le SGBD la refuse, ou la référence devient ambiguë au premier homonyme.

Voir aussi