W relacyjnych bazach danych spójność (integralność) danych realizuje się m.in. przez ograniczenia narzucane na kolumny i relacje między tabelami. Jedną z podstawowych zasad integralności encji jest to, że klucz podstawowy ma jednoznacznie identyfikować każdy rekord w tabeli. Z tego powodu nie powinien dopuszczać wartości NULL (czyli "brak wartości"), bo nie da się wtedy zagwarantować jednoznacznej identyfikacji wiersza.
Stwierdzenie "pole klucza podstawowego nie może być puste" oddaje tę zasadę w uproszczeniu. W praktyce warto pamiętać o rozróżnieniu: "puste" bywa potocznie używane, ale w bazach danych kluczowe jest, czy wartość jest NULL (brak), czy np. pustym tekstem ''. Wymóg integralności dotyczy przede wszystkim braku wartości (NULL) i unikalności.
Pozostałe stwierdzenia są mylące:
- "pole klucza obcego nie może być puste" nie jest regułą ogólną. Klucz obcy może przyjmować NULL, jeśli powiązanie jest opcjonalne (np. rekord nie musi wskazywać rekordu nadrzędnego). Dopiero gdy wymagamy obowiązkowego powiązania, projektujemy kolumnę klucza obcego jako NOT NULL.
- "pole klucza podstawowego musi posiadać utworzony indeks" bywa prawdą w wielu systemach jako efekt uboczny implementacji, ale jako zasada spójności danych jest to nieprecyzyjne: indeks dotyczy wydajności i egzekwowania unikalności, a nie jest sformułowaniem definicyjnym spójności w każdym ujęciu egzaminacyjnym.
- "w relacji 1..n pole klucza obcego jest połączone z polem klucza obcego innej tabeli" opisuje relację błędnie. Typowo w relacji 1..n klucz obcy w tabeli po stronie "wiele" wskazuje klucz podstawowy (lub unikalny) tabeli po stronie "jeden", a nie inny klucz obcy.
Na egzaminie warto zapamiętać: PRIMARY KEY = identyfikator rekordu (unikalny, bez NULL), a FOREIGN KEY = odwołanie do rekordu w innej tabeli (czasem może być NULL), zależnie od tego, czy relacja jest obowiązkowa.