KWALIFIKACJA INF3 - CZERWIEC 2023 (test 2)

PYTANIE NR 23.
Za pomocą którego ograniczenia (constraint) można zdefiniować klucz obcy?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Klucz obcy definiuje się ograniczeniem FOREIGN KEY, które wymusza integralność referencyjną i wskazuje, że wartości w kolumnie mają odpowiadać kluczowi w innej tabeli. PRIMARY KEY identyfikuje rekord w tej samej tabeli, UNIQUE wymusza unikalność, a AUTO_INCREMENT dotyczy generowania wartości, nie relacji.

Pełne wyjaśnienie:

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.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Klucz obcy to kolumna (lub zestaw kolumn), której wartości muszą odpowiadać wartościom klucza w innej tabeli. Służy do tworzenia relacji między tabelami i wymuszania integralności referencyjnej, aby nie dało się zapisać "powiązania" do nieistniejącego rekordu.
Do zdefiniowania klucza obcego służy ograniczenie FOREIGN KEY. To ono tworzy relację między tabelami i pozwala bazie kontrolować poprawność odwołań (np. zamówienie musi wskazywać istniejącego klienta).
PRIMARY KEY identyfikuje jednoznacznie rekord w tej samej tabeli (to "własny" identyfikator). Klucz obcy dotyczy odwołania do innej tabeli i jest definiowany przez FOREIGN KEY, a nie przez PRIMARY KEY.
UNIQUE wymusza, aby wartości w kolumnie były niepowtarzalne w obrębie tabeli. FOREIGN KEY wymusza, aby wartości odpowiadały istniejącym wartościom w tabeli nadrzędnej (relacja). UNIQUE dotyczy unikalności, FOREIGN KEY dotyczy referencji.
Nie. AUTO_INCREMENT (lub odpowiednik) służy do automatycznego generowania kolejnych wartości, zwykle dla identyfikatora. Relacje między tabelami i kontrolę odwołań realizuje FOREIGN KEY, a nie mechanizm inkrementacji.
Integralność referencyjna oznacza, że nie da się wprowadzić do tabeli podrzędnej wartości klucza obcego, która nie istnieje w tabeli nadrzędnej. Dzięki temu baza zapobiega błędom logicznym, np. zapisaniu zamówienia dla nieistniejącego klienta.
Stosuje się go zawsze, gdy jedna tabela ma wskazywać rekord z innej tabeli: użytkownicy–posty, klienci–zamówienia, produkty–kategorie. FOREIGN KEY porządkuje model danych, ułatwia utrzymanie spójności i ogranicza ryzyko błędnych zapisów.
Najczęstsze pomyłki to mylenie FOREIGN KEY z PRIMARY KEY lub UNIQUE oraz uznawanie AUTO_INCREMENT za element relacji. Warto zapamiętać: PRIMARY KEY = identyfikator w tabeli, UNIQUE = unikalność, FOREIGN KEY = odwołanie do innej tabeli.
Najczęściej wskazuje PRIMARY KEY, ale w wielu systemach może też wskazywać kolumnę objętą ograniczeniem UNIQUE (czyli również jednoznacznie identyfikującą rekord). Kluczowe jest, aby cel referencji był unikalny.
Przećwicz tworzenie tabel z PRIMARY KEY, UNIQUE i FOREIGN KEY oraz sprawdzaj, jakie błędy zwraca baza przy próbie wstawienia niespójnych danych. Pomaga też porównanie ról constraintów: identyfikacja, unikalność, referencje, generowanie wartości.
info

Statystycznie 66% uczniów zna prawidłową odpowiedź. średnie

Specjaliści zwracają uwagę: "Klucz obcy definiuje się ograniczeniem FOREIGN KEY, które wymusza integralność referencyjną i wskazuje, że wartości w kolumnie mają odpowiadać kluczowi w innej tabeli."

Źródła:

  • MySQL 8.0 Reference Manual: "CREATE TABLE Statement" (sekcja: FOREIGN KEY Constraints) https://dev.mysql.com/doc/refman/8.0/en/create-table.html (dostęp: 2026-02-27)
  • PostgreSQL Documentation (current): "CREATE TABLE" (sekcja: CONSTRAINT / FOREIGN KEY) https://www.postgresql.org/docs/current/sql-createtable.html (dostęp: 2026-02-27)
  • Microsoft Learn: "FOREIGN KEY constraints" (Transact-SQL) https://learn.microsoft.com/en-us/sql/relational-databases/tables/primary-and-foreign-key-constraints?view=sql-server-ver16 (dostęp: 2026-02-27)

Materiały:

  • Dokumentacja DBMS używanego na zajęciach (MySQL/MariaDB/PostgreSQL) – dział o FOREIGN KEY
  • Podręcznik do podstaw projektowania relacyjnych baz danych (relacje 1:N, N:M)
  • Ćwiczenia DDL: tworzenie tabel z PRIMARY KEY, UNIQUE i FOREIGN KEY oraz testowanie błędów przy wstawianiu danych

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego