Referentiële integriteit

Introductie tot relationele databases in SQL

Timo Grossenbacher

Data Journalist

Referentiële integriteit

  • Een record dat naar een andere tabel verwijst, moet naar een bestaand record verwijzen
  • Gespecificeerd tussen twee tabellen
  • Afgedwongen via foreign keys
Introductie tot relationele databases in SQL

Schendingen van referentiële integriteit

Referentiële integriteit van tabel A naar tabel B wordt geschonden...

  • ...als een record in B waar A naar verwijst, wordt verwijderd.
  • ...als een record in A naar een niet-bestaand record in B verwijst.
  • Foreign keys voorkomen dit!
Introductie tot relationele databases in SQL

Omgaan met schendingen

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
);
Introductie tot relationele databases in SQL

Omgaan met schendingen (vervolg)

ON DELETE...

  • ...NO ACTION: Geef een foutmelding
  • ...CASCADE: Verwijder alle verwijzende records
  • ...RESTRICT: Geef een foutmelding
  • ...SET NULL: Zet de verwijzende kolom op NULL
  • ...SET DEFAULT: Zet de verwijzende kolom op de standaardwaarde
Introductie tot relationele databases in SQL

Laten we naar wat voorbeelden kijken!

Introductie tot relationele databases in SQL

Preparing Video For Download...