Bazy danych w sterowaniu systemy transakcyjne sterowanie dostępem współbieżnym Stan spójny bazy danych zgodność z możliwym stanem reprezentowanego fragmentu świata rzeczywistego; spełnione są wszystkie zdefiniowane warunki integralności Zagrożenia spójności: awaria sprzętu użytkownicy współbieżny dostęp do danych Transakcja funkcja (ciąg operacji) przeprowadzająca bazę danych ze stanu spójnego P 1 do stanu spójnego P 2. W bazie danych o ruchu lotniczym zaznaczyć opóźnienie o 1 minutę czasu lądowania (S 1 i S 2 ) dwóch samolotów z kolejki. Warunek integralności: odstęp czasowy między samolotami ma pozostać stały. Własności transakcji: niepodzielność albo zostaną wykonane wszystkie operacje albo żadna spójność baza danych pozostaje w stanie spójnym izolacja transakcje są od siebie odizolowane logicznie trwałość modyfikacje dokonane w transakcjach potwierdzonych pozostają w bazie nawet jeśli wystąpi awaria (1) Początek transakcji (2) Odczyt S 1 (3) S 1 := S 1 +1 (4) Zapis S 1 (5) Odczyt S 2 (6) S 2 := S 2 +1 (7) Zapis S 2 (8) Koniec transakcji Obszar roboczy 13:25 13:28 13:29 13:26 S 1 S 2 13:25 13:26 13:28 13:29 1
Nagłe przerwanie transakcji Przerwanie transakcji po akcji (4) powoduje przejście bazy danych do stanu niezgodności Równoległe wykonanie dwóch transakcji Nieprawidłowe Prawidłowe T1 (1) T1(5) T1 (2) T1 (1) T1(6) T2 (1) T1 (2) T1(7) T2 (2)... T1(8) T1 (3) T1 (8) T2(5) T2 (3) T2 (1) T2(6) T1 (4) T2 (2) T2(7) T2 (4)... T2(8) T2 (8) S 1 S 2 13:25 13:27 13:26 13:28 13:29 13:30 1. Początek transakcji Identyfikator wewnętrzny transakcji Obszar roboczy Ciąg bloków kontrolnych 2. Koniec transakcji 3. Odczyt Wartość obiektu z bazy obszar roboczy 4. Zapis Obszar roboczy wartość obiektu w bazie 5. Anulowanie usunięcie wszystkich zmian wprowadzonych przez transakcję Jest to usunięcie wszelkich śladów wykonania transakcji powrót do stanu sprzed zmian wprowadzonych przez transakcję Z powodu awarii Decyzja Systemu Zarządzania Bazą Danych Samocofnięcie się transakcji Początek transakcji Akcja 1... Akcja n Koniec transakcji = punkt potwierdzenia Wartości potwierdzone wartości zaktualizowane przez transakcję, gdy osiągnie ona punkt potwierdzenia 2
Zapoczątkowanie transakcji i kontrola jej wykonania potwierdzenie lub anulowanie Sterowanie dostępem współbieżnym synchronizacja transakcji konfliktowych Odtwarzanie stanu zgodnego po awarii Rekonstrukcja transakcji, które osiągnęły punkt potwierdzenia Anulowanie transakcji, które nie osiągnęły punktu potwierdzenia Odczyt-odczyt: współdzielenie danych Zapis-zapis: utrata aktualizacji Zapis-odczyt: odczyt niewłaściwy Odczyt-zapis: odczyt niepowtarzalny - 10 Odczyt (A) - 10 A:=A+10 Lampa 1 Lampa 2 TAK TAK A:=A+20 10 - - 20 Zapis (A) Zapis(A) 30 - Lampa 3 NIE Lampa n NIE 3
T 2 Utrata aktualizacji Niewłaściwy odczyt Odczyt niepowtarzalny Poziom 0 W R/W możliwa możliwy możliwy Poziom 1 W W niemożliwa możliwy możliwy Poziom 2 R W niemożliwa niemożliwy możliwy Poziom 3 W R niemożliwa niemożliwy niemożliwy Zablokuj (x) żądanie wyłączności dostępu do obiektu x Odblokuj (x) odwołanie blokady obiektu x Reguła 1: Żadna z transakcji nie może dokonać aktualizacji lub odczytu obiektu zanim nie uzyska prawa wyłączności do niego. Reguła 2: Jeśli transakcja T 2 nie może uzyskać prawa wyłączności do obiektu x ponieważ blokuje go transakcja, wówczas transakcja T 2 czeka aż odblokuje obiekt x - 10 Odczyt (A) - 10 A:=A+10 A:=A+20 10 - - 20 Zapis (A) Zapis(A) 30 - Zablokuj (A) 10 - - 10 Zablokuj (A) A:=A+20 10 oczekiwanie Zapis(A) 30 oczekiwanie Odblokuj (A) 30 oczekiwanie - 30 Odczyt (A) - 30 A:=A+10 Impas (zakleszczenie) Graf oczekiwania T 2 T 2 Zablokuj (A) - - Zablokuj (B) Zablokuj (B) - oczekiwanie - oczekiwanie Zablokuj (A) - 40 Zapis (A) oczekiwanie oczekiwanie - 40 Odblokuj (A) 4
Transakcje zawsze mogą oczekiwać na odblokowanie obiektów Analizowany jest graf oczekiwania, wyszukiwane są cykle Anulowanie transakcji: która wprowadziła najmniej zmian rozpoczętej najpóźniej Wykonanie testu dotyczącego transakcji żądającej blokady T i oraz transakcji dysponującej blokadą T j TAK Ti oczekuje NIE jedna z transakcji jest anulowana: T i technika bez wywłaszczania T j technika z wywłaszczaniem Metoda bezwzględna każda transakcja T i żądająca dostępu do obiektu zablokowanego przez T j jest anulowana Metoda priorytetowa Każdej transakcji przyporządkowuje się priorytet Transakcja T i może oczekiwać na odwołanie blokady przez T j, gdy: priorytet (T i ) < priorytet (T j ) Cykl: T i,, T j,, T k, T i jest niemożliwy Bazy danych są typowymi elementami systemów do sterowania Współbieżny dostęp jest typowym problemem baz danych w systemach sterowania Algorytmy przetwarzania transakcyjnego eliminują niekorzystne zależności przy dostępnie współbieżnym ale mogą powodować inne problemy (np. impasy), które wymagają modyfikacji tych algorytmów 5