W relacyjnych bazach danych klucz obcy służy do zdefiniowania powiązania (referencji) między dwiema tabelami, np. aby rekord w tabeli zamówień wskazywał istniejącego klienta. Mechanizmem, który to wymusza na poziomie bazy danych, jest ograniczenie FOREIGN KEY. Dzięki niemu baza może blokować wstawienie wartości, która nie istnieje w tabeli nadrzędnej, oraz (zależnie od definicji) kontrolować zachowanie przy usuwaniu/aktualizacji rekordów powiązanych.
Odpowiedź "FOREIGN KEY(ID)" wskazuje właściwy typ ograniczenia do zdefiniowania klucza obcego, czyli takiego, który odwołuje się do klucza (najczęściej PRIMARY KEY lub UNIQUE) w innej tabeli. W praktyce definicja w DDL bywa rozszerzona o część REFERENCES, ale idea pozostaje ta sama: to FOREIGN KEY ustanawia relację i integralność referencyjną.
Dlaczego pozostałe odpowiedzi są niepoprawne?
- "UNIQUE KEY(ID)" nie tworzy relacji między tabelami. Wymusza jedynie, aby wartości w kolumnie (lub zestawie kolumn) były unikalne w obrębie tej samej tabeli.
- "PRIMARY KEY(ID)" definiuje klucz główny, czyli główny identyfikator rekordu w tabeli. Jest często celem referencji, ale sam w sobie nie ustanawia odwołania do innej tabeli.
- "AUTO_INCREMENT(ID)" (lub odpowiednik w innych systemach) dotyczy sposobu generowania wartości liczbowych, zwykle dla kolumny identyfikatora. To nie jest ograniczenie służące do powiązań referencyjnych.
Wskazówka egzaminacyjna: gdy pytanie dotyczy relacji i odwołania do innej tabeli, szukaj pojęć "foreign", "referential" lub "REFERENCES" — to prowadzi do FOREIGN KEY. Gdy chodzi o "unikalność" w tabeli, wybieraj UNIQUE, a gdy o identyfikator rekordu — PRIMARY KEY.