Obiektowe modelowanie systemów informatycznych



Pobieranie 8,01 Mb.
Strona56/113
Data23.10.2017
Rozmiar8,01 Mb.
1   ...   52   53   54   55   56   57   58   59   ...   113

Transakcje i protokoły zarządzania transakcjami muszą spełniać postulat ASOT (atomowość, spójność, odizolowanie, trwałość). Angielski termin ACID (atomocity, consistency, isolation, durability). Postulat ten rozumiany jest następująco:

1. Atomowość – każda transakcja stanowi pojedynczą i niepodzielną jednostkę przetwarzania (a także odtwarzania) – w transakcji nie ma więc podtransakcji. Każda transakcja jest bądź wykonana w całości, bądź też żaden jej efekt nie jest widoczny w bazie danych - „Wszystko lub niczego”.

2. Spójność – transakcja rozpoczynając się w spójnym stanie bazy danych pozostawia bazę danych w stanie spójnym (tym samym lub innym). Jeśli transakcja narusza warunki spójności bazy danych, to SZBD powoduje jej odrzucenie.

3. Odizolowanie – zmiany wykonywane przez transakcję nie zatwierdzoną nie są widziane przez inne transakcje (chyba, że przyjęty poziom izolacji na to zezwala).



4. Trwałość – zmiany w bazie danych dokonane przez transakcję zatwierdzoną są trwałe w bazie danych, tzn. nawet w przypadku awarii systemu musi istnieć możliwość ich odtworzenia.

Przykład 2. Rozważmy transakcje z przykładu 1.

Atomowość oznacza, że transakcję

= ,

musimy traktować jako niepodzielną całość. Nie można więc przyjąć, że na przykład system utrwala wykonanie w bazie danych dwóch pierwszych operacji zakładając, że po jakimś czasie zrealizuje dwie następne operacje. Bałaby to koncepcja wyróżniania podtransakcji, co w tradycyjnych systemach baz danych jest niedopuszczalne. Jeśli więc z jakiegoś powodu wykonanie transakcji ulegnie przerwaniu ( na przykład w wyniku awarii) po dwóch pierwszych operacjach, to system musi zapewnić wycofanie dokonanych zmian.



Spójność oznacza, że system nie dopuści do zatwierdzenia transakcji, która naruszy jakikolwiek warunek spójności bazy danych. W rozważanym przypadku warunkiem spójności może być wymaganie, aby stan rachunku bankowego był zawsze większy od zera (statyczny warunek spójności) lub suma stanów kont po wykonaniu transakcji była taka sama jak przed jej wykonaniem (dynamiczny warunek spójności).

Odizolowanie oznacza, że zmiany wykonane przez jedną transakcję nie są widoczne dla innych transakcji dopóty, dopóki transakcja ta nie zostanie zatwierdzona. Rozważmy jednak następujący ciąg operacji:

gdzie jest transakcja programu przelew(), a transakcja programu info(). Transakcja odczytuje stan konta KONTO2, zanim jeszcze transakcjazmieniająca ten stan konta została zatwierdzona. Naruszony jest więc rygorystyczny warunek odizolowania.


1   ...   52   53   54   55   56   57   58   59   ...   113


©operacji.org 2017
wyślij wiadomość

    Strona główna