Page 45 - DCG - SQL - 2025
P. 45
FICHE 18 - L’intégrité référentielle en base de
données
Le concept
L’intégrité référentielle est une règle fondamentale qui garantit la cohérence des données entre deux tables
liées par une clé étrangère. Elle impose que toute valeur de clé étrangère corresponde à une valeur existante
de clé primaire dans la table liée.
Exemples de situations où cette règle intervient :
• On ne peut pas insérer une commande pour un client qui n’existe pas (INSERT bloqué).
• On ne peut pas supprimer un client ayant encore des commandes (DELETE bloqué).
• On ne modifie jamais la valeur d’une clé primaire existante (UPDATE interdit), car cela casserait tous les
liens de clés étrangères.
Exemple expliqué
Schéma relationnel simplifié :
CLIENT (NoClient, NomClient)
COMMANDE (NoCommande, DateCommande, #NoClient)
Commande bloquée car le client 999 n’existe pas :
INSERT INTO COMMANDE (NoCommande, DateCommande, NoClient)
VALUES (1001, '2024-10-10', 999)
→ Erreur : le client 999 est inconnu de la table CLIENT.
Suppression bloquée car le client a des commandes :
DELETE FROM CLIENT
WHERE NoClient = 101
→ Erreur : la table COMMANDE contient encore des lignes liées à ce client.
Comportements possibles selon le système de gestion (SGBD)
• REFUSE l’opération (comportement par défaut)
• SUPPRESSION EN CASCADE : supprime aussi les lignes liées dans les autres tables
• SUBSTITUTION PAR NULL : remplace la clé étrangère par NULL (si autorisé)
40