Przetwarzanie transakcyjne. Wprowadzenie (1) Baza danych – jest abstrakcyjnym odzwierciedleniem wybranego fragmentu rzeczywistości (ang. miniworld) mini.

Slides:



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

Bazy danych II Transakcje Piotr Górczyński 25/08/2001.
ANALIZA SIECIOWA PRZEDSIĘWZIĘĆ konstrukcja harmonogramu
Wprowadzenie w problematykę związaną z twierdzeniem Gödla
Przetwarzanie transakcyjne
Związki w UML.
Podstawowe pojęcia programowania współbieżnego
Grafy spełniające nierówność Γ(G) < IR(G)
Grażyna Mirkowska PJWSTK 15 listopad 2000
Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
Formalizacja i uwiarygodnianie Iteracyjny proces syntezy modeli
Badania operacyjne. Wykład 1
Badania operacyjne. Wykład 2
Zrównoleglanie programu sekwencyjnego
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)
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.
ODE Triggery. Wstęp n Triggery są trójką zdarzenie-warunek-akcja (event-condition- action). n Zdarzenia mogą być proste lub złożone, co zostanie omówione.
Wykład 11 Prowadzący: dr Paweł Drozda
Wykład 10 Prowadzący: dr Paweł Drozda
Wykład 3 Wojciech Pieprzyca
Zarządzanie transakcjami
Projektowanie i programowanie obiektowe II - Wykład IV
Wstęp do interpretacji algorytmów
Problem rozbieżności czasów jednym z wielu problemów pojawiających się w systemach rozproszonych jest rozbieżność wartości zegarów na poszczególnych węzłach-maszynach.
Modele baz danych - spojrzenie na poziom fizyczny
Zarządzanie transakcjami Wykład S. Kozielski. Zarządzanie transakcjami Transakcja – jedna lub więcej operacji na bazie danych stanowiących pewną logiczną
Projektowanie struktury logicznej (schematu) relacyjnych baz danych
Teoria relacyjnych 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
Przepływy w sieciach. Twierdzenie minimaksowe.
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
O relacjach i algorytmach
Podstawy układów logicznych
Pliki Pojęcie i rodzaje plików Definicja typu plikowego Operacje wykonywane na plikach elementowych.
Elementy Rachunku Prawdopodobieństwa i Statystyki
Elżbieta Fiedziukiewicz
Model relacyjny.
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
dr Łukasz Murowaniecki T-109
FUNKCJE Opracował: Karol Kara.
Systemy rozproszone  Rozdzielenie obliczeń między wiele fizycznych procesorów.  Systemy luźno powiązane – każdy procesor ma lokalną pamięć; procesory.
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ą.
Algorytmy i Struktury Danych
Diagram aktywności (czynności)
System plików.
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
Drogi i cykle Eulera w grafach nieskierowanych
OPCJE Ograniczenia na cenę opcji
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”
Wstęp do interpretacji algorytmów
Wstęp do programowania Wykład 7
Zarządzanie projektami
Algorytmy. Co to jest algorytm? Przepis prowadzący do rozwiązania zadania.
Temat: Tworzenie bazy danych
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.
Teoria sterowania Wykład /2016
Projekt modułu BANK INTERNETOWY Moduł funkcji banku
Zarządzanie projektami
Technologie Informacyjne Bazy danych
Zarządzanie projektami
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

Przetwarzanie transakcyjne

Wprowadzenie (1) Baza danych – jest abstrakcyjnym odzwierciedleniem wybranego fragmentu rzeczywistości (ang. miniworld) mini world DB DB’ Świat rzeczywisty Świat abstrakcyjny Baza danych jest spójna jeżeli jej stan odpowiada stanowi świata rzeczywistego Zmiana mini world

Wprowadzenie (2) Zmiany zachodzące w świecie rzeczywistym muszą być zakodowane w postaci programu, który będzie transformował bazę danych z jednego stanu spójnego do innego stanu spójnego Niebezpieczeństwa związane z realizacją programu transformującego bazę danych – Awaryjność środowiska sprzętowo-programowego: – Współbieżny dostęp do danych – Rozproszenie baz danych

Problemy z aplikacją (1) Przykład: Napisać aplikację przelewu kwoty N z konta A na konto B Problem 1awaria systemu Problem 1 – awaria systemu Po pobraniu kwoty N z konta A, i zapisaniu tej aktualizacji do bazy danych, wystąpiła awaria systemu. W wyniku awarii systemu wykonana została jedynie część operacji składających się na daną aplikację Problem 2współbieżny dostęp do danych Problem 2 – współbieżny dostęp do danych Operacje współbieżnie wykonywanych transakcji mogą naruszać spójność bazy danych, lub generować niepoprawne wyniki

Problemy z aplikacją (2) Problem 3utrata danych w wyniku awarii Problem 3 - utrata danych w wyniku awarii Wyniki zakończonych aplikacji, buforowane w pamięci operacyjnej, mogą zostać utracone w wyniku awarii systemu transakcji Rozwiązaniem problemu awaryjności, rozproszenia i wielodostępności środowiska systemu bazy danych – koncepcja transakcji

Transakcja (1) Transakcja Transakcja jest sekwencją logicznie powiązanych operacji na bazie danych oraz obiektach rzeczywistych, która przeprowadza bazę danych z jednego stanu spójnego w inny stan spójny. Typy operacji na bazie danych obejmują: odczyt i zapis danych oraz zakończenie i akceptację (zatwierdzenie), lub wycofanie transakcji

Transakcja (2) begin // odejmij kwotę N z konta A; update konta SET stan = stan - N where id_konta = A; // dodaj do konta B kwotę N; update konta SET stan = stan + N where id_konta = B; commit; Transakcja przelewu kwoty N z konta A na konto B:

Własności transakcji (1) Atomowość (A) Atomowość (A) Spójność (C) Spójność (C) A() C() I() D() A(tomicity) C(onsistency) I(solation) D(urability) Zbiór operacji wchodzących w skład transakcji jest niepodzielny: albo zostaną wykonane wszystkie operacje transakcji albo żadna. Dotyczy to również wszystkich operacji transakcji wykonywanych na obiektach rzeczywistych (tak zwane akcje rzeczywiste) – np. wypłata gotówki z bankomatu Transakcja przeprowadza bazę danych z jednego stanu spójnego do innego stanu spójnego. W trakcie wykonywania transakcji baza danych może być przejściowo niespójna. Transakcja nie może naruszać ograniczeń integralnościowych

Własności transakcji (2) Izolacja (I) Izolacja (I) Trwałość (D) Trwałość (D) Transakcje oddziaływują na siebie poprzez dane. Mimo współbieżnego wykonywania, transakcje widzą stan bazy danych tak, jak gdyby były wykonywane w sposób sekwencyjny Wyniki zatwierdzonych transakcji nie mogą zostać utracone w wyniku wystąpienia awarii systemu. Zatwierdzone dane w bazie danych, w przypadku awarii, muszą być odtwarzalne

Własności transakcji (3) Transakcja jest: Atomowa Atomowa: jeżeli pieniądze zostaną poprawnie przetransferowane z konta A do B Spójna Spójna: jeżeli kwota odjęta z konta A jest równa kwocie dodanej do konta B Izolowana Izolowana: jeżeli inne transakcje wykonywane współbieżnie, czytające i modyfikujące konta A i B, nie maja wpływu na transakcję Trwała Trwała: jeżeli po zakończeniu transakcji, baza danych trwale odzwierciedla nowe stany kont A i B

Diagram stanów transakcji Begin_transaction: początek transakcji. Read, Write: operacje odczytu i zapisu danych w bazie danych. End_transaction: koniec transakcji: Commit: zatwierdzenie (akceptacja) wyników transakcji. Rollback: wycofanie wyników transakcji

Zakończenie transakcji End_transaction: End_transaction: koniec transakcji oznacza, że wszystkie operacje odczytu i/lub zapisu transakcji zostały wykonane. W tym momencie, zachodzi konieczność podjęcia decyzji, czy zmiany wprowadzone przez transakcję mają być wprowadzone do bazy danych (zatwierdzenie transakcji) czy też mają być wycofane z bazy danych (wycofanie transakcji) Commit: Commit: zatwierdzenie (akceptacja transakcji) oznacza pomyślne zakończenie transakcji - zmiany wprowadzone przez transakcję mają być wprowadzone do bazy danych Rollback: Rollback: wycofanie transakcji oznacza niepoprawne zakończenie transakcji i konieczność wycofania z bazy danych wszystkich ewentualnych zmian wprowadzonych przez transakcję

Transakcja logiczna vs transakcja fizyczna Begin_transaction; UPDATE employee SET salary = 1.15 * salary WHERE work_period > 5; Read (A); Write (A);... Read (Z); Write (Z); COMMIT;Commit; Transakcja fizyczna Transakcja logiczna

Model transakcji (1) Transakcją Transakcją T i nazywamy uporządkowaną parę: RWC A gdzie: = { o j : 1 ≤ j ≤ n i }, oznacza zbiór operacji na bazie danych: { R - odczyt, W - zapis, C – zatwierdzenie transakcji, A - wycofanie} - jest relacją częściowego porządku na zbiorze T i Przyjmiemy następującą notację: r i (x) lub r i (x, wartość) w i (x) lub w i (x, wartość) c i lub a i

Model transakcji (2) G = (V, A) Każda transakcja może być reprezentowana przez graf skierowany: G = (V, A), gdzie: V V jest zbiorem węzłów odpowiadających operacjom transakcji T i A A jest zbiorem krawędzi reprezentujących porządek na zbiorze operacji Przykład:

Klasyfikacja transakcji Ze względu na porządek operacji: Ze względu na porządek operacji: Ze względu na zależność operacji: Ze względu na zależność operacji: Ze względu na typy operacji: Ze względu na typy operacji: transakcja sekwencyjna transakcja współbieżna transakcja zależna od danych transakcja niezależna od danych zapytania lub transakcja odczytu (read only) transakcja aktualizująca - transakcja (read/write)

Realizacje transakcji (1) Częściowo uporządkowaną sekwencją operacji należących do zbioru współbieżnie wykonywanych transakcji nazywamy realizacją (historią). Realizacja modeluje, formalnie, współbieżne wykonanie zbioru transakcji realizacją s Formalnie, realizacją s zbioru n transakcji T 1, T 2,..., T n nazywamy takie uporządkowanie operacji współbieżnie wykonywanych transakcji, w którym, dla każdej transakcji T i w realizacji s, porządek wykonania operacji transakcji T i jest taki sam jak porządek <T i

Realizacje transakcji (2) gdzie: 1. zbiór operacji wszystkich transakcji należących do zbioru  2. relacja częściowego porządku na zbiorze T r (  ), 3.Dla dowolnej pary operacji o i, o j  T r (  ), takich, że żądają one dostępu do tej samej danej i co najmniej jedna z nich jest operacją zapisu, zachodzi o i  r o j lub o j < r o i

Realizacje transakcji (3) Realizacja zawierająca tylko operacje zatwierdzonych transakcji nazywana jest zaakceptowaną projekcją (ang. committed projection) (Dalsze rozważania dotyczyć będą tyko realizacji spełniających powyższy warunek) Przykład: r: w 0 (x), w 0 (y), c 0, r 1 (x), r 2 (x), w 1 (x), r 1 (y), w 2 (x), c 2, w 1 (y), c 1, r f (x), r f (y), c f ;

Realizacje transakcji (4) Dowolną realizacje można przedstawić w postaci grafu skierowanego, nazywanego grafem realizacji, GR(s(  )) = (V, A). Węzły grafu odpowiadają operacjom ze zbioru T r (  ), natomiast krawędzie grafu reprezentują relację częściowego porządku < r Przykład:

Realizacje sekwencyjne i współbieżne sekwencyjna Mówimy, że dana realizacja jest sekwencyjna jeżeli, dla każdych dwóch transakcji, wszystkie operacje jednej z nich poprzedzają wszystkie operacje drugiej współbieżna W przeciwnym wypadku realizacja jest współbieżna

Stan i obraz bazy danych Stan bazy danych Stan bazy danych Obraz bazy danych Obraz bazy danych widziany przez transakcję T i zbiór wartości wszystkich danych w bazie danych zbiór wartości danych odczytywanych przez transakcję T i

Założenia odnośnie poprawności realizacji Założenie 1: Założenie 1: Założenie 2: Założenie 2: Każda realizacja współbieżna równoważna dowolnej realizacji sekwencyjnej tego samego zbioru transakcji jest również poprawna Każda realizacja sekwencyjna jest poprawna

Kryterium uszeregowalności Realizacja r zbioru transakcji jest poprawna, jeżeli jest ona obrazowo i stanowo równoważna jakiejkolwiek sekwencyjnej realizacji tego zbioru transakcji. realizacją uszeregowalną Realizację taką nazywamy realizacją uszeregowalną (SR)

Graf uszeregowalności (1) Grafem uszeregowalności Grafem uszeregowalności realizacji r(  ) nazywamy skierowany graf SG(r(  )) = (V, A), taki, w którym zbiór wierzchołków V odpowiada transakcjom ze zbioru , natomiast zbiór krawędzi jest zdefiniowany następująco: Jeżeli istnieje dana x, i operacje T i : r(x), T j : w(x)  T r (  ), takie, że Ti : r(x) czyta wartość danej x zapisanej przez operację Tj : w(x), to: 1.(T j, T i )  A 2.Jeżeli T j  T 0, T i  T f i istnieje operacja T k : w(x)  T r (  ), T k  T 0, to (T k, T j )  A lub (T i, T k )  A 3.Jeżeli T j  T 0, to (T 0, T j )  A

Graf uszeregowalności (2) 4.Jeżeli T j = T 0, T i  T f i istnieje operacja T k : w(x)  T r (  ), T k  T 0, to (T i, T k )  A; 5.Jeżeli T i = T f, i istnieje operacja Tk : w(x)  T r (  ), to (T k, T j )  A Dana realizacja r(  ) jest uszeregowalna wtedy i tylko wtedy, gdy można skonstruować dla niej acykliczny skierowany graf uszeregowlaności SG(r(  ))

Uszeregowalność realizacji (1) Przykład: Dane (początkowe wartości): a = 50; b = 50 Transakcja T1: sumuje konta a i b Transakcja T2: przelewa 30 z konta a na konto b Dana realizacja postaci: Czy dana realizacja jest poprawna? s:...r2(a, 50) w2(a, 20) r1(a,20) r1(b, 50) r2(b,50) w2(b, 80) c1 c2

Uszeregowalność realizacji (2) Realizacja sekwencyjna transakcji T1 i T2: końcowy stan bazy danych: a = 20; b = 80 obraz bazy danych widziany przez T2: a = 50; b = 50 obraz bazy danych widziany przez T1: a = 50; b = 50 s1:...r1(a, 50) r1(b, 50) c1 r2(a, 50) w2(a, 20) r2(b, 50) w2(b, 80) c2.....

Uszeregowalność realizacji (3) końcowy stan bazy danych: a = 20; b = 80, obraz bazy danych widziany przez T1: a = 20; b = 80; obraz bazy danych widziany przez T2: a = 50; b = 50 Podana realizacja nie jest poprawna – nie jest równoważna żadnej z podanych realizacji sekwencyjnych !!! s2:... r2(a, 50) w2(a, 20) r2(b, 50) w2(b, 80) c2 r1(a, 20) r1(b, 80) c1

Konflikt (1) operacje konfliktowe Dwie operacje o i (x), o j (y) współbieżnej realizacji są konfliktowe, wtedy i tylko wtedy, gdy są spełnione następujące trzy warunki: 1. x = y Operacje na różnych danych nigdy nie są konfliktowe 3. Jedna z dwóch operacji o i lub o j musi być operacją zapisu 2. i ≠ j Operacje konfliktowe muszą należeć do różnych transakcji

Konflikt (2) (są w konflikcie) Dwie transakcje T i, T j są konfliktowe (są w konflikcie), jeżeli zawierają wzajemnie konfliktowe operacje Mówimy, że operacja o i (x) poprzedza operację o j (y) w realizacji r(  ), co zapisujemy jako o i (x)  o j (y), jeżeli operacje te są konfliktowe i o i (x) < r o j (y) Następujące pary operacji mogą znajdować się w konflikcie: – r i (x) i w j (x) – w i (x) i r j (x) – w i (x) i w j (x)

Równoważność konfliktowa Mówimy, że transakcja T i poprzedza transakcję T j w realizacji r(  ), co zapisujemy jako Ti  Tj, jeżeli zawierają odpowiednio operacje o i (x) i o j (x), między którymi zachodzi związek poprzedzania: o i (x)  o j (y) Mówimy, że dwie realizacje: r(  ) = (T r (  ), < r ) i r'(  ) = (T r (  ), < r' ) są konfliktowo równoważne, jeżeli dla każdej pary operacji o i (x) i o j (x) w realizacji r(  ), takich, że o i (x)  o j (y), zachodzi również o i (x)  o j (y) w realizacji r'(  )

Kryterium konfliktowej uszeregowalności Realizacja r(  ) zbioru transakcji  jest konfliktowo uszeregowalna wtedy i tylko wtedy, gdy jest ona konfliktowo równoważna dowolnej sekwencyjnej realizacji  nazywamy skierowany graf CSRG(r(  )) = (V, A), taki, w którym zbiór wierzchołków V odpowiada transakcjom ze zbioru, natomiast zbiór krawędzi A = {(T i, T j ) : T i  T j } Grafem konfliktowej-uszeregowalności realizacji r(  ) Kryterium konfliktowej uszeregowalności

Twierdzenie o konfliktowej uszeregowalności Realizacja r(  ) zbioru transakcji jest konfliktowo-uszeregowalna wtedy i tylko wtedy, gdy jej graf konfliktowej uszeregowalności CSRG(s(  )) jest acykliczny

Realizacje odtwarzalne (1) Czy własność uszeregowalności gwarantuje wolność od anomalii ? Przykład: H = r 1 [x] w 1 [x] r 1 [y] r 2 [x] w 1 [y] r 2 [y] c 2 r 1 [z] w 1 [z] c 1 Historia H jest uszeregowalna, ale nie jest wolna od anomalii (brudny odczyt). Po restarcie systemu transakcja T2 nie zostanie poprawnie odtworzona – transakcja T2 jest zaakceptowana, lecz obraz bazy danych widziany przez te transakcję jest niepoprawny

Definicje Potrzebna jest definicja nowych własności realizacji wykluczających anomalie będące wynikiem awarii systemu czyta Mówimy, że transakcja T i czyta daną x z transakcji T j w realizacji H jeżeli: czyta Mówimy, że transakcja T i czyta z transakcji T j w realizacji H, jeżeli T i czyta jakąś daną z transakcji T j w realizacji H w j [x] < r i [x] a j < r i [x] jeżeli istnieje operacja w k [x] taka, że w j [x] < w k [x] < r i [x], wtedy a k < r i [x]

Realizacje odtwarzalne (2) Realizacja H jest odtwarzalna (ang. recoverable) (RC) wówczas, jeżeli transakcja T i czyta z transakcji T j (i  j) w realizacji H i c i  H, to c j < H c i Realizacja H unika kaskadowych wycofań (ang. avoids cascading aborts) (ACA) wówczas, jeżeli transakcja T i czyta z transakcji T j (i  j), to c j < H r i [x] Realizacja H jest ścisła (ang. strict) (ST) wówczas, jeżeli w j [x] < H o i [x] (i  j), to zachodzi a j < H o i [x] lub c j < H o i [x], gdzie o i [x] jest jedną z operacji r i [x] lub w i [x]

Realizacje odtwarzalne (3) Przykład : T 1 = w 1 [x] w 1 [y] w 1 [z] c 1 T 2 = r 2 [u] w 2 [x] r 2 [y] w 2 [y] c 2 H 1 = w 1 [x] w 1 [y] r 2 [u] w 2 [x] r 2 [y] w 2 [y] c 2 w 1 [z] c 1 H 2 = w 1 [x] w 1 [y] r 2 [u] w 2 [x] r 2 [y] w 2 [y] w 1 [z] c 1 c 2 H 3 = w 1 [x] w 1 [y] r 2 [u] w 2 [x] w 1 [z] c 1 r 2 [y] w 2 [y] c 2 H 4 = w 1 [x] w 1 [y] r 2 [u] w 1 [z] c 1 w 2 [x] r 2 [y] w 2 [y] c 2

Zależności między zbiorami realizacji RC, ACA i ST Twierdzenie: ST  ACA  RC wszystkie realizacje RC ACA ST CSRH1H1 H2H2 H3H3 H4H4 realizacje sekwencyjne

Własność izolacji Izolacja = Uszeregowalność  ST

Zależności między zbiorami realizacji RC, ACA, ST oraz CSR i SR wszystkie realizacje RC ACA ST CSRH1H1 H2H2 H3H3 H4H4 realizacje sekwencyjne SR