Table des matières:
- Définition - Que signifie l'intégrité référentielle (RI)?
- Techopedia explique l'intégrité référentielle (RI)
Définition - Que signifie l'intégrité référentielle (RI)?
L'intégrité référentielle (RI) est un concept de base de données relationnelle, qui stipule que les relations de table doivent toujours être cohérentes. En d'autres termes, tout champ de clé étrangère doit correspondre à la clé primaire référencée par la clé étrangère. Ainsi, toute modification du champ de clé primaire doit être appliquée à toutes les clés étrangères, ou pas du tout. La même restriction s'applique également aux clés étrangères en ce sens que toutes les mises à jour (mais pas nécessairement les suppressions) doivent être propagées à la clé parent principale.
Techopedia explique l'intégrité référentielle (RI)
Prenons une base de données bancaire, qui contient deux tables:
- Table CUSTOMER_MASTER: elle contient les données de base du client / titulaire du compte telles que le nom, le numéro de sécurité sociale, l'adresse et la date de naissance.
- Table ACCOUNTS_MASTER: elle stocke les données de base du compte bancaire telles que le type de compte, la date de création du compte, le titulaire du compte et les limites de retrait.
Pour identifier de manière unique chaque client / titulaire de compte dans la table CUSTOMER_MASTER, une colonne de clé primaire nommée CUSTOMER_ID est créée.
Pour identifier une relation client / compte bancaire dans la table ACCOUNTS_MASTER, un client existant dans la table CUSTOMER_MASTER doit être référencé. Ainsi, la colonne CUSTOMER_ID - également créée dans la table ACCOUNTS_MASTER - est une clé étrangère. Cette colonne est spéciale car ses valeurs ne sont pas nouvellement créées. Ces valeurs doivent plutôt faire référence à des valeurs existantes et identiques dans la colonne de clé primaire d'une autre table, qui est la colonne CUSTOMER_ID de la table CUSTOMER_MASTER.
L'intégrité référentielle est une norme qui signifie que toute valeur CUSTOMER_ID dans la table CUSTOMER_MASTER ne peut pas être modifiée sans modifier la valeur correspondante dans la table ACCOUNTS_MASTER. Par exemple, si l'ID client d'Andrew Smith est modifié dans la table CUSTOMER_MASTER, cette modification doit également être appliquée à la table ACCOUNTS_MASTER, permettant ainsi aux informations de compte d'Andrew Smith de se lier à son ID client.