ullman013 (2)

ullman013 (2)



32 I DZIEDZINA SYSTEMÓW BAZ DANYCH

z warunków spójności dla bazy danych linii lotniczych określa, że jedno miejsce w konkretnym rejsie nie zostanie przydzielone dwóm różnym klientom, laki warunek może zostać naruszony tylko na króciutką chwilę podczas przetwarzania transakcji, gdy przydziela się miejsca dla pasażerów, ale moduł zarządzania transakcjami musi zagwarantować. że po zakończeniu przetwarzania transakcji baza danych spełnia wszystkie warunki niesprzcczności.

•    Izolacja (isolation). Gdy dwie transakcje są przetwarzane jednocześnie. ich działania nie mogą na siebie wzajemnie wpływać. To oznacza, że w wyniku jednoczesnego działania dwóch transakcji nic może zdarzyć się nic, co nic stało by się, gdyby działały jedna po drugiej, sekwencyjnie. Na przykład, jeśli dwie agencje lotnicze sprzedają bilety na ten sam rejs, a zostało tylko jedno miejsce, to tylko jedno żądanie powinno zostać obsłużone, a drugie nie. Jednoczesność przeprowadzania transakcji nie może spowodować sprzedaży tego samego biletu dwóm różnym osobom.

•    Trwałość (durabilify). Jeśli transakcja się zakończy, to jej wynik nic może zostać utracony z powodu awarii systemu, nawet jeśli awaria następuje natychmiast po zakończeniu transakcji.

Sposób implementowania transakcji, który zapewnia zachowanie właściwości ACID, może być tematem zupełnie oddzielnej książki i nie zamierzamy nawet próbować pomieścić tutaj stosownych treści. W części 7.2 opisujemy natomiast w jaki sposób, w języku SQL. określić transakcje i właściwe dla nich operacje oraz jakie gwarancje uzyskuje programista, który korzysta z możliwości grupowania operacji w transakcje. Poza tym bardzo skrótowo przedstawimy tam popularne rozwiązania techniczne zapewniające transakcjom właściwości ACID.

Granulacja blokad

Systemy DBMS różnią się rozmiarami elementów danych, które są poddawane blokowaniu. Na przykład można zastosować blokadę na poziomie pojedynczych krotek, poszczególnych bloków dysku lub nawet na poziomie całych relacji. Im większe są elementy, które blokujemy, tym bardziej jest prawdopodobne, że jedna transakcja będzie musiała czekać na inną, nawet jeśli nie potrzebują dostępu do tych samych danych. Jednakże, im mniejsze są blokowane elementy, tym większy i bardziej skomplikowany musi być mechanizm obsługi blokad.


Blokady

Najczęstszą przyczyną nicrozłączności transakcji jest konieczność czytania lub zapisu tych samych danych w' bazie danych. Na przykład, jeśli dwie transakcje próbują jednocześnie zapisać nowe wartości bilansu na tym samym koncie, to jedna z transakcji zniszczy zapis wykonany przez drugą z nich. Dlatego w większości DBMS moduł zarządzania transakcjami potrafi zablokować element, którego dotyczy wykonywana właśnie transakcja. Po założeniu blokady dane są niedostępne dla innych transakcji. Mechanizm blokad w naszym przykładzie poskutkuje w ten sposób, że transakcja, dla której zostanie zablokowana krotka z bilansem konta 12345, będzie mogła odczytywać wartości tej krotki i zmieniać je, zanim druga transakcja uzyska dostęp do tej krotki. Druga transakcja uzyska zatem dostęp do nowych wartości bilansu, co oznacza, że transakcje nic przeszkadzają sobie.

Logi

Moduł zarządzania transakcjami dokumentuje wszystkie operacje, tzn. rozpoczęcie każdej transakcji, zmiany w bazie danych dokonane przez transakcje oraz zakończenie transakcji. Zapis taki nazywa się logiem. Log jest przechowywany w pamięci stałej, tzn. na nośniku danych takim jak dysk, który zapewni przetrwanie danych w przypadku awarii zasilania. Zasadnicze przetwarzanie transakcji odbywa się w ulotnej pamięci operacyjnej, ale dane

0    przebiegu jej wykonania są natychmiast zapisywane na dysku. Log wszystkich operacji jest ważnym czynnikiem zapewniającym systemow i trwałość.

Zatwierdzanie transakcji

Z powodu konieczności zagwarantowania transakcjom niepodzielności

1    trwałości są one najpierw wstępnie przetwarzane, co oznacza, żc aktualizacje są wyliczane, ale nic są zapisyw ane w bazie danych. W chwili gdy transakcja kończy działanie, jest gotowa do zatwierdzenia, zmiany są kopiowane do logu. Log jest pierwszym zapisem dokonanym na dysku przez transakcję. Dopiero potem następują aktualizacje danych.

Nawet jeśli awaria systemu nastąpi w trakcie przetwarzania operacji, to po przywróceniu funkcjonowania można przeczytać logi i stwierdzić, które zmiany trzeba jeszcze wprowadzić do bazy'1 danych. Jeśli awaria systemu nastąpi przed zapamiętaniem logu. trzeba powtórzyć całą transakcję, co zagwarantuje, że na przykład nic przydzielono dwukrotnie tego samego miejsca w samolocie lub nie obciążono dw ukrotnie konta tą samą wypłatą.

1.2.5. Architektura klient-serwer

W wiciu współczesnych systemach informatycznych stosuje się architekturę klient-serwer, gdzie polecenie jednego procesu (klienta) jest przesyłane do innego procesu {serwera) i tam obsługiwane. Systemy baz danych nic stanow ią wyjątku i często wprowadza się podział składowych z rys. 1.1 na proces serwera i jeden lub kilka procesów' klienckich.


Wyszukiwarka

Podobne podstrony:
42642 ullman008 (2) 22 1 DZIEDZINA SYSTEMÓW BAZ DANYCH (Komitet ds. systemów i języków danych (Cotnm
65864 ullman009 (2) 24 I DZIEDZINA SYSTEMÓW BAZ DANYCH1.1.3. Coraz mniejsze systemy Początkowo syste
56698 ullman014 (2) I DZIEDZINA SYSTEMÓW BAZ DANYCH W najprostszych systemach typu klient/serwer cał
ullman014 (2) I DZIEDZINA SYSTEMÓW BAZ DANYCH W najprostszych systemach typu klient/serwer cały DBMS
ullman011 (2) -O 1. DZIEDZINA SYSTEMÓW BAZ DANYCH ;obie wzajemnie przeszkadzać oraz żc żadne dane ni
29606 ullman007 (2) 20 1. DZIEDZINA SYSTEMÓW 3AZ DANYCH aktualizowania danych, za pomocą odpowiednie
ullman010 (2) 26 . DZIEDZINA SYSTEMÓW RAZ DANYCH jące przy projektowaniu DBMS. przeznaczonych do obs
Literatura uzupełniająca H. Garcia-Molina, J.D. Ullman, J Widom, Implementacja systemów baz danych,
WSiP2 32 BAZY DANYCH I SYSTEMY BAZ DANYCH Normalizacja odgrywa zatem ważną rolę w procesie projekto
Literatura: 1.    J. D. Ullman: Systemy baz danych, WNT, Warszawa 1998. 2.
ullman012 (2) o I DZIEDZINA SYSTEMÓW RAZ DANYCH urządzania zapytaniami musi określić dla tego zapyta

więcej podobnych podstron