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: Programowanie webowe Bazy danych

Tabela pracownicy ma klucz obcy wskazujący na tabelę dzialy. Aby po usunięciu działu jego pracownicy pozostali w tabeli, a w ich polu klucza obcego pojawiła się wartość NULL, w definicji klucza obcego należy użyć klauzuli

A. ON DELETE SET NULL
B. ON DELETE RESTRICT
C. ON UPDATE CASCADE
D. ON DELETE CASCADE
Poprawna klauzula to ON DELETE SET NULL. Mechanizm działania jest następujący: gdy rekord z tabeli nadrzędnej dzialy zostanie usunięty, baza danych nie usuwa powiązanych rekordów z tabeli pracownicy. Zamiast tego w kolumnie klucza obcego, która wskazywała usunięty dział, wpisywana jest wartość NULL. Typowa składnia fragmentu definicji klucza obcego wygląda tak: FOREIGN KEY (id_dzialu) REFERENCES dzialy(id) ON DELETE SET NULL. Warunkiem działania jest to, aby kolumna klucza obcego w tabeli pracownicy dopuszczała wartość NULL. Takie rozwiązanie stosuje się, gdy dane pracowników mają pozostać w bazie, ale informacja o ich przypisaniu do działu może zostać tymczasowo usunięta.
W tym przypadku chodzi o zachowanie rekordów pracowników po usunięciu powiązanego działu, dlatego właściwa klauzula to ON DELETE SET NULL. ON DELETE CASCADE działa inaczej - usuwa rekordy podrzędne razem z rekordem nadrzędnym, więc po skasowaniu działu zniknęliby także jego pracownicy. ON UPDATE CASCADE dotyczy zmiany wartości klucza w tabeli nadrzędnej, na przykład aktualizacji identyfikatora działu; nie określa skutków usuwania rekordu. ON DELETE RESTRICT blokuje usunięcie działu, jeśli istnieją pracownicy wskazujący na ten dział, więc nie pozwoliłoby wykonać opisanej operacji. Typowy błąd polega na kojarzeniu każdej akcji na relacji z CASCADE, bez rozróżnienia między usuwaniem rekordów, aktualizacją klucza i ustawianiem wartości NULL. W zadaniu podano wprost, że pracownicy mają pozostać w tabeli, a pole klucza obcego ma zostać wyczyszczone przez wpisanie NULL.

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.