Zarządzanie transakcjami Wykład S. Kozielski. Zarządzanie transakcjami Transakcja – jedna lub więcej operacji na bazie danych stanowiących pewną logiczną

Slides:



Advertisements
Podobne prezentacje
Bazy danych II Transakcje Piotr Górczyński 25/08/2001.
Advertisements

Przetwarzanie transakcyjne
Podstawowe pojęcia programowania współbieżnego
Architektura SAP R/3 Wybrane zagadnienia.
ALGORYTMY GRAFOWE.
Grażyna Mirkowska PJWSTK 15 listopad 2000
Metody Analizy Programów Wykład 02
Wykład 06 Metody Analizy Programów System Hoare
Algorytmy – zapis struktur programowania
Bazy danych i inżynieria oprogramowania
Systemy rozproszone W. Bartkiewicz Wykład 11. Transakcje
Semafory Autorzy : Michał Winciorek Łukasz Jackowicz.
Bazy danych 10. Z łą czenia i transakcje P. F. Góra semestr letni 2004/05.
Wycofywanie potwierdzonych transakcji
Standardy w zakresie systemów rozproszonych i baz danych
ZŁOŻONOŚĆ OBLICZENIOWA
Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie1 Systemy zarządzania bazami danych 8. Dzienniki i odtwarzanie.
Systemy zarządzania bazami 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)
Turbo pascal – instrukcje warunkowe, iteracyjne,…
Rozdział 13: Architektura systemu Oracle
Imperatywne modele obliczeń Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Imperatywne modele obliczeń Copyright, 2003 © Jerzy R. Nawrocki Teoretyczne podstawy.
Odwzorowania relacyjno-obiektowe Hibernate Tranzakcyjność i bezpieczeństwo danych.
Kurs Pascala – spis treści
Wykład 11 Prowadzący: dr Paweł Drozda
Wykład 10 Prowadzący: dr Paweł Drozda
Synchronizacja Rozdział 5.
Piotr Gawrysiak Bazy danych Wykład 5 Piotr Gawrysiak
Wykład 2 Wojciech Pieprzyca
Wykład 3 Wojciech Pieprzyca
Redukcja sieci Petriego
Zarządzanie transakcjami
SQL - język relacyjnych i obiektowo-relacyjnych baz danych
Zarządzanie transakcjami i odtwarzanie po awarii
Modele baz danych - spojrzenie na poziom fizyczny
Odwzorowania relacyjno-obiektowe Hibernate Tranzakcyjność i bezpieczeństwo danych.
Typy złożone, case, stałe. Typ zbiorowy type typ_zb = set of typ_podstawowy; Typem podstawowym może być tylko typ porządkowy. Typem podstawowym może być
Rozproszone bazy danych – 2 Zarządzanie transakcjami rozproszonymi
Zarządzanie transakcjami w SQL Server
Bazy Danych Wykład 1 S. Kozielski.
Bezpieczeństwo baz danych
Architektura systemów wykorzystujących bazy danych (systemów bazodanowych) Wykład S. Kozielski.
STORAGE Pamięci masowe.
TRANSAKCJE TYLKO ODCZYT TYLKO ZAPIS
Rozproszone bazy danych (cz.2)
Podstawy programowania II
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
Administracja serwerem bazy danych Oracle 11g Zarządzanie strukturą bazy danych Wykład nr 2 Michał Szkopiński.
Wyrażenia w Turbo Pascalu.
Definicja pliku tekstowego Operacje wykonywane na plikach tekstowych
Pliki Pojęcie i rodzaje plików Definicja typu plikowego Operacje wykonywane na plikach elementowych.
Pliki tekstowe – A. Jędryczkowski © 2007 Turbo Pascal umożliwia wykorzystanie w programach plików tekstowych. Pliki takie zawierają informację niezakodowaną
ASP BAZY. 2.2 S. Wolek Wst. do Inf. Połączenie z bazą danych przez ADO (ActiveX Data Object) do: - źródła ODBC - bazy z podanie nazwy sterownika ODBC.
Wybrane zagadnienia relacyjnych baz danych
dr Łukasz Murowaniecki T-109
Opracowanie ćwiczeń dotyczących zapewniania niezawodności baz danych na przykładzie Oracle Opiekun : dr inż. Agnieszka Landowska Dyplomant : Tomasz Krzyżanowski.
Wykład 7 Synchronizacja procesów i wątków
Ogólna struktura programu w TP
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 1: Wprowadzenie do baz danych.
Temat 4: Funkcje Systemu Zarządzania Bazą Danych (SZBD)
System Zarządzania Bazą Danych
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: ,
1 SBD, L.Banachowski Oprogramowanie strony serwera cz. 1 Powtórzenie wyk ł adu 6.
Transakcje Przedmiot: Bazy Danych Prowadzący: mgr inż. Leszek Siwik Autorzy: Grzegorz Szymczyk Damian Wieczorek.
Przetwarzanie transakcyjne. Wprowadzenie (1) Baza danych – jest abstrakcyjnym odzwierciedleniem wybranego fragmentu rzeczywistości (ang. miniworld) mini.
Algorytmy zarządzania współbieżnym wykonywaniem transakcji 1.
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

Zarządzanie transakcjami Wykład S. Kozielski

Zarządzanie transakcjami Transakcja – jedna lub więcej operacji na bazie danych stanowiących pewną logiczną całość. Przykład transakcji: rezerwacja miejsc R: begin znajdź wolne miejsce m; rezerwuj znalezione miejsce dla pasażera p end;

Przykład transakcji: przeniesienie kwoty K z konta X na konto Y T: begin read X; X:=X-K; write X; read Y; Y:=Y+K; write Y end;

Pożądane własności transakcji 1.Atomowość – transakcja musi zostać wykonana w całości, albo wszystkie efekty jej częściowego wykonania muszą zostać wycofane 2.Spójność – transakcja nie może naruszać więzów spójności 3.Izolacja – transakcja musi działać w pełnej izolacji od innych transakcji. 4.Trwałość – wynik zakończonej transakcji nie może zostać utracony.

Środowisko realizacji transakcji Serwer SZBD Aplikacja 1 BD Aplikacja 2Aplikacja 3 stacja 1 stacja 2stacja 3

Harmonogram transakcji Uszeregowanie (kolejność wykonania) wszystkich operacji elementarnych pewnego zbioru transakcji realizowanych współbieżnie

Problemy ze współbieżnym wykonaniem transakcji Współbieżny harmonogram dwóch transakcji rezerwacji miejsc R1 - rezerwacja biletu 1R2 - rezerwacja biletu 2 znajdź wolne miejsce m 0 rezerwuj miejsce m 0 dla pasażera p1 rezerwuj miejsce m 0 dla pasażera p2

(H1) Harmonogram szeregowy T1T2 read A A:=A-100 write A read B B:=B+100 write B read B A 0 =1000 A=900B:=B-200 B 0 =2000 B=1900write B C 0 =3000 C=3200read C C:=C =6000 =6000 write C

(H2) Harmonogram szeregowalny T1T2 read A read B A:=A-100 B:=B-200 write A write B read B read C B:=B+100 C:=C+200 write B write C

(H3) Harmonogram nieszeregowalny T1T2 read A A:=A-100 read B write A B:=B-200 read B write B B:=B+100 read C write B C:=C+200 write C

Mechanizm blokowania dostępu do danych LOCK UNLOCK

Efekty wykonania LOCK X 1) sukces (udało się nałożyć blokadę) – transakcja uzyskuje prawo dostępu do jednostki X, 2) niepowodzenie (nie udało się nałożyć blokady) – brak prawa dostępu: - zawieszenie transakcji żądającej, lub - kontynuacja transakcji żądającej bez prawa dostępu do X.

Ziarnistość (granulacja) blokowania : - wiersz (rekord), - cała tablica, - cała baza danych

T1T2 lock A read A A:=A-100 lock B write A read B unlock A B:=B-200 lock B Zawieszenie T1 write B unlock B read B lock C B:=B+100 read C write B C:=C+200 unlock B write C unlock C

U: begin V: begin lock Y; lock X; read Y;read X; unlock Y;unlock X; lock X;lock Y; read X; read Y; X:=X+Y; Y:=Y+X; write X; write Y; unlock X unlock Y end; end; X 0 =20, Y 0 =30 H1: U;V: X=50, Y=80 H2: V;U: X=70, Y=50

UV lock Y read Y unlock Y lock X read X unlock X lock Y read Y Y:=Y+X write Y unlock Y lock X read X X:=X+Y write X unlock X H3: X=50, Y=50

Dwufazowy protokół blokowania Transakcja wypełnia protokół dwufazowy, jeśli wszystkie operacje blokowania występują przed pierwszą operacją odblokowania. Twierdzenie Dowolny harmonogram transakcji dwufazowych jest harmonogramem szeregowalnym.

UV lock Y read Y lock X unlock Y lock X Zawieszenie transakcji V read X X:=X+Y write X unlock X read X lock Y unlock X read Y Y:=Y+X write Y unlock Y H4 H1

Inny model blokowania RLOCK (read-lock) – blokowanie do odczytu (blokada współdzielona - shared), WLOCK (write-lock) – blokowanie do zapisu (blokada wyłączna - exclusive). UNLOCK

Wyróżnianie transakcji w programach 1) Domyślne każda instrukcja SQL jest transakcją, 2) Jawne: [BEGIN TRANSACTION]- początek, COMMIT [TRANSACTION] - koniec – zatwierdzenie transakcji, ROLLBACK [TRANSACTION]- koniec – wycofanie transakcji.

Prowadzenie dziennika transakcji Serwer SZBD Menedżer Transakcji Aplikacja 1 BD Aplikacja 2Aplikacja 3 stacja 1 stacja 2stacja 3 Log dziennik transakcji

T:begin begin transaction; find X; if not found then rollback else begin lock X; get X; X:=X-K; write X; find Y; if not found then rollback else begin lock Y; get Y; Y:=Y+K; write Y; commit end end;

Model z bezpośrednim zapisem do bazy danych

Stan dziennika po wycofaniu transakcji

Stan dziennika po awarii

Model z opóźnionym zapisem do bazy danych

Punkty kontrolne (CHECKPOINT) Wykonanie przerwania związanego z punktem kontrolnym: – dokończenie aktualnych operacji na bazie danych i/lub logu – przejście do obsługi przerwania Obsługa przerwania (obsługa punktu kontrolnego): – zapis zawartości buforów na dysk (do bazy danych) – wpis do dziennika transakcji (logu) rekordu

Punkty kontrolne - przykład Zawartość logu: awaria Transakcje zakończone (bezpieczne): T2 Transakcje wymagające powtórzenia: T1, T4 (REDO T1, T4) Transakcje wymagające wycofania: T3, T5 (UNDO T3, T5)

Algorytm odtwarzania spójnego stanu b. d. po awarii 1)Wszystkie transakcje wypełnione przed ostatnim punktem kontrolnym uznawane są za zakończone 2)Wszystkie transakcje wypełnione (COMMIT) pomiędzy ostatnim punktem kontrolnym a awarią są powtarzane (REDO) 3)Wszystkie transakcje wykonywane do momentu awarii (brak COMMIT) są wycofywane (UNDO – ROLLBACK)

Wykorzystanie dziennika do ochrony bazy danych - podsumowanie 1) Wycofanie transakcji z poziomu programu (aplikacji), (niedostępność danych,...) 2) Wycofanie transakcji z poziomu SZBD, (zakleszczenie transakcji, zawieszenie transakcji,...) 3) Odtworzenie spójnego stanu b.d. po awarii i upadku systemu 4) Odtworzenie b.d. i przywrócenie jej spójnego stanu po zniszczeniu dysku z bazą danych (dziennik ocalał)

BD Log BACKUP

BD Log BACKUP RESTORE BD

Odtworzenie spójnego stanu b.d. po awarii dysku BD Log BACKUP RESTORE ROLLFORWARD BD

Mechanizmy blokad w SQL-u – poziomy izolacji Generalna zasada: - zapis (modyfikacja) – wiersz (rekord) blokowany jest na wyłączność do końca transakcji, - odczyt – wybór rodzaju blokady i zakres utrzymywania zależy od poziomu izolacji. Poziom izolacji może ustalać programista: SET TRANSACTION ISOLATION LEVEL

Poziomy izolacji Poziom izolacjiEfekt niepożądany READ UNCOMMITTED brudny odczyt READ COMMITTED niepowtarzalny odczyt REPEATABLE READ fantom SERIALIZABLE