W relacyjnych bazach danych klucz obcy służy do powiązania rekordu w jednej tabeli z rekordem w innej tabeli. W MySQL realizuje się to przez ograniczenie FOREIGN KEY, które wskazuje kolumnę (lub zestaw kolumn) przechowującą wartości istniejące w tabeli nadrzędnej. Dzięki temu baza może wymuszać integralność referencyjną, czyli np. blokować dodanie zamówienia dla nieistniejącego klienta.
Odpowiedź "FOREIGN KEY(ID)" wskazuje właściwy typ ograniczenia dla klucza obcego (choć w praktyce najczęściej spotkasz pełniejszą postać w definicji tabeli, np. z dopisaniem REFERENCES oraz nazwą tabeli i kolumny docelowej).
- "UNIQUE KEY(ID)" dotyczy zapewnienia unikalności wartości w kolumnie lub indeksie. Nie tworzy relacji między tabelami i nie sprawdza istnienia wartości w innej tabeli.
- "PRIMARY KEY(ID)" oznacza klucz główny, który jednoznacznie identyfikuje rekord w obrębie tej samej tabeli. Klucz główny jest często celem referencji, ale sam w sobie nie jest kluczem obcym.
- "AUTO_INCREMENT(ID)" jest atrybutem kolumny liczbowej, który automatycznie nadaje kolejne wartości. To nie jest mechanizm relacji ani ograniczenie referencyjne.
Wskazówka egzaminacyjna: gdy pytanie dotyczy powiązania tabel i spójności danych między tabelami, szukaj słowa FOREIGN. Gdy chodzi o unikalność – wybór zwykle dotyczy UNIQUE, a gdy o identyfikację rekordu w tabeli – PRIMARY.