KWALIFIKACJA INF3 - CZERWIEC 2023

PYTANIE NR 20.
Fragment kodu SQL oznacza, że klucz obcy
Ilustracja przedstawia fragment kodu SQL, który jest częścią pytania egzaminacyjnego związanego z kwalifikacją zawodową
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Klucz obcy to ograniczenie, które wskazuje kolumnę (lub kolumny) w innej tabeli i wymusza integralność referencyjną. Jeśli fragment SQL kieruje referencję na kolumnę imiona, oznacza to, że wartości w kolumnie FK muszą istnieć w tej kolumnie docelowej. Pozostałe opcje mylą tabelę, miejsce FK lub sugerują samo-referencję.

Pełne wyjaśnienie:

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.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Klucz obcy to ograniczenie, które łączy rekord z rekordem w innej tabeli. Wymusza, aby wartość w kolumnie FK istniała w kolumnie referencjonowanej (zwykle PK/UNIQUE), co chroni przed niespójnymi danymi.
Sprawdź fragment z REFERENCES. Zapis REFERENCES tabela(kolumna) mówi wprost, że klucz obcy wskazuje na podaną kolumnę w tabeli docelowej. To ta część określa "cel" referencji.
Bo nie pozwala wstawić wartości, której nie ma w tabeli/kolumnie referencjonowanej. Dzięki temu nie powstają "osierocone" rekordy, np. zamówienie bez istniejącego klienta, co upraszcza raporty i działanie aplikacji.
Najczęściej tak, ale nie zawsze. FK może wskazywać także na kolumnę z ograniczeniem UNIQUE. Warunek jest taki, aby wartości w kolumnie docelowej były jednoznaczne, wtedy referencja ma sens i jest akceptowana przez DBMS.
Dzieje się tak w relacjach hierarchicznych, np. pracownik ma przełożonego, kategoria ma kategorię nadrzędną. Wtedy tabela ma FK wskazujący na własny PK. To nie jest reguła dla każdego FK, tylko szczególny przypadek.
Typowe pomyłki to: mylenie tabeli odwołującej się z referencjonowaną, mylenie nazwy tabeli z nazwą kolumny oraz ignorowanie części REFERENCES. Na egzaminie zawsze czytaj definicję FK w całości.
Oznacza to, że dopuszczalne wartości w kolumnie FK muszą odpowiadać wartościom w tej wskazanej kolumnie docelowej. To jest formalne powiązanie danych, które pozwala bezpiecznie używać JOIN i utrzymywać relacje 1..N.
W większości DBMS możesz użyć widoków systemowych (np. w PostgreSQL katalogi systemowe) lub funkcji GUI w narzędziu administracyjnym. Szukaj sekcji "Constraints"/"Foreign Keys" dla wybranej tabeli.
Technicznie tak, ale ryzykowny. Bez FK spójność musi pilnować aplikacja, co łatwo przeoczyć przy integracjach, importach lub błędach w kodzie. FK przenosi część odpowiedzialności do bazy i ułatwia utrzymanie systemu.
Ćwicz czytanie DDL: CREATE TABLE, FOREIGN KEY, REFERENCES. Twórz małe schematy (2–3 tabele), a potem sprawdzaj, co się stanie przy INSERT/DELETE. To buduje intuicję, którą testują pytania egzaminacyjne.
info

To pytanie poprawnie rozwiązuje 53% zdających egzamin. trudne

Eksperci podkreślają: "Klucz obcy to ograniczenie, które wskazuje kolumnę (lub kolumny) w innej tabeli i wymusza integralność referencyjną."

Źródła:

  • PostgreSQL Documentation (current): "REFERENTIAL INTEGRITY CONSTRAINTS" / FOREIGN KEYS, https://www.postgresql.org/docs/current/ddl-constraints.html (dostęp: 2026-02-18)
  • MySQL 8.0 Reference Manual: "FOREIGN KEY Constraints", https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html (dostęp: 2026-02-18)
  • SQLite Documentation: "FOREIGN KEY constraints", https://www.sqlite.org/foreignkeys.html (dostęp: 2026-02-18)

Materiały:

  • Dokumentacja DBMS: sekcje o FOREIGN KEY/REFERENCES (PostgreSQL lub MySQL)
  • Materiały o normalizacji i modelowaniu relacyjnym (relacje 1..N, PK/FK)
  • Ćwiczenia praktyczne: tworzenie tabel z PK/FK i testy INSERT/UPDATE/DELETE

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego