Integritatea referențială

Introducere în baze de date relaționale în SQL

Timo Grossenbacher

Data Journalist

Integritatea referențială

  • Un înregistrare care referențiază altă tabelă trebuie să se refere la o înregistrare existentă în acea tabelă
  • Specificată între două tabele
  • Aplicată prin chei externe
Introducere în baze de date relaționale în SQL

Încălcări ale integrității referențiale

Integritatea referențială din tabela A spre tabela B este încălcată...

  • ...dacă o înregistrare din tabela B referențiată dintr-o înregistrare din tabela A este ștearsă.
  • ...dacă o înregistrare din tabela A care referențiază o înregistrare inexistentă din tabela B este inserată.
  • Cheile externe previn încălcările!
Introducere în baze de date relaționale în SQL

Gestionarea încălcărilor

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
);
Introducere în baze de date relaționale în SQL

Gestionarea încălcărilor (continuare)

ON DELETE...

  • ...NO ACTION: Generează o eroare
  • ...CASCADE: Șterge toate înregistrările care referențiază
  • ...RESTRICT: Generează o eroare
  • ...SET NULL: Setează coloana de referință la NULL
  • ...SET DEFAULT: Setează coloana de referință la valoarea implicită
Introducere în baze de date relaționale în SQL

Să analizăm câteva exemple!

Introducere în baze de date relaționale în SQL

Preparing Video For Download...