KWALIFIKACJA INF3 - CZERWIEC 2024 (test 2)

PYTANIE NR 23.
Który zapis służy do ustawienia klucza obcego w MySQL?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Klucz obcy w MySQL definiuje się za pomocą ograniczenia FOREIGN KEY, które wskazuje kolumnę odwołującą się do klucza w innej tabeli (integralność referencyjna). Pozostałe zapisy dotyczą unikalności (UNIQUE), klucza głównego (PRIMARY) lub cechy automatycznego numerowania (AUTO_INCREMENT).

Pełne wyjaśnienie:

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 tabeliPRIMARY.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Klucz obcy (FOREIGN KEY) to ograniczenie, które łączy kolumnę w jednej tabeli z kluczem w innej tabeli. Wymusza spójność danych: wartość w tabeli podrzędnej musi istnieć w tabeli nadrzędnej, co zapobiega "osieroconym" rekordom.
Najczęściej używa się postaci: FOREIGN KEY (kolumna) REFERENCES tabela_nadrzędna(kolumna). Możesz też dodać reguły typu ON DELETE/ON UPDATE. W egzaminach często sprawdza się samo rozpoznanie słów kluczowych FOREIGN KEY.
PRIMARY KEY identyfikuje rekord w obrębie jednej tabeli i musi być unikalny oraz niepusty. FOREIGN KEY jest odwołaniem do klucza (zwykle PRIMARY/UNIQUE) w innej tabeli i służy do tworzenia relacji oraz kontroli spójności między tabelami.
UNIQUE KEY zapewnia, że wartości w kolumnie (lub zestawie kolumn) nie powtórzą się w tabeli. Stosuje się go np. dla adresu e-mail użytkownika. Nie tworzy relacji między tabelami i nie wymusza istnienia wartości w innej tabeli.
Nie. AUTO_INCREMENT jest atrybutem kolumny liczbowej, który automatycznie generuje kolejne wartości. Często współwystępuje z PRIMARY KEY, ale sam nie jest ani kluczem głównym, ani obcym, ani ograniczeniem relacji.
Zależy od silnika i definicji tabel, ale co do zasady potrzebujesz tabel powiązanych kolumnami o zgodnych typach i indeksu po stronie referencjonowanej (najczęściej PRIMARY KEY lub UNIQUE). W praktyce najczęściej używa się silnika obsługującego klucze obce.
Robi się to poleceniem ALTER TABLE, dodając ograniczenie FOREIGN KEY wskazujące kolumnę oraz REFERENCES do tabeli nadrzędnej. Na egzaminie INF.3 ważne jest rozumienie celu: połączenie tabel i wymuszenie spójności, nie tylko zapamiętanie komendy.
Gdy masz dane powiązane, np. użytkownicy–zamówienia, posty–komentarze, produkty–kategorie. FOREIGN KEY pomaga utrzymać porządek w bazie i zmniejsza ryzyko błędów logicznych w aplikacji (np. wpisów odnoszących się do nieistniejących rekordów).
Najczęściej myli się FOREIGN KEY z PRIMARY KEY albo z UNIQUE, bo wszystkie zawierają słowo KEY. Drugi błąd to uznawanie AUTO_INCREMENT za "klucz". Warto kojarzyć: FOREIGN = relacja między tabelami, UNIQUE = brak duplikatów, PRIMARY = identyfikator rekordu.
Sprawdź, czy pytanie mówi o powiązaniu tabel i odwołaniu do rekordu w innej tabeli — wtedy chodzi o FOREIGN KEY. Jeśli dotyczy tylko tego, aby wartości się nie powtarzały w tej samej tabeli, to zwykle jest to UNIQUE (lub PRIMARY dla identyfikatora).
info

Około 56% zdających odpowiada poprawnie na to pytanie. średnie

Specjaliści zwracają uwagę: "Klucz obcy w MySQL definiuje się za pomocą ograniczenia FOREIGN KEY, które wskazuje kolumnę odwołującą się do klucza w innej tabeli (integralność referencyjna)."

Źródła:

  • MySQL 8.0 Reference Manual: "CREATE TABLE Statement" (sekcja o ograniczeniach i składni FOREIGN KEY), https://dev.mysql.com/doc/refman/8.0/en/create-table.html - dostęp 2026-02-27
  • MySQL 8.0 Reference Manual: "FOREIGN KEY Constraints" (opis działania i wymuszania integralności referencyjnej), https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html - dostęp 2026-02-27
  • MySQL 8.0 Reference Manual: "ALTER TABLE Statement" (dodawanie ograniczeń, w tym FOREIGN KEY), https://dev.mysql.com/doc/refman/8.0/en/alter-table.html - dostęp 2026-02-27

Materiały:

  • Dokumentacja MySQL: rozdział o FOREIGN KEY i CREATE TABLE
  • Materiały do INF.3: projektowanie baz danych i normalizacja
  • Ćwiczenia SQL DDL: tworzenie tabel i definiowanie ograniczeń

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego