KWALIFIKACJA INF3 - TEST WIEDZY NR 1

PYTANIE NR 24.
Rozważając modelowanie bazy danych, jakiego typu relacji powinniśmy użyć, aby połączyć encje "Klient" i "Zamówienie", biorąc pod uwagę, że jeden klient może złożyć wiele zamówień, ale każde zamówienie jest składane przez jednego klienta?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Opis mówi, że jeden klient może mieć wiele zamówień, a każde zamówienie ma dokładnie jednego klienta. Taka krotność odpowiada relacji jeden-do-wielu (1:N), typowej np. dla tabel Klient oraz Zamówienie z kluczem obcym po stronie zamówień.

Pełne wyjaśnienie:

W modelu encja–związek (ER) dobór typu relacji wynika bezpośrednio z krotności (cardinality) opisanej w treści. Tu mamy dwa warunki:

  • Jeden klient może złożyć wiele zamówień – czyli z perspektywy encji "Klient" istnieje możliwość powiązania z wieloma rekordami encji "Zamówienie".
  • Każde zamówienie jest składane przez jednego klienta – czyli pojedyncze "Zamówienie" nie może wskazywać wielu klientów naraz.

Taki opis odpowiada relacji jeden-do-wielu (1:N): jeden "Klient" → wiele "Zamówienie". W praktycznym projekcie relacyjnej bazy danych zwykle realizuje się to przez umieszczenie klucza obcego w tabeli po stronie "wielu", np. kolumny klient_id w tabeli Zamówienie, wskazującej na klucz główny klienta.

Dlaczego pozostałe odpowiedzi są błędne?

  • "Relacja jeden-do-jednego" oznaczałaby, że jeden klient ma co najwyżej jedno zamówienie i jedno zamówienie należy do co najwyżej jednego klienta. To przeczy informacji o możliwości wielu zamówień dla jednego klienta.
  • "Relacja wiele-do-wielu" sugeruje, że jeden klient może mieć wiele zamówień i jednocześnie jedno zamówienie może dotyczyć wielu klientów. To nie pasuje do warunku "każde zamówienie jest składane przez jednego klienta".
  • "Żadna z powyższych" jest nieprawidłowa, bo relacja 1:N dokładnie opisuje wskazany przypadek.

Wskazówka egzaminacyjna: zawsze czytaj krotność w obie strony i zamień ją na schemat "1 po tej stronie, N po tamtej", a dopiero potem dopasuj nazwę relacji.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Relacja jeden-do-wielu (1:N) oznacza, że jeden rekord w tabeli/encji A może być powiązany z wieloma rekordami w tabeli/encji B, ale każdy rekord B wskazuje na jeden rekord A. Zwykle realizuje się ją kluczem obcym po stronie "wielu".
Sprawdź oba zdania o krotności: jeśli "klient może mieć wiele zamówień" oraz "zamówienie ma jednego klienta", to jest to dokładnie 1:N. Kluczowy jest warunek po stronie zamówienia: gdy jest "jeden klient", odpada relacja N:M.
Relacja wiele-do-wielu (N:M) wymaga, aby pojedyncze zamówienie mogło dotyczyć wielu klientów. W typowym modelu zamówienie jest przypisane do jednej osoby lub jednego konta, więc N:M narusza warunek "każde zamówienie jest składane przez jednego klienta".
Najczęściej przez dodanie klucza obcego w tabeli po stronie "wielu". Dla Klient–Zamówienie będzie to np. identyfikator klienta w tabeli zamówień, wskazujący na klucz główny klienta. Dzięki temu wiele zamówień może wskazywać tego samego klienta.
Krotność mówi, ile obiektów jednej encji może być powiązanych z obiektem drugiej encji (np. 1:1, 1:N, N:M). To podstawowa informacja projektowa: wpływa na strukturę tabel, obecność kluczy obcych oraz to, czy potrzebna będzie tabela pośrednia.
Relacja 1:1 występuje, gdy każdy rekord encji A ma co najwyżej jeden rekord encji B i odwrotnie. Często spotyka się ją przy wydzielaniu rzadko używanych danych do osobnej tabeli lub gdy rozdziela się dane z powodów bezpieczeństwa, ale nadal zachowuje powiązanie "jeden do jednego".
Najczęściej myli się 1:N z N:M, bo w opisie pojawia się słowo "wiele". Drugi błąd to ignorowanie zdania opisującego drugą stronę relacji. Dobra metoda: zawsze wypisz krotność w obie strony i sprawdź, czy "pojedynczy B" może wskazywać "wiele A".
Zwykle tak w sensie zależności referencyjnej: rekordy po stronie "wielu" przechowują klucz obcy do rekordu po stronie "jeden". Nie oznacza to jednak "ważniejszej" tabeli biznesowo. To tylko informacja, gdzie trafi klucz obcy i jak będzie wyglądać integralność referencyjna.
Poza samą krotnością 1:N często dodaje się reguły integralności, np. zakaz istnienia zamówienia bez klienta (wymagalny klucz obcy) albo zasady usuwania/aktualizacji (co dzieje się z zamówieniami po usunięciu klienta). To pomaga utrzymać spójność danych w systemie.
Sprawdź, czy obiekt po stronie "wielu" może mieć wielu właścicieli. Zamówienie zwykle ma jednego klienta, więc to 1:N. N:M częściej pojawia się w relacji Zamówienie–Produkt, bo jedno zamówienie ma wiele produktów, a jeden produkt może być w wielu zamówieniach (zwykle przez tabelę pozycji).
info

Około 72% zdających odpowiada poprawnie na to pytanie. średnio łatwe

Eksperci podkreślają: "Opis mówi, że jeden klient może mieć wiele zamówień, a każde zamówienie ma dokładnie jednego klienta."

Źródła:

  • Wikipedia: Entity–relationship model (sekcja o cardinality/multiplicity) – https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model - dostęp 2026-02-27
  • Wikipedia: Cardinality (data modeling) – https://en.wikipedia.org/wiki/Cardinality_(data_modeling) - dostęp 2026-02-27

Materiały:

  • Podstawy modelowania ER/ERD (materiały kursowe z baz danych)
  • Rozdziały o modelu encja–związek w podręcznikach do baz danych
  • Dokumentacje narzędzi do ERD (np. MySQL Workbench/pgModeler) – sekcje o relacjach

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego