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
   40   41   42   43   44   45   46   47   48   49