u Model poszerzony o dwufazowość
Kolejny model został poszerzony o tzw. dwufazowość. czyli wg protokółu dwufazowego oznaczamy go jako 2PL lub Two Phase Locking. Polega on na tym. że każda transakcja przebiega w dwóch fazach: zablokowania i odblokowania, więc nie ma oddzielnego odblokowania. Moment założenia wszystkich blokad nazywa się punktem akceptacji. Zapis realizuje się dopiero w fazie odblokowania, a jednostka zostaje odczytana w fazie blokady. Można dodatkowo założyć, że jednostka zablokowana i zwolniona, może mieć nową blokadę dopiero po jakimś czasie. Inaczej wygląda harmonogram szeregowałnośd. graf będzie multigrafem, gdzie niektóre ścieżki mogą być traktowane wariantowo. Algorytm jest podobny do poprzednich. Ta metoda jest najczęściej implementowana w SZBD. Jest połączona z wypełnieniem i realizacją dziennika transakcji.
□ Metoda hierarhicznego blokowania
W niektórych bazach danych można zakładać blokady na całe relacje, krotki, wybrane elementy. Gdy w systemie jest możliwe powyższe blokowanie, to nazywamy ją metodą hierarchicznego blokowania. Jeżeli weźmiemy zbyt małe jednostki do blokowania, to możemy otrzymać niespójność bazy danych. Ważne jest jaką jednostką dysponujemy. Całą bazę możemy rozpatrywać jako hierarchię drzewiastą, korzeń to baza danych, a kolejne wierzchołki to relacje. Dla relacji można wyznaczać kolejne jednostki, które możemy blokować.
Metodę hierarchiczną opracował Grey. Oparta jest ona na wększej ilości blokad:
1) współdzielna i wyłączna (S i X),
2) intencjonalna blokada współdzielna (IS),
3) intencjonalna blokada wyłączna (IX).
4) blokada mieszana (SIX), która jest połączeniem S i IX.
Blokada intencjonalna współdzielona (IS) wierzchołka W w drzewie hierarchii blokad oznacza, że wystąpiła intencja odczytu co najmniej jednego następnika wierzchołka W. Blokada IS pozwala zakładać blokady IS lub S na wszystkie następniki wierzchołka W. Blokada intencjonalna wyłączna (IX) wierzchołka W oznacza, że wystąpiła intencja zapisu co najmniej jednego jego następnika. Blokada IX pozwala na zakładanie blokad IX, X, IS. S oraz SIX na następnikach wierzchołka W. Blokada mieszana (SIX) wierzchołka W pozwala na dostęp współdzielony do danych należących do wierzchołka W i do jego następników oraz pozwala na zakładanie na tych następnikach blokad
T2 | ||||||
IS |
IX |
S |
SIX |
X | ||
IS |
T |
T |
T |
T | ||
IX |
T |
T | ||||
Tl |
S |
T |
T | |||
SIX |
T | |||||
X |
Algorytm hierarchicznego blokowania transakcji obejmuje 4 kroki:
1) Pierwszym wierzchołkiem dla którego transakcja T żąda dostępu o danych jest korzeń hierarchii ziarnistej lub korzeń poddrzewa.
2) Transakcja T może założyć blokadę IS lub S wierzchołka nie będącego korzeniem <» gdy T blokuje poprzednik wierzchołka blokadą IS lub IX
3) Transakcja T może założyć blokadę IX lub SIX lub X na wierzchołku W, który nie jest korzeniem & gdy blokuje go poprzednik blokadą IS lub SIX.
4) Wszystkie blokady założone przez transakcję T muszą być odblokowane po zakończeniu tej transakcji lub w trakcie jej wykonywania w kolejności odwrotnej do kolejności ich zakładania.
W tej stosuje się jeszcze modyfikację - sposób zapisu drzewa zmieniany jest na B-drzewo. Do harmonogramu blokowania hierarchicznego stosuje się specjalne protokoły ostrzeżeń, które przestrzegają ten algorytm przed właściwą realizacją blokad, u Bezpieczeństwo przy awarii na tle metod blokowania transakcji:
System musi mieć dodatkowe mechanizmy zabezpieczenia przed awariami. Dotyczy to tylko scentralizowanych baz danych. Inne metody dotyczą systemów rozproszonych. Mówimy o awarii powodujących błędną interpretację danych i są odwracalne (do naprawy przez SZBD).
Aby zabezpieczyć system baz danych stosuje się metody:
• Okresowe sporządzanie kopii BD bez wiedzy użytkowników,
• Stworzenie kopii jest realizowanie jako odrębna transakcja na danych. Może być realizowane planowo lub tworzy się sama po upływie jakiegoś czasu.
• Mechanizmy dzienników: Dziennik Bazy Danych obejmuje identyfikator transakcji powodującej zmianę w BD , starą i nową modyfikowanej jednostki danych. Mogą być też zapisywane dodatkowe informacje, np. czy wypełniono transakcję do końca.