Foreign Key
Une clé étrangère est une colonne qui référence la clé primaire d'une autre table, établissant l'intégrité référentielle entre tables et empêchant les références orphelines.
Objectif
Garantir l'intégrité référentielle, maintenir la cohérence des données liées et empêcher les références à des lignes inexistantes.
Mécanisme
FOREIGN KEY (col) REFERENCES other(id). Contrainte : les valeurs de clé étrangère insérées/modifiées doivent exister dans la clé primaire référencée (ou être NULL). Un ON DELETE CASCADE/SET NULL facultatif définit le comportement en cascade. Les clés étrangères exigent des index pour accélérer les contrôles de contrainte et les JOIN.
Cas d’usage
- Intégrité référentielle entre tables
- Suppression/mise à jour en cascade
- Mapping de relations ORM
- Contraintes de cohérence des données
Exemples
- entrée
FOREIGN KEY (user_id) REFERENCES users(id)OutputReferential integrity constraintForeign key
Erreurs courantes
- Unindexed foreign keys lock tables during cascades
- Create an index on the foreign key column
Termes associés
Primary Key
Une clé primaire est la colonne ou combinaison de colonnes qui identifie de manière unique chaque ligne d'une table — non nulle et unique ; l'identité de la ligne. GLOSSAIRE
JOIN
JOIN est l'opération SQL combinant les lignes de plusieurs tables selon une condition de jointure ; les types incluent les jointures internes, externes gauche/droite/complètes et croisées. GLOSSAIRE
Index
Un index est une structure de données auxiliaire (ex. B+-arbre, hachage) maintenue pour accélérer les requêtes, échangeant de l'espace contre du temps au prix d'un surcoût d'écriture. GLOSSAIRE
Normalization
La normalisation des bases de données est le processus de décomposition des tables pour éliminer redondance et anomalies de mise à jour, avec des formes normales de la 1FN à la FNBC/5NF de plus en plus strictes. GLOSSAIRE