Comme nous l'avons étudié dans la section précédente, les contraintes d'intégrité référentielle empêche qu'un attribut déclaré comme clé étrangère d'une table ne reçoive une valeur à laquelle ne correspond aucun enregistrement dans la table référencée. Dans la base de donnée Entreprise, vous pouvez empêcher la saisie de données invalides pour chaque clé étrangère en spécifiant des contraintes d'intégrité référentielles adéquates.
Pour définir une contrainte d'intégrité référentielle avec phpMyAdmin, il convient de procéder en trois étapes que nous allons décrire ici au travers de l'exemple de l'attribut AffectationID situé dans la table EMPLOYE qui doit être défini comme une clé étrangère référençant la clé primaire DepartementID de la table DEPARTEMENT. En supposant qu'aucun département ne peut disparaître tant qu'il existe des employés qui lui sont affectés, nous devrons préciser qu'aucun enregistrement de la table DEPARTEMENT ne pourra être supprimé tant qu'il est référencé par un enregistrement situé dans la table EMPLOYE:
AffectationID de la table EMPLOYE à l'aide du bouton
:
Création d'un index pour l'attribut AffectationID de la table EMPLOYE
AffectationID comme clé étrangère référençant la clé primaire DepartementID de la table DEPARTEMENT. A ce dessein, il suffit de cliquer sur le bouton de Gestion des relations symbolisé par l'icône
puis de préciser l'attribut référencé par AffectationID:
Déclarer l'attribut AffectationID de la table EMPLOYE comme clé étrangère référençant l'attribut ProjetID de la table DEPARTEMENT
ON DELETE. Notons qu'il est possible de restreindre la suppression (RESTRICT), d'appliquer une suppression en cascade (CASCADE), de mettre les clés étrangères à la valeur nulle lors de la suppression des enregistrements référencés (NULL) ou de ne rien faire (NO ACTION):
Préciser l'action à déclencher lors de la suppression de l'enregistrement référencé
Définissez les contraintes référentielles des tables DEPARTEMENT et APPARTENANCE de telle sorte qu'elles satisfassent au schéma relationnel et aux contraintes ci-dessous:
|