Przejdź do głównej treści

Integralność referencyjna

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

Co to jest integralność referencyjna?

Integralność referencyjna to zasada w relacyjnych bazach danych mówiąca, że powiązania między tabelami muszą być poprawne. Oznacza to, że wartość klucza obcego w jednej tabeli musi wskazywać istniejący rekord w tabeli powiązanej albo może być równa NULL, jeśli relacja jest opcjonalna.

Najczęściej dotyczy relacji typu jeden-do-wielu, np. jeden klient może mieć wiele zamówień. W tabeli zamowienia znajduje się wtedy kolumna id_klienta, która jest kluczem obcym i odwołuje się do kolumny id w tabeli klienci.

Przykład

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

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

W takim przypadku baza danych nie powinna pozwolić na dodanie zamówienia z id_klienta = 99, jeśli w tabeli klienci nie istnieje klient o id = 99.

Ważne na egzaminie

Integralność referencyjna nie oznacza, że każdy klucz główny musi mieć przypisany klucz obcy. Nie oznacza też automatycznie, że klucz obcy zawsze musi być niepusty. Klucz obcy może mieć wartość NULL, jeżeli kolumna nie została oznaczona jako NOT NULL.

Poprawna definicja: wartość klucza obcego musi odpowiadać wartości klucza głównego w tabeli powiązanej albo być równa NULL.