Intégrité référentielle

Introduction aux bases de données relationnelles en SQL

Timo Grossenbacher

Data Journalist

Intégrité référentielle

  • Un enregistrement qui référence une autre table doit cibler un enregistrement existant de cette table
  • Spécifiée entre deux tables
  • Imposée par des clés étrangères
Introduction aux bases de données relationnelles en SQL

Infractions à l'intégrité référentielle

L'intégrité référentielle de la table A vers la table B est enfreinte…

  • …si un enregistrement de la table B référencé par un enregistrement de la table A est supprimé.
  • …si un enregistrement de la table A référençant un enregistrement inexistant de la table B est inséré.
  • Les clés étrangères préviennent ces infractions !
Introduction aux bases de données relationnelles en SQL

Gérer les infractions

CREATE TABLE a (
 id integer PRIMARY KEY,
 column_a varchar(64), 
 ...,
 b_id integer REFERENCES b (id) ON DELETE NO ACTION
);
CREATE TABLE a (
 id integer PRIMARY KEY,
 column_a varchar(64), 
 ...,
 b_id integer REFERENCES b (id) ON DELETE CASCADE
);
Introduction aux bases de données relationnelles en SQL

Gérer les infractions (suite)

ON DELETE…

  • …NO ACTION : génère une erreur
  • …CASCADE : supprime tous les enregistrements référents
  • …RESTRICT : génère une erreur
  • …SET NULL : met la colonne de référence à NULL
  • …SET DEFAULT : met la colonne de référence à sa valeur par défaut
Introduction aux bases de données relationnelles en SQL

Voyons quelques exemples !

Introduction aux bases de données relationnelles en SQL

Preparing Video For Download...