Wykład 10 Prowadzący: dr Paweł Drozda

Slides:



Advertisements
Podobne prezentacje
TRADYCYJNE METODY PLANOWANIA I ORGANIZACJI PROCESÓW PRODUKCYJNYCH
Advertisements

Bazy danych II Transakcje Piotr Górczyński 25/08/2001.
Przetwarzanie transakcyjne
Podstawowe pojęcia programowania współbieżnego
ALGORYTMY GRAFOWE.
Grażyna Mirkowska PJWSTK 15 listopad 2000
Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
Minimalne drzewa rozpinające
Systemy rozproszone W. Bartkiewicz Wykład 11. Transakcje
Bazy danych 10. Z łą czenia i transakcje P. F. Góra semestr letni 2004/05.
ALGORYTMY I STRUKTURY DANYCH
Zrównoleglanie programu sekwencyjnego
Standardy w zakresie systemów rozproszonych i baz danych
Systemy zarządzania bazami danych 9. Transakcje. Oryginał: Hector Garcia-Molina9. Transakcje2 Współbieżność, wielodostęp T 1 T 2 …T n BD (więzy integralności)
WYKŁAD 7. Spójność i rozpięte drzewa
WYKŁAD 8. Siła spójności Wierzchołek v nazywamy wierzchołkiem cięcia grafu G, gdy podgraf G-v ma więcej składowych spójności niż G. Krawędź e nazywamy.
WYKŁAD 8. Siła spójności A,B – dowolne podzbiory V(G)
GRAFY PLANARNE To grafy, które można narysować na płaszczyźnie tak, by krawędzie nie przecinały się (poza swoimi końcami). Na przykład K_4, ale nie K_5.
Wykład 11 Prowadzący: dr Paweł Drozda
Synchronizacja Rozdział 5.
Wykład 3 Wojciech Pieprzyca
Wykład 5 Wojciech Pieprzyca
Odkrywanie wzorców sekwencji
Zadanie 1.
Algorytmy grafowe Reprezentacja w pamięci
Zarządzanie transakcjami
Zarządzanie transakcjami i odtwarzanie po awarii
Modele baz danych - spojrzenie na poziom fizyczny
Zarządzanie transakcjami w SQL Server
Zarządzanie transakcjami Wykład S. Kozielski. Zarządzanie transakcjami Transakcja – jedna lub więcej operacji na bazie danych stanowiących pewną logiczną
Bezpieczeństwo baz danych
Bazy Danych II prowadzący: mgr inż. Leszek Siwik
WYKŁAD 7. Spójność i rozpięte drzewa Graf jest spójny, gdy dla każdego podziału V na dwa rozłączne podzbiory A i B istnieje krawędź z A do B. Definicja.
TRANSAKCJE TYLKO ODCZYT TYLKO ZAPIS
SQL – Structured Query Language (3)
Podstawy programowania II
Arkusze kalkulacyjne, część 3
Systemy operacyjne.
Pliki Pojęcie i rodzaje plików Definicja typu plikowego Operacje wykonywane na plikach elementowych.
Andrzej Macioł Bazy danych – model relacyjny – cz. 1 Andrzej Macioł
Model relacyjny.
dr Łukasz Murowaniecki T-109
Zadanie 1.
Projektowanie relacyjnych baz danych – postacie normalne
Temat 7: Instrukcje warunkowe
Algorytmika.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 1: Wprowadzenie do baz danych.
Temat 3: Integralność danych. Integralność danych, określana również mianem spójności danych, jest to funkcja SZBD, która gwarantuje, że dane nie zostaną.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
1 SBD, L.Banachowski Zaawansowane cechy SQL Powtórzenie wyk ł adu 5.
1 Zarządzanie transakcjami Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000.
Slajd 1© J.Rumiński Jacek Rumiński  Bazy danych Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: , fax: ,
Projektowanie relacyjnych baz danych – diagramy związków encji
Jak wykonać prosty licznik odwiedzin strony internetowej?
WĘDRÓWKI PO GRAFACH Obchody Eulera Cykle Hamiltona.
Algorytmy równoległe Algorytm równoległy pozwala na wykonywanie w danej chwili więcej niż jednej operacji. EREW - wyłączny odczyt i wyłączny zapis; CREW.
Transakcje Przedmiot: Bazy Danych Prowadzący: mgr inż. Leszek Siwik Autorzy: Grzegorz Szymczyk Damian Wieczorek.
GRA CHOMP. Czym jest chomp? Jest to gra dla dwóch osób, rozgrywana na prostokątnej tablicy, zwanej „tabliczką czekolady”
Wykład 3 Prowadzący: dr Paweł Drozda. Użytkownik bazy danych – osoba lub aplikacja, mająca dostęp do części danych zgromadzonych w bazie Uprawnienia –
Bazy Danych Wprowadzenie
Zarządzanie projektami
Pojęcia podstawowe c.d. Rachunek podziałów Elementy teorii grafów
Algorytmy. Co to jest algorytm? Przepis prowadzący do rozwiązania zadania.
Zagadnienia transportowe Katedra Ekonomiki i Funkcjonowania Przedsiębiorstw Transportowych.
Liczbami naturalnymi nazywamy liczby 0,1,2,3,..., 127,... Liczby naturalne poznaliśmy już wcześniej; służą one do liczenia przedmiotów. Zbiór liczb.
Przetwarzanie transakcyjne. Wprowadzenie (1) Baza danych – jest abstrakcyjnym odzwierciedleniem wybranego fragmentu rzeczywistości (ang. miniworld) mini.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Technologie Informacyjne Bazy danych
Zarządzanie projektami
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

Wykład 10 Prowadzący: dr Paweł Drozda Transakcje Wykład 10 Prowadzący: dr Paweł Drozda

Wprowadzenie Baza danych odzwierciedla część rzeczywistości Zmiany świata rzeczywistego muszą znaleźć odzwierciedlenie w bazie (przejście ze stanu spójnego do innego stanu spójnego) Problemy: Awaryjność Współbieżny dostęp do danych Rozproszenie baz dr Paweł Drozda

Przykład wprowadzający Rezerwacja biletów lotniczych na lot X w firmie A przez pasażera Y za kwotę Z Awaria po dokonaniu zapłaty (przed wystawieniem biletu) – częściowo wykonane operacje Dwie osoby w tym samym czasie rezerwują ostatni bilet na dany lot Rozwiązanie - transakcja dr Paweł Drozda

Transakcje Sekwencja logicznie powiązanych operacji na bazie danych. Przeprowadza bazę z jednego stanu spójnego w inny stan spójny Dozwolone operacje: Odczyt, zapis danych Zakończenie transakcji Akceptację lub wycofanie transakcji Rozwiązuje problemy awaryjności, wielodostępności i rozproszenia dr Paweł Drozda

Transakcja – rezerwacja lotu begin UPDATE Loty SET wolneMiejsca=wolneMiejsca-1 WHERE idlotu =X; UPDATE Konta SET saldo = saldo –Z WHERE klient=Y; SET saldo = saldo +Z WHERE klient=A; INSERT INTO Pasażerowie(lot,klient) VALUES (X,Y); commit; // zatwierdzenie transakcji dr Paweł Drozda

Własności transakcji ACID (1) Atomowość (Atomicity) Wykonanie całej transakcji albo niewykonanie żadnej operacji składowej (odzwierciedlenie świata rzeczywistego) Spójność (Consistency) Transakcja nie narusza spójności (w czasie wykonywania transakcji baza może być przejściowo niespójna) dr Paweł Drozda

Własności transakcji ACID (2) Izolacja (Isolation) Transakcje wykonywane jednocześnie nie wpływają na siebie Trwałość (Durability) Po zakończeniu transakcji zaktualizowane dane nie mogą zostać w żaden sposób utracone dr Paweł Drozda

Zachowanie ACID - przykład Atomowość – gdy lot zostanie zarezerwowany z zapłatą Spójność – taka sama kwota dodana co odjęta; liczba miejsc w tabeli loty musi być równa liczbie nowych rekordów w tabeli Pasażerowie Izolacja – różne rezerwacje nie wpływają na siebie Trwałość – odzwierciedlenie w bazie nowych stanów dr Paweł Drozda

Możliwe przebiegi transakcji p. COMMITED COMMITED READ/WRITE Start FAILED TERMINATED Koniec transakcji – wszystkie operacje zostały wykonane. Wybór: wprowadzić zmiany do bazy poprzez zatwierdzenie (commit) wycofać transakcję (rollback) dr Paweł Drozda

Reprezentacja transakcji Operacje transakcji: Zapis – w(x) Odczyt – r(x) Zatwierdzenie – c wycofanie – a Reprezentacja za pomocą grafu G(V,A): V – węzły odpowiadające operacjom transakcji A – krawędzie reprezentujące porządek na zbiorze operacji dr Paweł Drozda

Reprezentacja transakcji - przykład r(x) r(y) w(x) w(y) c T2 b) r(x) w(x) r(z) r(y) c w(y) r(y) dr Paweł Drozda

Kontrola wielodostępu Konieczność zapewnienia dostępu do bazy danych wielu użytkownikom Zapewnienie możliwości wykonania współbieżnie transakcji Problemy wynikające z wielodostępu: utrata zmian niezatwierdzone zależności niespójność dr Paweł Drozda

Problemy wielodostępu – przykład(1) Utrata zmian x – stan konta – początek 50 T1 r(x) x=x-30 w(x) commit T2 r(x) x=x+20 w(x) commit x 50 50 70 20 20 Stan konta po operacjach powinien wynieść 40. Została utracona informacja o zwiększeniu o kwotę 20 dr Paweł Drozda

Problemy wielodostępu – przykład(2) niezatwierdzone zależności x – stan konta – początek 50 T1 r(x) x=x-30 w(x) commit … T2 r(x) x=x+20 w(x) rollback x 50 50 70 70 50 40 dr Paweł Drozda

Problemy wielodostępu – przykład(3) Niespójność stany kont początek x=50 y=30 z=40 s - suma T1 r(x) x=x-30 w(x) r(z) z=z+30 w(z) commit T2 s=0 r(x) s=s+x r(y) s=s+y s=s+z commit r(z) x 50 50 20 20 20 20 y 30 30 30 30 30 30 z 40 40 40 40 70 70 suma 50 50 80 80 150 dr Paweł Drozda

Szeregowalność transakcji (1) Definicje: Harmonogram (realizacja) – ciąg operacji z więcej niż jednej transakcji z zachowaniem porządku w każdej z transakcji sekwencyjny – bez przeplatania operacji pomiędzy transakcjami niesekwencyjny – operacje różnych transakcji przeplatają się Szeregowalność – możliwość ustawienia transakcji współbieżnych, tak aby wynik był równoważny z wykonaniem sekwencyjnym dr Paweł Drozda

Szeregowalność transakcji (2) Zapewnienie szeregowalności – odpowiednie uporządkowanie operacji zapisu i odczytu: transakcje czytają ten sam element – kolejność odczytu nieistotna Transakcje czytają lub zapisują różne elementy – kolejność wykonania nieistotna Jedna z transakcji zapisuje element a druga odczytuje lub zapisuje – kolejność istotna dr Paweł Drozda

Szeregowalność - przykład T1 r(x) w(x) r(y) w(y) commit T2 r(x) w(x) r(y) w(y) commit Szeregowanie kolizji T1 r(x) w(x) r(y) w(y) commit T2 r(x) w(x) r(y) w(y) commit dr Paweł Drozda

Graf szeregowalności Graf skierowany G(N,E) jest grafem szeregowalności, gdzie: transakcje Ti obrazowane są przez wierzchołki Ti  Tj jest krawędzią grafu, gdy Tj zapisuje wartość elementu wcześniej czytanego przez Ti Ti  Tj jest krawędzią grafu, gdy Tj czyta wartość elementu zapisanego przez Ti Ti  Tj jest krawędzią grafu, gdy Tj zapisuje wartość elementu wcześniej zapisanego przez Ti Jeśli w grafie G istnieje krawędź Ti  Tj to w sekwencyjnym harmonogramie równoważnym Ti występuje przed Tj dr Paweł Drozda

Warunek szeregowalności grafu Harmonogram jest szeregowalny wtedy i tylko wtedy, gdy graf szeregowalności dla tego harmonogramu jest acykliczny T1 r(x) x=x-30 w(x) r(y) y=y+30 w(y) commit r(x) x=x*1.1 w(x) T2 commit r(y) y=y*1.1 w(y) T1 T2 Graf cykliczny dr Paweł Drozda

Odtwarzalność Szeregowalność daje gwarancję poprawności wykonania harmonogramu transakcji, gdy wszystkie transakcje są zaakceptowane (commited) Problem – jedna z transakcji wycofana (przez użytkownika, awaria systemu itd.) H = r1(x) w1(x), r2(x), w2(x), c2 r1(x), w1(x), <awaria>, c1 dr Paweł Drozda

Odtwarzalność - definicje Ti czyta daną x z transakcji Tj w harmonogramie H jeżeli: wj(x)<ri(x) aj< ri(x) jeżeli istnieje operacja wk(x) taka, że wj(x)< wk(x) <ri(x) to aj< ri(x) Ti czyta z transakcji Tj w harmonogramie H jeżeli Ti czyta dowolną daną z transakcji Tj w harmonogramie H dr Paweł Drozda

Harmonogram odtwarzalny Harmonogram H jest odtwarzalny (RC) wówczas, jeżeli Ti czyta z Tj w harmonogramie H i ci należy do H to cj<ci Harmonogram H unika kaskadowych wycofań (ACA) wówczas, jeżeli transakcja Ti czyta z Tj, to cj<ri(x) Harmonogram H jest ścisły (ST) wówczas, jeżeli wj(x)<oi(x), zachodzi aj<oi(x) lub cj<oi(x), gdzie oi(x) jest jedną z operacji ri(x) lub wi(x) dr Paweł Drozda

Odtwarzalność - przykład T1= w1(x) w1(y)w1(z)c1 T2= r2(u)w2(x) r2(y)w2(y)c2 H1= w1(x)w1(y)r2(u)w2(x)r2(y)w2(y)c2w1(z)c1 H2= w1(x)w1(y)r2(u)w2(x)r2(y)w2(y)w1(z)c1c2 H3= w1(x)w1(y)r2(u)w2(x)w1(z)c1r2(y)w2(y)c2 H4= w1(x)w1(y)r2(u)w1(z)c1w2(x)r2(y)w2(y)c2 H1 – nie odtwarzalna, H2 – RC, H3 – RC, ACA, H4 – RC,ACA,ST dr Paweł Drozda

Odtwarzalność - zależności dr Paweł Drozda

Algorytmy zarządzania współbieżnym wykonaniem transakcji blokowanie - uszeregowanie transakcji wynika z kolejności uzyskiwanych blokad znaczników czasowych – uszeregowanie wynika z wartości znaczników czasowych związanych z transakcjami optymistyczne – walidacja poprawności uszeregowania dr Paweł Drozda

Blokowanie (1) Blokada – zmienna skojarzona z każdą daną w bazie; określa możliwość wykonania określonych operacji Możliwe stany: dana nie zablokowana dana zablokowana do odczytu R dana zablokowana do zapisu W dr Paweł Drozda

Blokowanie (2) Operacje SZBD związane z blokowaniem: Blokowanie danej x do odczytu (LR(x)) Blokowanie danej x do zapisu (LW(x)) Odblokowanie danej x (UNL(x)) Operacje blokowania muszą poprzedzać operacje odczytu lub zapisu zmiennej dr Paweł Drozda

Blokowanie (3) Dwie blokady są kompatybilne, gdy mogą być założone na jednej danej przez dwie różne transakcje (tylko dwie blokady odczytu są kompatybilne) Konwersja blokad – zmiana typu blokady. Niedopuszczalna konwersja z blokady do zapisu na blokadę do odczytu dr Paweł Drozda

Algorytm blokowania (1) Dla każdej danej dwie kolejki: Transakcji, które uzyskały dostęp do danej Transakcji oczekujących na dostęp do danej dana idt blokada x1 T1 W x2 R T2 x3 dana idt blokada kolejka x1 T2 R 1 T3 W 2 x2 T4 dr Paweł Drozda

Algorytm blokowania (2) Potrzebne funkcje Założenie blokady do odczytu – gdy dana niezablokowana lub zablokowana do odczytu– założenie blokady, w przeciwnym razie transakcja czeka w kolejce Założenie blokady do zapisu – gdy dana jest niezablokowana – założenie blokady, w przeciwnym razie do kolejki Zdjęcie blokady dr Paweł Drozda

Algorytm blokowania - przykład Rlock(T1,Y) Rlock(T2,X) r(Y) r(X) unlock(Y) unlock(X) Wlock(T1,X) Wlock(T2,Y) X=X+Y Y=X+Y w(X) w(Y) X=20, Y=30 Współbieżnie: X=50, Y=50 Sekwencyjnie T1T2 X=50, Y=80 Sekwencyjnie T2T1 X=70, Y=50 dr Paweł Drozda

Blokowanie dwufazowe Algorytm podstawowy: Inne warianty: r(x) poprzedzone przez Rlock(T,x) lub Wlock(T,x) w(x) poprzedzone przez Wlock(T,x) unlock – po wszystkich operacjach r(x), w(x) Inne warianty: statyczny – blokady założone przed rozpoczęciem transakcji ścisły – blokady do zapisu zdjęte po wykonaniu całej transakcji restryktywny/sztywny – blokady zdjęte po operacji rollback lub commit Zapewnia szeregowalość dr Paweł Drozda

Blokowanie dwufazowe - przykład T1 T2 Rlock(T1,Y) r(Y) Wlock(T1,X) Rlock(T2,X) r(X) wait X=X+Y w(X) unlock(Y) unlock(X) Wlock(T2,Y) r(Y) Y=X+Y w(Y) unlock(X) unlock(Y) dr Paweł Drozda

Zakleszczenie transakcji Gdy dwie transakcje czekają Dwa podejścia do rozwiązania: wykrywanie i rozwiązanie zakleszczenia zapobieganie wystąpieniu zakleszczenia T1 T2 Rlock(T1,Y) r(Y) Rlock(T2,X) r(X) Wlock(T2,Y) Wlock(T1,X) wait … dr Paweł Drozda

Zapobieganie zakleszczeniom (1) Wykorzystanie znaczników czasowych nadawanych w momencie inicjacji transakcji wait-die – gdy Ti jest starsza od Tj to Ti czeka na zwolnienie blokady, gdy młodsza – wycofana i zrestartowana z tym samym znacznikiem czasowym wound-wait – gdy Ti jest starsza od Tj to Tj będzie wycofana i zrestartowana z tym samym znacznikiem czasowym. W przeciwnym przypadku Ti czeka Wada – czasem wycofują transakcje, które niekoniecznie się zakleszczą dr Paweł Drozda

Zapobieganie zakleszczeniom (2) no waiting – gdy dostęp zablokowany Ti wycofana i zrestartowana po pewnym czasie cautious waiting – gdy Ti próbuje uzyskać dostęp do zablokowanej danej X przez Tj i gdy Tj nie czeka na odblokowanie innej danej to Ti czeka na X. W przeciwnym przypadku Ti wycofana i zrestartowana dr Paweł Drozda

Metody wykrywania i rozwiązywania zakleszczeń Za pomocą grafu: transakcje jako węzły oczekiwanie transakcji Ti na daną zablokowaną przez Tj reprezentowane przez krawędź skierowaną cykl w grafie oznacza zakleszczenie eliminacja – wycofanie jednej z transakcji cyklu graf sprawdzany jeśli transakcja czeka zbyt długo – przekroczyła ustalony limit czasu co określony czas dr Paweł Drozda