KWALIFIKACJA INF3 - CZERWIEC 2023 (test 2)

PYTANIE NR 14.
Relacja pomiędzy tabelami, realizowana przez bezpośrednie połączenie kluczy głównych obu tabel jest relacją
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Połączenie kluczy głównych obu tabel oznacza, że po obu stronach użyto wartości unikalnych.
Skoro PK w każdej tabeli nie może się powtarzać, to jednemu rekordowi z tabeli A może odpowiadać co najwyżej jeden rekord w tabeli B i odwrotnie. Taka krotność to relacja 1..1.

Pełne wyjaśnienie:

Relacja między tabelami opisuje, ile rekordów z jednej tabeli może odpowiadać pojedynczemu rekordowi z drugiej tabeli. W relacji 1..1 (jeden do jednego) każdy rekord z tabeli A ma przypisany dokładnie jeden rekord z tabeli B, i jednocześnie każdy rekord z tabeli B wskazuje dokładnie jeden rekord z tabeli A.

Klucz główny (PK) ma cechę unikalności: dana wartość PK może wystąpić w tabeli tylko raz. Jeżeli relacja jest realizowana przez bezpośrednie połączenie kluczy głównych obu tabel, to po obu stronach "łączenia" stoją wartości unikalne. To automatycznie ogranicza krotność: nie da się przypisać wielu rekordów z jednej tabeli do jednego rekordu z drugiej, bo wymagałoby to powtórzenia wartości klucza głównego.

Dlatego odpowiedź "1..1" jest poprawna: unikalność PK po obu stronach wyklucza krotności 1..n oraz n..1.

  • Odpowiedź "1..n" jest błędna, bo wymaga sytuacji, w której wiele rekordów tabeli B może wskazywać jeden rekord tabeli A. To zwykle osiąga się przez klucz obcy w tabeli B, który nie jest kluczem głównym (albo nie ma ograniczenia UNIQUE), aby dopuszczać powtórzenia.
  • Odpowiedź "n..1" jest błędna z analogicznego powodu: musiałyby istnieć powtórzenia po stronie "wiele", a PK na to nie pozwala.
  • Odpowiedź "n..m" jest błędna, bo relacja wiele-do-wielu w modelu relacyjnym jest zwykle realizowana przez tabelę pośrednią (asocjacyjną) z dwoma kluczami obcymi, a nie przez proste połączenie PK z PK.

W praktyce relację 1:1 stosuje się np. przy podziale danych encji na część podstawową i rozszerzenie (dane rzadko używane, wrażliwe lub opcjonalne), zachowując jednoznaczne dopasowanie rekordów między tabelami.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Relacja 1:1 oznacza, że jednemu rekordowi w tabeli A odpowiada dokładnie jeden rekord w tabeli B i odwrotnie. W praktyce często służy do podziału danych jednej encji na dwie tabele (część podstawowa i rozszerzona), przy zachowaniu jednoznacznego dopasowania rekordów.
Klucz główny (PK) jest unikalny, więc ta sama wartość nie może wystąpić w tabeli więcej niż raz. Gdy łączysz PK jednej tabeli z PK drugiej, po obu stronach masz unikalność, co uniemożliwia sytuację "wiele rekordów do jednego". To wymusza krotność 1:1.
To zapis krotności relacji między tabelami. 1..1 – jeden do jednego, 1..n – jeden do wielu, n..1 – wiele do jednego, n..m – wiele do wielu. Określa, ile rekordów może być powiązanych po każdej stronie relacji.
Najczęściej robi się to tak, że klucz główny w tabeli podrzędnej jest jednocześnie kluczem obcym wskazującym na klucz główny tabeli nadrzędnej. Dzięki temu masz zarówno integralność referencyjną (FK), jak i unikalność (PK), co razem daje relację 1:1.
Gdy tabela "wiele" ma zwykły FK (bez unikalności), ta sama wartość FK może wystąpić wielokrotnie, więc powstaje 1:n. Jeśli jednak na kolumnie FK narzucisz unikalność (np. UNIQUE) albo jest ona PK, to duplikaty są zablokowane i relacja zachowuje się jak 1:1.
W relacyjnym modelu danych jedna kolumna nie powinna przechowywać listy wartości. Aby powiązać wiele rekordów z A z wieloma rekordami z B, tworzy się tabelę pośrednią (asocjacyjną), która zawiera co najmniej dwa klucze obce. To pozwala zapisać każdą parę powiązań jako osobny rekord.
Częsty błąd to automatyczne wybieranie 1:n, bo jest to najpopularniejsza relacja w praktyce. Inny błąd to pomijanie faktu, że PK jest unikalny, oraz mylenie "PK połączony z PK" z "PK połączony z FK" bez sprawdzenia, czy po stronie FK dopuszczalne są duplikaty.
Unikalność PK gwarantuje, że każdy rekord ma jednoznaczny identyfikator i nie ma dwóch wierszy o tym samym kluczu głównym. To ułatwia łączenie tabel (JOIN), wymuszanie integralności danych i projektowanie relacji. W kontekście krotności relacji unikalność ogranicza możliwość powiązań typu "wiele".
W ERD relacja 1:1 jest oznaczana tak, że po obu stronach relacji widnieje "1" (lub brak "crow’s foot"). Dodatkowo w implementacji często widać, że klucz w jednej tabeli jest zarówno PK, jak i FK do drugiej tabeli, co praktycznie wymusza jeden rekord na jeden rekord.
Ćwicz rozpoznawanie krotności na prostych przykładach: PK–FK (typowo 1:n), PK–PK (1:1) oraz n:m z tabelą pośrednią. Naucz się też, jak ograniczenia PK, FK i UNIQUE wpływają na liczbę możliwych powiązań. Pomaga rysowanie mini-ERD i krótkie opisy przypadków użycia.
info

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

W praktyce zawodowej kluczowe jest to, że taka krotność to relacja 1..1.

Źródła:

  • PostgreSQL Documentation: "Constraints" (PRIMARY KEY, FOREIGN KEY, UNIQUE), https://www.postgresql.org/docs/current/ddl-constraints.html - accessed 2026-03-02
  • MySQL 8.0 Reference Manual: "CREATE TABLE" / "PRIMARY KEY" and "FOREIGN KEY Constraints", https://dev.mysql.com/doc/refman/8.0/en/create-table.html - accessed 2026-03-02
  • Microsoft Learn (SQL Server): "PRIMARY KEY constraints" oraz "FOREIGN KEY constraints", https://learn.microsoft.com/en-us/sql/relational-databases/tables/primary-and-foreign-key-constraints - accessed 2026-03-02

Materiały:

  • Dokumentacja PostgreSQL – rozdziały o ograniczeniach PRIMARY KEY i FOREIGN KEY
  • Dokumentacja MySQL – sekcje o PRIMARY KEY, UNIQUE i FOREIGN KEY
  • Dokumentacja Microsoft SQL Server – opis constraintów PRIMARY KEY i FOREIGN KEY oraz relacji 1:1

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego