BD-1st-2.4-lab9.tresc-1.1-Slajd22

Z Studia Informatyczne
Wersja z dnia 07:33, 10 sie 2006 autorstwa PKrzyzagorski (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Odroczone ograniczenia integralnościowe (1)

Odroczone ograniczenia integralnościowe (1)


Zwykłe ograniczenia integralnościowe sprawdzane są zaraz po wykonaniu polecenia modyfikującego dane relacji. Można jednak zdefiniować tzw. odroczone ograniczenia integralnościowe, sprawdzane dopiero w momencie zatwierdzenia transakcji, której jedną z operacji była modyfikacja danych relacji. Jeśli stan danych relacji w momencie zatwierdzenia transakcji nie spełnia zasad narzuconych przez ograniczenia intergralnościowe, wówczas cała transakcja zostaje wycofana.

Aby utworzyć ograniczenie odroczone w poleceniu CREATE TABLE lub ALTER TABLE za definicją ograniczenia dodajemy klauzulę DEFERRABLE. Klauzula ta ustala cechę odroczonej weryfikacji ograniczenia. Następnie musimy określić, czy definiowane ograniczenie będzie zaraz po utworzeniu weryfikowane z opóźnieniem (ustala to klauzula INITIALLY DEFERRED) czy też ma się zachowywać jak standardowe ograniczenie, weryfikowane natychmiast po wykonaniu polecenia modyfikacji danych (ustala to klauzula INITIALLY IMMEDIATE). Dla ograniczenia utworzonego z klauzulą DEFERRED można przełączać moment weryfikacji ograniczenia, takiej operacji nie można jednak wykonać dla zwykłego ograniczenia integralnościowego. Realizuje się to poleceniem SET CONSTRAINTS, w którym podaje się nazwy ograniczeń, które mają zmienić moment weryfikacji, i określa moment sprawdzenia (DEFERRED dla sprawdzenia odroczonego i IMMEDIATE dla weryfikacji natychmiastowej). Zamiast listy ograniczeń można podać słowo ALL, wówczas wszystkim ograniczeniom, utworzonym z opcją DEFERRABLE, zostanie zmieniony moment weryfikacji.


<< Poprzedni slajd | Spis treści | Następny slajd >>