KWALIFIKACJA INF3 - STYCZEŃ 2021 (test 2)

PYTANIE NR 24.
W bazach danych relacja wiele-do-wielu pomiędzy tabelami występuje, gdy
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Relacja wiele‑do‑wielu zachodzi wtedy, gdy jeden rekord z tabeli A może być powiązany z wieloma rekordami tabeli B, a jednocześnie jeden rekord z tabeli B może być powiązany z wieloma rekordami tabeli A. Opisy 1:N, N:1 i 1:1 nie spełniają tego warunku symetrii krotności.

Pełne wyjaśnienie:

Relacja wiele‑do‑wielu (M:N) oznacza, że powiązania są "wielokrotne" po obu stronach: pojedynczy wiersz (rekord) z tabeli A może wskazywać na wiele wierszy w tabeli B oraz pojedynczy wiersz z tabeli B może wskazywać na wiele wierszy w tabeli A. Taki opis odpowiada stwierdzeniu: "wielu wierszom tabeli A przypada wiele wierszy tabeli B".

Dla porównania, odpowiedź "wielu wierszom z tabeli A przypada tylko jeden wiersz tabeli B" opisuje relację typu wiele‑do‑jednego (N:1): wiele rekordów w A może wskazywać na jeden rekord w B (np. wielu pracowników należy do jednego działu).

Odpowiedź "jednemu wierszowi z tabeli A może odpowiadać wiele wierszy w tabeli B" to relacja jeden‑do‑wielu (1:N): jeden rekord w A może mieć wiele powiązanych rekordów w B (np. jeden klient może mieć wiele zamówień). Sama ta informacja nie wystarcza do M:N, bo nie mówi nic o możliwości wielokrotnego powiązania w kierunku B→A.

Odpowiedź "jednemu wierszowi z tabeli A może odpowiadać wyłącznie jeden wiersz tabeli B" opisuje relację jeden‑do‑jednego (1:1), gdzie każdemu rekordowi z A odpowiada co najwyżej jeden rekord w B (np. osoba i numer PESEL w uproszczonym modelu).

W praktycznym projektowaniu relację M:N najczęściej realizuje się przez tabelę pośrednią (łącznikową), która rozbija M:N na dwa powiązania 1:N. To ważne w implementacji w relacyjnych DBMS, bo pojedynczy klucz obcy nie koduje bezpośrednio M:N bez dodatkowej struktury.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Relacja wiele-do-wielu (M:N) oznacza, że jeden rekord z tabeli A może być powiązany z wieloma rekordami w tabeli B oraz jednocześnie jeden rekord z tabeli B może łączyć się z wieloma rekordami w tabeli A.
W relacji 1:N "wiele" występuje tylko po jednej stronie (A→B), a w drugą stronę jest "co najwyżej jeden". W M:N warunek wielokrotności musi dotyczyć obu kierunków: A→B i B→A.
Jeden klucz obcy w tabeli przechowuje zwykle pojedynczą wartość wskazującą na jeden rekord w innej tabeli. W M:N trzeba przechować wiele powiązań dla jednego rekordu, dlatego stosuje się tabelę pośrednią z dwoma kluczami obcymi.
Częste przykłady to: użytkownicy i role (użytkownik może mieć wiele ról, rola może należeć do wielu użytkowników), produkty i kategorie, kursy i uczestnicy. W praktyce zwykle pojawia się tabela łącząca, np. user_role.
Tabela pośrednia (asocjacyjna) zawiera co najmniej dwie kolumny będące kluczami obcymi, np. id_A i id_B. Każdy wiersz tej tabeli reprezentuje jedno powiązanie pary rekordów. Często klucz główny to para (id_A, id_B).
W sensie krotności tak: jeśli mówimy o M:N, to wielokrotność dotyczy obu stron (A i B). Uwaga: w implementacji nadal wybiera się "kierunek" kluczy obcych w tabeli pośredniej, ale logicznie związek nie jest 1:N.
Najczęściej myli się M:N z 1:N, bo opis "jeden może mieć wiele" wydaje się podobny. Drugi błąd to ignorowanie kierunku odwrotnego: jeśli w odpowiedzi nie ma informacji, że również po stronie B może być "wiele", to zwykle nie jest to M:N.
Relacja 1:1 bywa użyteczna, gdy rozdzielasz dane na część "opcjonalną" lub "wrażliwą" (np. dane profilu rozszerzonego), albo gdy chcesz ograniczyć dostęp. Logicznie oznacza to, że rekord w A ma co najwyżej jeden odpowiadający rekord w B.
W ERD relacja M:N jest zwykle oznaczona "crow’s foot" (trójzębem) po obu stronach związku. Jeśli po jednej stronie jest "jeden", a po drugiej "wiele", to jest 1:N. Na diagramach narzędziowych M:N często prowadzi do automatycznej propozycji tabeli łącznikowej.
Tak. Typowo tworzy się klucz główny z dwóch kolumn (id_A, id_B) albo unikalne ograniczenie na tej parze. Dzięki temu nie da się dodać dwóch identycznych powiązań. To poprawia spójność danych w relacjach wiele-do-wielu.
info

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

Eksperci podkreślają: "Opisy 1:N, N:1 i 1:1 nie spełniają tego warunku symetrii krotności."

Źródła:

  • Ramez Elmasri, Shamkant B. Navathe, "Fundamentals of Database Systems", rozdziały dot. modelowania ER i krotności związków (wydania zależne od programu nauczania).
  • Abraham Silberschatz, Henry F. Korth, S. Sudarshan, "Database System Concepts", część dot. modelu relacyjnego i projektowania schematu (związki i krotności).
  • PostgreSQL Documentation: "Foreign Keys" (opis ograniczeń i modelowania powiązań), https://www.postgresql.org/docs/current/ddl-constraints.html#DDL-CONSTRAINTS-FK (dostęp: 2026-03-02)

Materiały:

  • Rozdziały z podręczników o modelu relacyjnym i krotnościach związków
  • Dokumentacja wybranego DBMS o kluczach obcych i tabelach asocjacyjnych
  • Ćwiczenia ERD: zamiana związków M:N na strukturę z tabelą pośrednią

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego