Plan wykładu. Przykład. Wprowadzenie BAZY DANYCH. Transakcje Hurtownie danych



Podobne dokumenty
Bazy danych. Plan wykładu. Czynniki wpływające na fizyczny projekt bazy danych. bazy danych

Zarządzanie transakcjami

1 Przetwarzanie transakcyjne Cechy transakcji Rozpoczęcie i zakończenie Punkty bezpieczeństwa... 3

Bazy danych. Andrzej Łachwa, UJ, /15

Wykłady z przedmiotu Podstawy baz danych Transakcje dr hab. prof. nadzw. Tadeusz Antczak. Transakcje

przykłady problemów; realizacja dostaw części od producenta do klienta:

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Przetwarzanie transakcyjne

Transakcje. (c) Instytut Informatyki Politechniki Poznańskiej

Wprowadzenie (1) Przetwarzanie transakcyjne. Wprowadzenie (2) Problemy przygotowania aplikacji

Bazy danych w sterowaniu

070 TRANSAKCJE. Prof. dr hab. Marek Wisła

Wykłady z przedmiotu Podstawy baz danych Transakcje dr hab. prof. UŁ. Tadeusz Antczak. Transakcje

BAZY DANYCH. Transakcje. opracowanie: Michał Lech

Bazy danych wykład dziewiaty Transakcje. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Bazy danych 2. Wykład 6 Transakcje

Rozproszone i obiektowe systemy baz danych

Rozdział 1 Wprowadzenie do baz danych. (c) Instytut Informatyki Politechniki Poznańskiej 1

Właściwości transakcji

Przechowywanie danych

I. Techniki wielowersyjne sterowania współbieżnością

Pojęcie bazy danych. Funkcje i możliwości.

PODSTAWY BAZ DANYCH Wykład 9

Algorytmy zarządzania współbieżnym wykonywaniem transakcji część I

Bazy danych. Dr inż. Paweł Kasprowski

Wykłady z przedmiotu Podstawy baz danych Transakcje dr hab. prof. nadzw. Tadeusz Antczak. Transakcje

Algorytmy zarządzania współbieżnym wykonywaniem transakcji część II

Bazy danych 6a. Transakcje. P. F. Góra

Plan ćwiczenia. Rozdział 17. zarządzania współbieżnością. Dostęp współbieżny a dostęp spójny. Spójność bazy danych

Tadeusz Pankowski

Informatyka (7-8) dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska

PODSTAWY BAZ DANYCH. 11. Transakcje. 2009/ Notatki do wykładu "Podstawy baz danych"

:11 BD_1_W9

Podstawy teoretyczne baz danych. Recovery Transakcyjne odtwarzanie bazy danych po awarii

Bazy danych 9. SQL Klucze obce Transakcje

Ustawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia).

TECHNIKI STEROWANIA WSPÓŁBIEŻNOŚCIĄ. I. Wybrane problemy współbieżności. Utracona aktualizacja (lost update)

Wielowersyjne metody synchronizacji transakcji

Inżynieria oprogramowania. Faza implmentacji. wykład 7

Programowanie współbieżne Wykład 7. Iwona Kochaoska

Tadeusz Pankowski

Cel odtwarzania. Transakcyjne odtwarzanie bazy danych. Modele awarii. Efektywność odtwarzania MTTF

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach

Plan ćwiczenia. Rozdział 17 Zarządzanie współbieżnością. Dostęp współbieżny a dostęp spójny. Spójność bazy danych

Transakcje Wykład z bazy danych dla studen

Kopie bezpieczeństwa NAPRAWA BAZ DANYCH

Systemy operacyjne. wykład 11- Zakleszczenia. dr Marcin Ziółkowski. Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie

Porządek dostępu do zasobu: procesory obszary pamięci cykle procesora pliki urządzenia we/wy

Wrocławska Wyższa Szkoła Informatyki Stosowanej. Bazy danych. Dr hab. inż. Krzysztof Pieczarka.

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe

Czym jest baza danych?

Recovery Transakcyjne odtwarzanie bazy danych po awarii

UPDATE konta /* dodaj do konta B kwotę N */ UPDATE konta /* odejmij kwotę N z konta A */ WHERE id_konta = B; SET stan = stan + N

Transakcja jest sekwencją logicznie powiązanych operacji na bazie danych, która przeprowadza bazę danych z jednego stanu spójnego w inny stan spójny

Bazy danych Transakcje

Transakcje. Bazy danych 155

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

Systemy Rozproszone. Zagadnienia do egzaminu.

Izolacje transakcji oraz anomalie. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu):

Tadeusz Pankowski

Dazy Banych. Michał Rusnarczyk

Ćwiczenie 9 współbieŝność

Bazy danych. Zasady konstrukcji baz danych

Adam Cankudis IFP UAM

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

SQL Server. Odtwarzanie baz danych.

Transakcje jednocześnie ACID

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

4. Procesy pojęcia podstawowe

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Dokument: Zmiana stawek VAT Informacja dla dealerów

12. Które z harmonogramów transakcji są szeregowalne? a) (a1) (a2) (a3) (a4) b) (b1) (b2) (b3) (b4) c) (c1) (c2) (c3) (c4) d) (d1) (d2) (d3) (d4)

Metody dostępu do danych

Bazy danych 2. Wykład 1

Rozdział 17. Zarządzanie współbieżnością zadania

Lock Manager Deadlock Źródła Jak starczy czasu. Dreadlocks. Konrad Błachnio MIMUW 19 maja 2010

Mechanizm transakcji w relacyjnych i obiektowych bazach danych

4. Procesy pojęcia podstawowe

OLTP Przetwarzanie Transakcyjne

K1A_W11, K1A_W18. Egzamin. wykonanie ćwiczenia lab., sprawdzian po zakończeniu ćwiczeń, egzamin, K1A_W11, K1A_W18 KARTA PRZEDMIOTU

Oracle PL/SQL. Paweł Rajba.

Zakleszczenie. Problem i przeciwdziałanie. Systemy operacyjne Wykład 8 1

2 INSTALACJA OPROGRAMOWANIA. 3 3 GŁÓWNE OKNO PROGRAMU 3 4 MODUŁ OBSŁUGI ARCHIWUM 7

QualitySpy moduł persystencji

Elektroniczny system wspomagający proces rekrutacji do żłóbków w m. Pruszków

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Administracja i programowanie pod Microsoft SQL Server 2000

Algorytmy Równoległe i Rozproszone Część VI - Systemy rozproszone, podstawowe pojęcia

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM,

Przetwarzanie potokowe pipelining

Wykład 8. SQL praca z tabelami 5

System plików warstwa logiczna

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Stan globalny. Krzysztof Banaś Systemy rozproszone 1

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.

Transkrypt:

Plan wykładu 2 BAZY DANYCH Wykład 5: Transakcje. Hurtownie danych. Transakcje Hurtownie danych Małgorzata Krętowska Wydział Informatyki Politechnika Białostocka Wprowadzenie Przykład Zmiany zachodzące w świecie rzeczywistym są zakodowane w aplikacji obsługującej bazę danych w postaci ciągu instrukcji, które powinny przekształcać bazę danych z jednego stanu spójnego w inny Problemy, na które może natknąć się aplikacja: Awarie systemu Współbieżny dostęp do danych Rozproszenie danych Aplikacja implementująca przelew kwoty N z konta A na konto B 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 2 współbieżny dostęp do danych Operacje współbieżnie wykonywanych transakcji mogą naruszać spójność bazy lub generować niepoprawne wyniki Źródło: http://wazniak.mimuw.edu.pl/index.php?title=bazy_danych

Przykład cd Transakcje 6 Problem 3 - utrata danych w wyniku awarii Wyniki zakończonych aplikacji, buforowane w pamięci operacyjnej, mogą zostać utracone w wyniku awarii systemu Rozwiązanie tych problemów: transakcje Transakcja jest wykonywanym programem, który tworzy logiczną jednostkę przetwarzania w bazie danych. Transakcja składa się z jednej lub wielu operacji dostępu do bazy danych. Jednym ze sposobów określania zakresu transakcji jest wyróżnienie jawnych instrukcji begin i end transaction. Jeżeli operacje bazodanowe należące do transakcji nie aktualizują bazy danych, a tylko pobierają dane, o transakcji mówimy, że jest tylko do odczytu. 7 Pożądane właściwości transakcji (ACID) atomowość (atomicity) - cała transakcja powinna zostać przeprowadzona, albo żaden z jej elementów nie zostanie uwzględniony spójność (consistency) - np. miejsce w danym rejsie lotniczym nie może być przydzielone dwóm różnym pasażerom izolacja (isolation) - brak wpływu transakcji na siebie przy jednoczesnym ich przetwarzaniu trwałość (durability) - po zakończeniu transakcji jej wynik nie może zostać utracony Przykład Transakcja przelewu kwoty N z konta A na konto B

Przykład cd. Transakcja logiczna a transakcja fizyczna Problem utraconej aktualizacji Problem aktualizacji tymczasowej 11 T1 T2 12 T1 T2 X:=X-N; Zapisz_element (X); Odczytaj_element (Y); X:=X+M; X:=X-N; Zapisz_element (X); Zapisz_element (Y); X:=X+M; Zapisz_element(X); Y:=Y+N; Zapisz_element (Y); Zapisz_element(X); Transakcja T1 kończy się niepowodzeniem i musi zmienić wartość X z powrotem do jej oryginalnego stanu; w tym czasie T2 odczytuje jej tymczasową niepoprawną wartość

Problem błędnego podsumowania Odczyt niepowtarzalny 13 14 T1 X:=X-N; Zapisz_element (X); T2 Suma:=0; Odczytaj_element(A); suma:=suma+a;... Występuje wówczas, gdy transakcja T1 odczytuje element dwukrotnie, czy czym element ten zostaje zmieniony przez inną transakcję T2 między tymi dwoma odczytami Przykład: T1: R(X), R(X), W(X) Odczytaj_element (Y); Y:=Y+N; Zapisz_element (Y); suma:=suma+x; Odczytaj_element (Y); suma:=suma+y; T2: R(X), W(X) Czas -------> Gdzie: R(X) odczytaj_ element X, W(X) zapisz_element X 15 Operacje związane z transakcjami Diagram przejść stanów związanych w wykonaniem transakcji 16 Transakcja jest niepodzielną jednostką działań, które muszą być wykonane w całości lub w ogóle. Do celów odtwarzania system musi śledzić następujące operacje: ROZPOCZNIJ_TRANSAKCJĘ ODCZYTAJ lub ZAPISZ operacje odczytu i zapisu przeprowadzane na elementach bazy danych Rozpocznij transakcję Odczytaj zapisz Aktywna Zakończ transakcję Zatwierdzona częściowo zatwierdź Zatwierdzona ZAKOŃCZ_TRANSAKCJĘ należy zweryfikować czy zmiany wprowadzone przez transakcję mogą zostać zatwierdzone, czy transakcja ma być anulowana Anuluj Anuluj ZATWIERDŹ_TRANSAKCJĘ (COMMIT) oznaczenie udanego zakończenia transakcji awaria Zakończona WYCOFAJ (ROLLBACK) nieudane zakończenie transakcji

17 Dziennik systemowy (ang. log) W celu umożliwienia odtwarzania po awariach wpływających na transakcje system przechowuje dziennik, w którym śledzi wszystkie operacje związane z transakcjami, mające wpływ na wartości elementów bazy danych. Dziennik jest przechowywany na dysku i jest okresowo archiwizowany na taśmie, w celu zabezpieczenia go przed awariami. Rodzaje wpisów do dziennika (rekordy dziennika): [rozpocznij_transakcję,t] [zapisz_element, T,X, stara wartość, nowa wartość] [odczytaj_element, T,X] [zatwierdź, T] [anuluj,t] 18 Punkt zatwierdzenia transakcji Transakcja osiąga swój punkt zatwierdzenia, gdy wszystkie jej operacje zostaną z powodzeniem wykonane oraz ich wyniki zostaną zarejestrowane w dzienniku. Za punktem zatwierdzenia mówi się, ze transakcja została zatwierdzona, a jej działania za trwale zapisane w bazie Kolejną czynnością jest zapisanie do dziennika rekordu zatwierdzenia. Jeżeli nastąpi awaria wszystkie transakcje które rozpoczęły swoje działanie, a dla których nie ma wpisu w dzienniku należy wycofać. Harmonogramy (plany) transakcji Przykład 19 Gdy transakcje są wykonywane współbieżnie w technice przeplotu, kolejność wykonywania operacji związanych z różnymi transakcjami określa się mianem harmonogramu (historii, planu). Harmonogram S zbioru n transakcji T1, T2,.., Tn jest uporządkowaniem operacji transakcji podlegającym ograniczeniu, które określa, że dla każdej transakcji Ti należącej do harmonogramu S, operacje tej transakcji w S muszą występować w tej samej kolejności, w jakiej występują w Ti. 20 T1 X:=X-N; Zapisz_element (X); Odczytaj_element (Y); Y:=Y+N; Zapisz_element (Y); T2 X:=X+M; Zapisz_element(X); Sa: r1(x); r2(x); w1(x); r1(y); w2(x); w1(y) a: anulowanie; c zatwierdzanie transakcji

21 Możliwości odtwarzania harmonogramów Harmonogramy odtwarzalne dla których w momencie zatwierdzenia transakcji T już nigdy nie było konieczne jej wycofanie (lub inaczej: harmonogram, który umożliwia wycofanie każdej transakcji) Harmonogram S jest odtwarzalny, jeżeli żadna transakcja T w harmonogramie S nie jest zatwierdzona do momentu, aż wszystkie transakcje T, które zapisały element odczytywany przez transakcję T, zostaną zatwierdzone. S: r1(x), w1(x), r2(x), w2(x), c1, c2 (+) S: r1(x), w1(x), r2(x), w2(x), c2, c1 (-) Harmonogramy nieodtwarzalne nie spełniają powyższego wymogu, stąd nie powinno się pozwalać na ich występowanie (Przykłady: problem aktualizacji tymczasowej i problem utraconej aktualizacji) 22 Szeregowalność harmonogramów Pojęcie szeregowalności harmonogramów jest używane w celu identyfikowania, które harmonogramy są poprawne w przypadku, gdy wykonanie transakcji dopuszcza przeplot ich operacji. Harmonogram szeregowy harmonogram ustawiający wykonywanie transakcji w ciąg: najpierw akcje jednej transakcji, następnie akcje drugiej transakcji itd. Zakładając, że transakcje są niezależne, można założyć, że każdy harmonogram szeregowy jest poprawny Dwa harmonogramy są równoważne, jeżeli efekt realizacji obu harmonogramów jest taki sam dla każdego stanu bazy danych, tzn W1: Każda transakcja w obu planach odczytuje i zapisuje te same wartości W2: Po realizacji każdego z planów otrzymujemy ten sam stan bazy danych Przykład Plan szeregowalny 23 Zakładamy wartości początkowe x=90, y=90, n=3, m=2 Sa (szeregowy), wynik: x=89, y=93): T1:r(x), x:=x-n; w(x), r(y), y=y+n, w(y),c T2: r(x), x=x+m, w(x),c Sb (szeregowy, wynik: x=89, y=93): T1: r(x), x:=x-n; w(x), r(y), y=y+n, w(y),c T2: r(x), x=x+m, w(x),c Sc (nieszeregowy, wynik: x=92, y=93) T1:r(x), x:=x-n; w(x), r(y), y=y+n, w(y),c T2: r(x), x=x+m, w(x),c Sd (nieszeregowy, wynik: x=89, y=93) T1:r(x), x:=x-n,w(x), r(y), y=y+n, w(y),c T2: r(x), x=x+m,w(x),c Plan (harmonogram) szeregowalny jest to plan, który jest równoważny pewnemu planowi szeregowemu (a przez to jest poprawny). Dzięki własnościom W1 i W2 plan szeregowalny zapewnia uzyskanie własności izolacji (W1) i spójności (W2). Plan szeregowalny nie daje gwarancji, że po wycofaniu transakcji nie trzeba będzie wycofywać akcji innych transakcji, co może być niewykonalne, gdy jedna z transakcji zostanie już zatwierdzona. Brak gwarancji spełnienia własności atomowości i trwałości.

25 Blokady Blokady (zamki) podstawowy mechanizm zapobiegający konfliktom przy współbieżnie wykonywanych transakcjach Rodzaje blokad: Współdzielona, typu S (ang. shared lock) daje transakcji współdzielony dostęp do zasobu (kilka transakcji może jednocześnie odczytywać wiersze z tej samej tabeli). Jeśli transakcja zakłada współdzieloną blokadę, inne transakcje też mogą założyć współdzieloną blokadę, ale nie mogą założyć blokady drugiego rodzaju, tzn. wyłącznej Wyłączna, typu X (ang. exclusive lock) daje transakcji wyłączne prawo do zmian obiektu. Tylko jedna transakcja może mieć założoną wyłączną blokadę na obiekcie i w tym czasie nie może być na obiekcie założonej żadnej innej blokady, nawet współdzielonej. Istnieje metoda zakładania blokad gwarantująca powstanie i realizację planów wyłącznie szeregowalnych i odtwarzalnych protokół ścisłego blokowania dwufazowego. 26 Protokół ścisłego blokowania dwufazowego (Strict 2PL) Każda transakcja musi uzyskać blokadę S na obiekcie zanim odczyta ten obiekt oraz blokadę X na obiekcie przed zapisaniem go. Jeśli transakcja trzyma blokadę X na obiekcie, żadna inna transakcja nie ma prawa założyć żadnej blokady na tym obiekcie Jeśli transakcja trzyma blokadę S na obiekcie, żadna inna transakcja nie ma prawa założyć blokady X na tym obiekcie Gdy transakcja nie może założyć blokady na obiekcie, może ustawić się w kolejce oczekujących transakcji stowarzyszonej z tym obiektem. Wszystkie blokady trzymane przez transakcję są zwalniane jednocześnie, w chwili, gdy transakcja kończy się 27 Protokół ścisłego blokowania dwufazowego (Strict 2PL) Można w nim wyróżnić dwie fazy: Transakcja zakłada blokady i dokonuje wymaganych odczytów i zapisów na obiektach, na których założyła blokadę Transakcja wykonuje COMMIT/ROLLBACK jednocześnie zwalniając wszystkie blokady Protokół Strict 2PL nie dopuszcza do anomalii utraconej aktualizacji, aktualizacji tymczasowej, błędnego podsumowania oraz niepowtarzalnego odczytu: 28 Protokół blokowania dwufazowego 2PL Zamiast punktu w protokole Strict 2PL: Wszystkie blokady trzymane przez transakcję są zwalniane jednocześnie, w chwili, gdy transakcja kończy się Występuje sformułowanie: Transakcja nie może założyć żadnej nowej blokady po zwolnieniu jakiejkolwiek blokady. Protokół 2PL prowadzi do planów szeregowalnych, ale nie gwarantuje planów odtwarzalnych. Przykład: T1: R(X) W(X) a T2: R(X) W(X) c

Zakleszczenia (deadlocks) Zakleszczenia 29 Zjawisko zakleszczenia występuje wówczas, kiedy dwie lub więcej transakcji wzajemnie blokują sobie potrzebne do kontynuowania swojego działania obiekty Zakleszczenie- jest to cykl transakcji oczekujących wzajemnie na zwolnienie blokady przez inną transakcję w cyklu. Sposoby radzenia sobie z zakleszczeniami: Zapobieganie Zapobieganie Wykrywania Ustalanie limitu oczekiwania na blokadę (metoda timeout) ustalenie priorytetu między transakcjami. Nie dopuszcza się aby transakcja z wyższym priorytetem czekała na transakcje z niższym priorytetem W przypadku zakleszczenia transakcja z niższym priorytetem zostaje wycofana przez system Wykrywanie zakleszczeń polega na analizie, która transakcja oczekuje na zwolnienie blokady przez która transakcję i sprawdzaniu, czy występuje cykl Utwórz graf oczekiwań na zwolnienie blokady (węzły transakcje, krawędź Ti do Tj jeśli transakcja Ti oczekuje na zwolnienie blokady przez Tj) Co jakiś czas sprawdzaj, czy w grafie jest cykl. Jeśli jest wycofaj jedną z transakcji w cyklu Przykład: T1:S(A), R(A) S(B) T2: X(B), W(B) T3: T4: S(C), R(C) X(C) Graf oczekiwań na zwolnienie blokady: X(A) X(B)