Integralność referencyjna

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Opublikowano: Zaktualizowano:

Co to jest integralność referencyjna?

Integralność referencyjna to zasada w relacyjnych bazach danych, która zapewnia poprawność powiązań między tabelami. Polega na tym, że wartość klucza obcego w jednej tabeli musi wskazywać na istniejącą wartość klucza głównego w innej tabeli albo być pusta, jeśli dopuszczono NULL.

Inaczej: baza danych pilnuje, aby rekord nie odwoływał się do nieistniejącego rekordu w tabeli nadrzędnej.

Przykład

Tabela klienci:

CREATE TABLE klienci (
  id INT PRIMARY KEY,
  imie VARCHAR(30)
);

Tabela zamowienia:

CREATE TABLE zamowienia (
  id INT PRIMARY KEY,
  klient_id INT,
  FOREIGN KEY (klient_id) REFERENCES klienci(id)
);

Kolumna zamowienia.klient_id jest kluczem obcym i wskazuje na klienci.id, czyli klucz główny tabeli klienci.

Co zapewnia integralność referencyjna?

  • nie można dodać zamówienia dla klienta, który nie istnieje,
  • nie można usunąć klienta, jeśli istnieją powiązane z nim zamówienia, chyba że ustawiono odpowiednią akcję, np. ON DELETE CASCADE,
  • powiązania między tabelami pozostają spójne.

Typowe akcje przy usuwaniu lub aktualizacji

FOREIGN KEY (klient_id) REFERENCES klienci(id)
ON DELETE CASCADE
ON UPDATE CASCADE;

Najczęstsze opcje:

  • CASCADE - automatycznie usuwa lub aktualizuje rekordy zależne,
  • RESTRICT / NO ACTION - blokuje operację naruszającą powiązanie,
  • SET NULL - ustawia klucz obcy na NULL.

W pytaniach egzaminacyjnych

Jeśli definicja mówi o utrzymaniu powiązań między tabelami, kluczu głównym i kluczu obcym, chodzi o integralność referencyjną.