Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Bazy danych

Wskaż poprawną zasadę dotyczącą spójności danych w bazie danych

A. w relacji 1..n pole klucza obcego jest połączone z polem klucza obcego innej tabeli.
B. pole klucza obcego nie może być puste.
C. pole klucza podstawowego musi posiadać utworzony indeks.
D. pole klucza podstawowego nie może być puste.

Pytanie z egzaminu CKE, czerwiec 2016 (arkusz E.14-X-16.05).

Zasada, że pole klucza podstawowego nie może być puste, jest jedną z podstawowych reguł spójności encji w relacyjnych bazach danych. Klucz podstawowy jednoznacznie identyfikuje każdy rekord w tabeli, więc jego wartość musi istnieć i musi być unikatowa. Gdyby w kolumnie klucza podstawowego dopuszczono NULL, baza nie miałaby pewnego sposobu odróżnienia jednego wiersza od drugiego, a to rozwalałoby sens relacji. W praktyce w tabeli Uczniowie pole id_ucznia jako PRIMARY KEY nie może być puste, bo na nim mogą opierać się powiązania z ocenami, obecnościami czy wypożyczeniami książek. Standard SQL i dobre praktyki projektowania baz danych zakładają, że PRIMARY KEY automatycznie wymusza ograniczenie NOT NULL oraz unikalność. Moim zdaniem to jedna z tych zasad, które warto zapamiętać na stałe, bo pojawia się prawie w każdym sensownym projekcie bazy. Indeks dla klucza podstawowego zwykle jest tworzony automatycznie przez system zarządzania bazą, ale istotą spójności jest tutaj brak wartości pustych i jednoznaczna identyfikacja rekordu.
W tym pytaniu łatwo pomylić kilka pojęć, bo klucz podstawowy, klucz obcy, indeks i relacja 1..n występują często razem, ale nie oznaczają tego samego. W relacji jeden do wielu klucz obcy w tabeli podrzędnej powinien odwoływać się do klucza podstawowego albo przynajmniej do pola unikatowego w tabeli nadrzędnej, a nie do klucza obcego w innej tabeli. Na przykład w tabeli Zamówienia kolumna id_klienta wskazuje na id_klienta w tabeli Klienci, gdzie jest to klucz podstawowy. Dzięki temu baza wie, którego klienta dotyczy zamówienie. Łączenie klucza obcego z innym kluczem obcym zwykle nie zapewnia stabilnej identyfikacji rekordu i może prowadzić do niespójnych danych. Mylenie indeksu z ograniczeniem integralności też jest dość typowe. Indeks przyspiesza wyszukiwanie i często jest zakładany automatycznie dla klucza podstawowego, ale sama informacja o indeksie nie opisuje najważniejszej zasady spójności danych. Indeks może istnieć również na zwykłej kolumnie, która nie identyfikuje rekordu. Nie jest też prawdą, że klucz obcy zawsze musi być niepusty. W wielu modelach danych wartość NULL w kluczu obcym jest dopuszczalna, jeśli związek jest opcjonalny, na przykład pracownik może nie mieć przypisanego kierownika albo produkt może chwilowo nie należeć do żadnej kategorii. Dopiero dodatkowe ograniczenie NOT NULL wymusza obowiązkowe powiązanie. Najpewniejsza zasada brzmi więc: klucz podstawowy nie może być pusty, bo bez tego nie da się poprawnie i jednoznacznie identyfikować rekordów w tabeli.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.