W relacyjnych bazach danych klucz obcy (FOREIGN KEY) służy do powiązania rekordów pomiędzy tabelami i do pilnowania integralności referencyjnej. W praktyce oznacza to, że wartość wpisana w kolumnie (lub zestawie kolumn) będącej kluczem obcym musi odpowiadać istniejącej wartości w kolumnie referencjonowanej (zwykle kluczu głównym lub kolumnie z ograniczeniem UNIQUE).
Jeżeli analizowany fragment SQL wskazuje, że klucz obcy łączy się z kolumną "imiona", to znaczy, że w definicji ograniczenia użyto mechanizmu typu REFERENCES ... (imiona) (lub równoważnego zapisu), a więc to właśnie ta kolumna jest celem referencji. Dzięki temu nie da się wstawić do tabeli odwołującej się takiej wartości, której nie ma w kolumnie "imiona" w tabeli referencjonowanej.
Dlaczego pozostałe odpowiedzi są niepoprawne?
- "znajduje się w tabeli obiekty" – samo stwierdzenie o położeniu FK nie wynika z tego, co oznacza referencja na kolumnę "imiona". Klucz obcy jest zawsze zdefiniowany w tabeli odwołującej się, ale pytanie dotyczy tego, co fragment kodu mówi o celu referencji.
- "jest referencją do samego siebie" – samo-referencja zachodzi, gdy tabela wskazuje na własną kolumnę (np. relacja hierarchiczna). Tu sens fragmentu ma wskazywać inną kolumnę docelową ("imiona"), a nie mechanizm self-reference.
- "ustawiony jest na kolumnie obiekty" – klucz obcy ustawia się na konkretnej kolumnie (np. id_imienia), a nie na "kolumnie obiekty", jeśli "obiekty" jest nazwą tabeli. To typowy błąd mylenia nazw tabel z nazwami kolumn.
Wskazówka egzaminacyjna: w DDL najpierw znajdź część FOREIGN KEY (...), a potem w REFERENCES tabela(kolumna) sprawdź, dokąd prowadzi referencja. To zwykle bezpośrednio odpowiada na tego typu pytania.