Middle
Qu'est-ce que l'intégrité des liens de référence?
sobes.tech IA
Réponse de l'IA
L'intégrité référentielle est une propriété des données dans une base de données relationnelle qui garantit que les références entre les tables restent valides. Elle empêche les problèmes suivants :
- La suppression d'une ligne dans la table "parent" à laquelle font référence des lignes dans la table "enfant".
- La modification de la clé primaire dans la table "parent" à laquelle font référence des lignes dans la table "enfant" sans mettre à jour ces références.
- L'insertion d'une ligne dans la table "enfant" avec une référence à une clé primaire inexistante dans la table "parent".
Elle est implémentée à l'aide de clés étrangères (FOREIGN KEY).
Exemples de contraintes pour les clés étrangères :
- ON DELETE CASCADE : Lors de la suppression d'une ligne dans la table parent, les lignes correspondantes dans la table enfant sont également supprimées.
- ON DELETE SET NULL : Lors de la suppression d'une ligne dans la table parent, la clé étrangère correspondante dans la table enfant est mise à NULL.
- ON DELETE RESTRICT : La suppression d'une ligne dans la table parent est interdite si des références existent dans la table enfant.
- ON UPDATE CASCADE : Lors de la mise à jour de la clé primaire dans la table parent, les clés étrangères correspondantes dans la table enfant sont également mises à jour.
-- Exemple de table "users" (parent)
CREATE TABLE users (
user_id INT PRIMARY KEY,
username VARCHAR(255) NOT NULL
);
-- Exemple de table "orders" (enfant) avec clé étrangère
CREATE TABLE orders (
order_id INT PRIMARY KEY,
user_id INT,
order_date DATE,
FOREIGN KEY (user_id) REFERENCES users(user_id)
ON DELETE CASCADE /* Exemple d'utilisation de la contrainte */
ON UPDATE CASCADE /* Exemple d'utilisation de la contrainte */
);