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

Wielkość: px
Rozpocząć pokaz od strony:

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

Transkrypt

1 TECHNIKI STEROWANIA WSPÓŁBIEŻNOŚCIĄ I. Wybrane problemy współbieżności Utracona aktualizacja (lost update) Przykład: Mąż wybiera 300 zł (ze wspólnego z żoną konta) w bankomacie A, w tym samym czasie żona chce wybrad 100 zł w bankomacie B. Stan konta przed rozpoczęciem transakcji wynosi 2000zł. T i, bankomat A wybierz 300,00 zł K := K (= 1 700) (utracona aktualizacja) T k, bankomat B wybierz 100,00 zł K := K (= 1 900) Powyższy harmonogram nie jest szeregowalny. Stan konta po zakooczeniu obydwu transakcji wynosi 1900 zł zamiast 1600 zł. Aktualizacja wykonana przez transakcję T i została utracona mimo, że transakcja ta zakooczyła się powodzeniem (została zatwierdzona). Niespójna analiza (inconsistent analysis). Problemy: czytanie brudnopisu (dirty read) i nie powtarzalne odczyty (non-repeatable read, fuzzy read). Rozważmy trzy konta bankowe: K1, K2, K3. Niech transakcja T i sumuje stan kont, natomiast transakcja T k przelewa 1000 zł z rachunku K3 na rachunek nr K1. Początkowe stany rachunków: K1: 4000 zł K2: 5000 zł K3: 3000 zł Przykład 1: Transakcja T i suma := 0 read (K1) suma := suma + K1 (suma = 4000) Transakcja T k read (K3) (K3 = 3000) K3 := K (K3 = 2000) write (K3) 1

2 read (K2) suma := suma + K2 (suma = 9000) read (K3) (K3 = 2000) suma := suma + K3 (suma = 11000) odczyt wartości niezatwierdzonej read (K1) (K1 = 4000) K1 := K (K1 = 5000) write (K1) Jeśli transakcja czyta dane z bazy danych w taki sposób, że nie są spełnione warunki ograniczające (constraints) nałożone (jawnie lub niejawnie) na dane, to mówi się, że transakcja doświadcza anomalii związanej z warunkami ograniczającymi (constraint violation concurrency anomaly) i sytuacja taka jest nazywana (wg Date) niespójną analizą (inconsistent analysis). Transakcja T i odczytała niespójny stan bazy danych (odczytała wartośd niezatwierdzoną) i wyliczyła niepoprawną sumę zł zamiast zł. Odczyt wartości niezatwierdzonej jest nazywany też czytaniem brudnopisu (dirty read), można też spotkad termin brudny odczyt lub brudne czytanie. W powyższym przykładzie przyczyną niespójnej analizy jest czytanie brudnopisu, jednak niespójna analiza nie musi byd związana z czytaniem brudnopisu. Przykład 2: Transakcja T i suma := 0; read (K1) suma := suma + K1 (suma = 4000) read (K2) suma := suma + K2 (suma = 9000) read (K3) (K3 = 2000) suma := suma + K3 (suma = 11000) Transakcja T k read (K3) (K3 = 3000) K3 := K (K3 = 2000) write (K3) read (K1) (K1 = 4000) K1 := K (K1 = 5000) write (K1) Tym razem żadna z transakcji nie przeczytała wartości niezatwierdzonej, jednak znowu transakcja T i wyliczyła niepoprawną sumę zł zamiast zł. Transakcja T k zmieniła wartośd K1 odczytaną wcześniej przez transakcję T i, co spowodowało, że transakcja T i pracuje na przestarzałych danych. Gdyby transakcja T i przeczytała jeszcze raz K1 już po zatwierdzeniu transakcji T k, otrzymałaby inne dane i to mógłby byd sygnał że są kłopoty i suma będzie niepoprawna. 2

3 Problem nie powtarzalnych odczytów (non-repeatable reads, fuzzy reads) Problem nie powtarzalnych odczytów (non-repeatable reads, fuzzy reads) można wstępnie sformułowad tak (wrócimy do tego i przedefiniujemy problem nie powtarzalnych odczytów przy okazji omawiania poziomów izolacji transakcji): Pierwsza transakcja odczytuje wiersze, druga je zmienia lub usuwa i wykonuje COMMIT zanim pierwsza wykona COMMIT. Gdyby teraz pierwsza transakcja odczytała wiersze jeszcze raz, to otrzyma inne wyniki. Jak widad wcześniej rozważanego przykładu, kłopoty pojawiają się w rzeczywistości niezależnie od tego, czy transakcja pierwsza odczyta dane powtórnie. Przeanalizujmy jeszcze następujący przykład. Transakcja T i zapisuje stan konta K1 (wiersz w tabeli Tab1) do dwóch różnych elementów danych A i B (mogą to byd inne wiersze w różnych tabelach lub nawet w tej samej tabeli). T i realizuje to przez dwa odczyty stanu konta K1, za pierwszym razem zapisuje stan do elementu A, za drugim do elementu B. (UPDATE Tab2 SET x=(select x FROM Tab1 WHERE klucz1=k1) WHERE klucz2=a i potem UPDATE Tab3 SET x=(select x FROM Tab1 WHERE klucz1=k1) WHERE klucz3=b). Transakcja druga T k wybiera 1000 zł z konta K1. Na początku na koncie K1 jest 4000zł. W wyniku realizacji poniższego harmonogramu stany A i B będą różne (a powinny byd takie same). Transakcja T i read (K1) (K1 = 4000) A := K1 write (A) read (K1) (K1 = 3000) B := K1 write (B) Transakcja T k read (K1) (K1 = 4000) K1 := K (K1 = 3000) write (K1) Wiersze widma, fantomy (phantoms) Pierwsza transakcja odczytuje wiersze, które spełniają pewne kryterium wyboru. Druga wstawia nowe wiersze spełniające rozważane kryterium wyboru lub modyfikuje dane tak, że nowe (poza wybranymi wcześniej) wiersze spełniają kryterium. Czytanie brudnopisu (zależnośd od wartości niezatwierdzonej) i rollback Jak powyżej przedstawiono, czytanie brudnopisu może byd powodem niespójnej analizy. Czytanie brudnopisu bywa rozpatrywane w kontekście transakcji kooczącej się wycofaniem. Jest tak np. w definicji ANSI poziomów izolacji transakcji (zagadnienie będzie dokładniej prezentowane później). W rozważanym do tej pory uproszczonym modelu bazy danych przyjęliśmy, że jedyne operacje, które mogą wpłynąd na powstanie niespójnego stanu bazy to operacje Read i Write. Nie rozważaliśmy operacji wycofania (rollback). W takim ujęciu operacja wycofania 3

4 transakcji powinna byd interpretowana jako zapis before image, czyli wartości sprzed początku transakcji (dotyczy to wszystkich elementów danych zmienionych przez transakcję). Tylko przy tym założeniu możemy uznad, że harmonogramy szeregowalne konfliktowo są poprawne również w obecności operacji rollback. Inaczej harmonogram szeregowalny może doprowadzid do niepoprawnego stanu bazy danych wskutek odczytu wartości niezatwierdzonej (zapisanej przez transakcję, która została wycofana). Operacja rollback może byd wykonywana na różne sposoby, inaczej na przykład w systemie realizującym stronicowanie z zasłanianiem (shadow paging), inaczej w takim systemie z dziennikiem transakcji, który w przypadku wycofania transakcji zapisuje wartości sprzed początku transakcji (before image). To zagadnienie też będzie jeszcze dokładniej przedstawiane w dalszej części wykładu z baz danych. Teraz warto wspomnied, że np. stronicowanie z zasłanianiem (różne odmiany) i systemy z wielowersyjnym sterowaniem transakcjami (są różne wersje tego samego elementu danych) uniemożliwiają odczyt wartości niezatwierdzonych. Poniżej rozważymy system z zapisem wartości początkowych (before images). Przykład. Mąż wybiera 300 zł (ze wspólnego z żoną konta) w bankomacie A, w tym samym czasie żona chce wybrad 100 zł w bankomacie B. Stan konta przed rozpoczęciem transakcji wynosi 2000zł. T i bankomat A wybierz 300,00 zł K := K (K = 1 700) odczyt wartości niezatwierdzonej rollback T k bankomat B K = 1 700,00 wybierz 100,00 zł K := K (= 1 600) Stan konta po zakooczeniu obydwu transakcji wynosi 1600 zł zamiast 1900 zł (wybrano tylko 100 zł). Zakładamy tu, że system działa tak, że wycofanie transakcji T i nie powoduje automatycznego kaskadowego wycofania transakcji T k (mimo, że T k czyta z T i ). Jest tak np. w systemie Microsoft SQL Server w poziomie izolacji transakcji READ UNCOMMITTED. Operację rollback można tu rozumied jako zapisanie wartości K sprzed wykonania transakcji i zakooczenie wykonywania transakcji. T i bankomat A T k bankomat B 4

5 wybierz 300,00 zł K := K (K = 1 700) odczyt wartości niezatwierdzonej (K=2000) end () K = 1 700,00 wybierz 100,00 zł K := K (= 1 600) Harmonogram nie jest szeregowalny. Niepoprawne wyniki da również taki harmonogram: T i bankomat A wybierz 300,00 zł K := K (K = 1 700) odczyt wartości niezatwierdzonej rollback T k bankomat B K = 1 700,00 wybierz 100,00 zł K := K (= 1 600) Harmonogram ten mógłby byd realizowany tak: T i bankomat A wybierz 300,00 zł K := K (K = 1 700) odczyt wartości niezatwierdzonej (K=2000) end () T k bankomat B K = 1 700,00 wybierz 100,00 zł K := K (= 1 600) Pomimo wybrania 100 zł na koncie pozostaje 2000, wystąpił problem utraconej aktualizacji. 5

6 II. Techniki sterowania współbieżnością wykorzystujące blokowanie. Protokół dwufazowego blokowania (2PL). Blokada (lock) jest zmienną związaną z elementem danych, która opisuje stan tego elementu pod względem możliwości działao, jakie mogą byd na nim w danej chwili wykonywane. Blokowanie binarne element wolny lub zablokowany. Wada: mała efektywnośd operacji współbieżnych. Propozycja dwóch typów blokad: Blokady wyłączne (typu X, exclusive, blokady do zapisu) Blokady wspólne (typu S, shared, blokady do odczytu) Na początek dla uproszczenia załóżmy, że blokujemy zawsze wiersze (nie tabele, bloki itp.). Zasady: 1. Jeśli transakcja A założy blokadę wyłączną (X) na wiersz p, to próba założenia jakiejkolwiek blokady przez inną transakcję B na tym samym wierszu zostanie oddalona. 2. Jeśli transakcja A założy blokadę wspólną (S) na wiersz p, to: próba założenia blokady wyłącznej (X) przez transakcję B na tym samym wierszu zostanie oddalona, próba założenia blokady wspólnej (S) przez transakcję B na tym samym wierszu zostanie zaakceptowana - transakcja B też będzie utrzymywad blokadę na p. Macierz kompatybilności dla blokad typu X i S. X S bez blokady X Nie Nie Tak S Nie Tak Tak bez blokady Tak Tak Tak Propozycja protokołu dostępu do danych, zapobiegającego wcześniej przedstawionym problemom współbieżności: rygorystyczny protokół dwufazowego blokowania (rigorous 2PL- 2 Phase Locking) 1. Transakcja, która chce uzyskad dostęp do wiersza, musi najpierw uzyskad blokadę S na tym wierszu. 2. Transakcja, która chce zmodyfikowad wiersz, musi najpierw uzyskad blokadę X na tym wierszu. Jeśli transakcja już wcześniej założyła blokadę S, to musi ona zmienid blokadę (zaktualizowad, upgrade) z S na X. 3. Jeśli żądanie blokady pochodzące od transakcji B zostanie odrzucone ze względu na to, że jest w konflikcie z blokadą założoną wcześniej przez transakcję A, to transakcja B przechodzi w stan oczekiwania. Stan ten potrwa do momentu, aż blokada związana z 6

7 transakcją A zostanie zdjęta. System powinien zapewnid, że transakcja B nie będzie czekała w nieskooczonośd (żeby nie nastąpiło zagłodzenie). 4. Blokady S i X są utrzymywane do kooca transakcji (tj. do polecenia COMMIT lub ROLLBACK). W literaturze można spotkad wersję tego protokołu bez stosowania zmiany blokady z S na X, tzn. transakcja, która chce czytad element danych i będzie później modyfikowała ten element, zakłada od razu blokadę typu X. Ponowna analiza wybranych problemów współbieżności Problem utraconej aktualizacji T i bankomat A (zakłada blokadę S na K) wybierz 300,00 zł K := K (= 1 700) (żąda blokady X na K) T k bankomat B (zakłada blokadę S na K) wybierz 100,00 zł K := K (= 1 900) (żąda blokady X na K) Problemu niespójności nie ma, ale pojawił się nowy zakleszczenie (wzajemna blokada, deadlock). Niespójna analiza Rozważmy trzy konta bankowe: K1, K2, K3. Niech transakcja A sumuje stan kont, natomiast transakcja B przelewa 1000 zł z rachunku K3 na rachunek nr K1. Początkowe stany rachunków: K1: 4000 zł K2: 5000 zł K3: 3000 zł Przykład 1: Transakcja T i suma := 0 read (K1) (zakłada blokadę S na K1) Transakcja T k read (K3) (K3 = 3000) (zakłada blokadę S na K3) K3 := K (K3 = 2000) write (K3) (zmienia blokadę z S na X dla K3) 7

8 suma := suma + K1 (suma = 4000) read (K2) (zakłada blokadę S na K2) suma := suma + K2 (suma = 9000) read (K3) (K3 = 2000) (próbuje założyd blokadę S na K3) read (K1) (K1 = 4000) (zakłada blokadę S na K1) K1 := K (K1 = 5000) write (K1) (próbuje zmienid blokadę z S na X) Pojawiło się zakleszczenie, ale transakcje nie doprowadzają do niespójnego stanu bazy danych. Przykład 2: Transakcja T i suma := 0; read (K1) (zakłada blokadę S na K1) suma := suma + K1 (suma = 4000) read (K2) (zakłada blokadę S na K2) suma := suma + K2 (suma = 9000) read (K3) (K3 = 2000) (próbuje założyd blokadę S na K3) Transakcja T k read (K3) (K3 = 3000) (zakłada blokadę S na K3) K3 := K (K3 = 2000) write (K3) (zmienia blokadę z S na X dla K3) read (K1) (K1 = 4000) (zakłada blokadę S na K1) K1 := K (K1 = 5000) write (K1) (próbuje zmienid blokadę z S na X dla K1) Pojawiło się zakleszczenie, ale transakcje nie doprowadzają do niespójnego stanu bazy danych. 8

9 Nie powtarzalne odczyty Tym razem zanim druga transakcja będzie mogła zmienid dane, musi uzyskad blokadę wyłączną, a nie jest to możliwe aż do zakooczenia transakcji pierwszej. Dopiero po zakooczeniu pierwszej transakcji nastąpi modyfikacja w transakcji drugiej. Transakcja T i read (K1) (K1 = 4000) (zakłada blokadę S na K1) A := K1 write (A) (zakłada blokadę X na A) read (K1) (K1 = 4000) B := K1 write (B) (zakłada blokadę X na B) (zwalnia wszystkie blokady) Transakcja T k read (K1) (K1 = 4000) (zakłada blokadę S na K1) K1 := K (K1 = 3000) write (K1) (próbuje zmienid blokadę S na X dla K1) następuje przydzielenie blokady X na K1 dla transakcji T k zrealizowana zostaje operacja zapisu write(k1) Wiersze widma (fantomy, phantoms) W dotychczasowych rozważaniach nie przyglądaliśmy się bliżej co to znaczy element danych. Jeśli w przyjętym przez nas uproszczonym modelu bazy danych element danych będzie oznaczał konkretny wiersz i blokady dotyczą konkretnego zapisanego w tabeli wiersza, to 2PL w wersji podanej powyżej nie zabezpiecza przed fantomami. Jeśli jednak będziemy chcieli odzwierciedlid w modelu odczyty danych w wykorzystaniem pewnego predykatu (warunek WHERE w zdaniu SELECT), to należałoby wprowadzid tzw. blokady predykatowe. Założenie blokady predykatowej na element A (zbiór wierszy spełniających warunek WHERE) można rozumied jako zablokowanie tego zbioru w taki sposób, że zbiór nie będzie mógł byd w żaden sposób zmieniony przez inną transakcję (INSERT, DELETE, UPDATE). Przy takich założeniach stosowanie protokołu 2PL zabezpiecza przed fantomami. Czytanie brudnopisu, zależnośd od wartości niezatwierdzonej T i bankomat A (zakłada blokadę S na K) wybierz 300,00 zł K := K (= 1 700) (zmienia blokadę z S na X dla K) T k bankomat B 9

10 rollback (zwalnia wszystkie blokady przydzielone do transakcji T i ) (żąda blokady S na K) zostaje założona blokada S na K i następuje odczyt K, K=2000 wybierz 100,00 zł K := K (= 1 900) (zmienia blokadę z S na X dla K) (zwalnia wszystkie blokady przydzielone do transakcji T k ) Stan konta po zakooczeniu obydwu transakcji wynosi 1900 zł. Różne wersje protokołu dwufazowego blokowania Wersja podstawowa protokołu dwufazowego blokowania (basic 2PL): 1. Zanim transakcja rozpocznie działanie na pewnym obiekcie w bazie danych, musi założyd na ten obiekt odpowiednią blokadę (S lub X). 2. Po zwolnieniu blokady transakcja już nie może zakładad żadnej nowej blokady na jakikolwiek obiekt. Blokady mogą byd wcześniej zwalniane (niekoniecznie na koocu transakcji). Inne wersje protokołu dwufazowego blokowania Ścisły protokół 2PL (strict 2PL): podobnie jak rygorystyczny, ale do kooca transakcji utrzymywane są tylko blokady wyłączne. Blokady S mogą byd zwalniane wcześniej. Jest trudniejszy do zaimplementowania niż rygorystyczny 2PL, ale obydwa gwarantują występowanie ścisłych harmonogramów. W obydwu mogą wystąpid zakleszczenia. Konserwatywny protokół 2PL (conservative 2PL): na początku transakcja musi określid zbiór elementów, które chce blokowad. Jeśli można zablokowad wszystkie, to elementy są blokowane, jeśli nie, to po pewnym czasie próba jest ponawiana. Ta wersja protokołu 2PL daje gwarancję braku zakleszczeo. Twierdzenie Jeśli wszystkie transakcje spełniają protokół dwufazowego blokowania (wersję podstawową lub inne), to wszystkie (przeplatane) harmonogramy są szeregowalne konfliktowo. Jeśli transakcja A nie spełnia protokołu dwufazowego blokowania (ale stosowane są blokady S i X według wcześniej podanych reguł), to zawsze można utworzyd pewną transakcję B, która przeplata się z A tak, że daje to harmonogram, który nie jest szeregowalny konfliktowo. 10

11 III. Zakleszczenia Zakleszczenie (deadlock) występuje wówczas, gdy każda transakcja T ze zbioru dwóch lub więcej transakcji oczekuje na pewien element zablokowany przez inną transakcję T z tego zbioru. Protokoły zapobiegania zakleszczeniom (deadlock prevention protocols) Protokoły tego typu są rzadko wykorzystywane w praktyce. Zarządca transakcji sprawdza na początku, czy transakcja może spowodowad zakleszczenie. Jeśli tak, to transakcja nie jest wykonywana. Po pewnym czasie następuje ponowna próba wykonania transakcji. Konserwatywny protokół blokowania dwufazowego jest przykładem protokołu zapobiegającego zakleszczeniom. Protokoły unikania zakleszczeo (deadlock avoidance protocols) Propozycja 1 Uporządkowanie wszystkich elementów w bazie danych i zapewnienie, aby każda transakcja wymagająca dostępu do kilku elementów realizowała dostępy i blokowała elementy w odpowiedniej kolejności (wszystkie transakcje w tej samej kolejności). Na ogół w bazach danych taka strategia nie może byd zastosowana. Propozycja 2 Wykorzystanie znaczników czasu, wersja Czekaj-koocz (WAIT-DIE) TS(T) znacznik czasu transakcji (transaction timestamp), rosnące numery lub np. data z godziną rozpoczęcia transakcji. Załóżmy, że transakcja T i próbuje zablokowad element danych, który jest już blokowany przez inną transakcję T k z użyciem konfliktowej blokady. Strategia: Jeżeli TS(T i ) < TS(T k ) (T i jest starsza, tzn. rozpoczęła się wcześniej), wówczas T i czeka, w przeciwnym przypadku (T i jest młodsza) T i jest anulowana i ponawiana później z tym samym znacznikiem czasu. Propozycja 3 Wykorzystanie znaczników czasu, wersja Zakoocz-czekaj (WOUND-WAIT) Załóżmy, że transakcja T i próbuje zablokowad element danych, który jest już blokowany przez inną transakcję T k z użyciem konfliktowej blokady. Strategia: Jeżeli TS(T i ) < TS(T k ) (T i jest starsza, tzn. rozpoczęła się wcześniej), wówczas T k zostaje anulowana i ponawiana później z tym samym znacznikiem czasu, w przeciwnym przypadku (T i jest młodsza) T i czeka. W obu powyższych strategiach (tzn. z propozycji 2 i 3) anulowana jest młodsza transakcja. Jednak strategia Czekaj-koocz preferuje w pewien sposób transakcje młodsze, gdyż młodsza 11

12 transakcja T k nie jest przerywana, a starsza czeka na jej zakooczenie. Strategia Zakooczczekaj preferuje w pewien sposób transakcje starsze. Propozycja 4 Strategia bez oczekiwania (no wait) jeśli transakcja nie może założyd blokady, to jest wycofywana (i potem wznawiana) bez sprawdzania, czy zakleszczenie rzeczywiście mogłoby wystąpid, czy nie. Propozycja 5 Strategia oczekiwania ostrożnego (cautious waiting). Załóżmy, że transakcja T i próbuje zablokowad element danych, który jest już blokowany przez inną transakcję T k z użyciem konfliktowej blokady. Jeśli T k nie czeka na pewien inny zablokowany element, to transakcja T i będzie czekad, w przeciwnym przypadku transakcja T i jest anulowana. Wykrywanie zakleszczeo (deadlock detection) Propozycja 1 Skonstruowanie grafu oczekiwania (wait-for graph). Dla każdej wykonywanej transakcji tworzony jest wierzchołek w grafie. Jeśli transakcja T i próbuje zablokowad element danych, który jest już blokowany przez inną transakcję T k z użyciem konfliktowej blokady, w grafie jest tworzona krawędź skierowana z T i do T k. Po zwolnieniu blokady krawędź jest usuwana. Cykl w grafie oznacza zakleszczenie. Wybór ofiary na ofiarę można wybrad transakcję młodszą, lub tę, która mniej zmodyfikowała (tę, której wycofanie jest prostsze). Propozycja 2 Użycie limitów czasu (timeouts) jeśli transakcja czeka na zasób dłużej niż przyjęta wartośd progowa, to system przyjmuje, że uległa zakleszczeniu i anuluje ją, bez względu na to, czy zakleszczenie rzeczywiście wystąpiło, czy nie. Blokady typu U Blokada U (od: Update) jest stosowana w przypadku, gdy element danych jest odczytywany i byd może będzie potem aktualizowany. Jeśli w takim przypadku stosowana jest blokada S i potem zmieniana jest na X, może to prowadzid do zakleszczenia. Rozwiązaniem może byd wprowadzenie blokady do aktualizacji U, która jest kompatybilna z S a nie jest kompatybilna z X ani U. Rozważa się dwie wersje blokad U. 12

13 Wersja 1: Blokada, która S X U ma byd przyznana: Już przyznana blokada: S Tak Nie Tak X Nie Nie Nie U Tak Nie Nie Wersja 2: Blokada, która S X U ma byd przyznana: Już przyznana blokada: S Tak Nie Tak X Nie Nie Nie U Nie Nie Nie Blokada U jest zakładana przy odczycie (w celu późniejszej aktualizacji). Przed wykonaniem aktualizacji danych blokada U jest konwertowana do X (zatem wszystkie blokady S muszą zostad zdjęte). Unikanie zagłodzenia Strategie Czekaj-koocz i Zakoocz-czekaj nie powodują zagłodzenia. Przykładowe inne strategie kolejka FCFS, zwiększanie priorytetu w miarę czasu oczekiwania, zwiększanie priorytetu dla transakcji wielokrotnie wycofywanej. 13

14 IV. Techniki sterowania współbieżnością z wykorzystaniem znaczników czasu Tworzony harmonogram jest równoważny konfliktowo konkretnemu uporządkowaniu szeregowemu, odpowiadającemu porządkowi znaczników czasu transakcji (TS(T)). Oprócz znaczników czasu transakcji wprowadźmy znaczniki czasu elementów danych. TS_odczytu(X). Znacznik czasu odczytu (read timestamp) elementu danych X jest to znacznik o najwyższej wartości spośród wszystkich znaczników transakcji, które z powodzeniem odczytały element X. TS_odczytu(X)=TS(T), gdzie T jest najmłodszą transakcją, która z powodzeniem odczytała element X. TS_zapisu(X). Znacznik czasu zapisu (write timestamp) elementu danych X ma wartośd równą najwyższej wartości znacznika transakcji spośród wszystkich znaczników transakcji, które z powodzeniem zapisały element X. TS_zapisu(X)=TS(T), gdzie T jest najmłodszą transakcją, która z powodzeniem zapisała element X. Algorytm porządkowania według znaczników czasu Wersja podstawowa Podstawowy algorytm porządkowania według znaczników czasu: jeśli wykryje dwie operacje konfliktowe występujące w niepoprawnej kolejności, to odrzuca późniejszą z tych operacji i anuluje transakcję, która tę operację wykonywała. Jeśli transakcja jest wycofana, to jest później ponawiana z nowym znacznikiem czasu. Należy rozważyd dwa przypadki: 1. Transakcja T wykonuje operację zapisz_element(x): a) Jeśli TS_odczytu(X) > TS(T) lub TS_zapisu(X)>TS(T), to operacja zapisu jest odrzucona i transakcja T wycofana. b) Jeśli warunek z punktu a) nie jest spełniony, wykonywana jest operacja zapisz_element(x) i wartośd TS_zapisu(X) ustawiana jest na TS(T). 2. Transakcja T wykonuje operację odczytaj_element(x): a) Jeśli TS_zapisu(X) > TS(T), to operacja odczytu jest odrzucona i transakcja T zostaje wycofana. b) Jeśli TS_zapisu(X) <= TS(T), to wykonywana jest operacja odczytaj_element(x) w transakcji T i wartośd TS_odczytu(X) ustawiana jest na większą z wartości TS(T) lub bieżącej wartośd TS_odczytu(X). Zakleszczenie nie występuje, natomiast może pojawid się zagłodzenie w przypadku, gdy transakcja jest stale anulowana i ponawiana. 14

15 Powyższy algorytm nie uwzględnia operacji wycofania i harmonogramy mogą doświadczad problemów związanych z odczytem wartości niezatwierdzonych. Aby tego uniknąd można wprowadzid dodatkowe mechanizmy. Ścisłe porządkowanie według znaczników czasu Zapewnia, że harmonogram jest nie tylko szeregowalny, ale ścisły. Transakcja T, taka że TS(T) > TS_zapisu(X), która wykonuje operację odczytaj_element(x) lub zapisz_element(x), opóźnia ją do momentu aż transakcja T, która zapisała wartośd X (czyli TS(T )=TS_zapisu(X)), zostanie zatwierdzona lub anulowana. Zakleszczenie nie występuje. Nie ma też problemów z odczytem tych niezatwierdzonych wartości, które są wycofywane. Reguła zapisu Thomasa Nie wymusza szeregowalności konfliktowej, ale odrzuca mniejszą liczbę operacji zapisu niż podstawowa wersja. Zmodyfikowane jest sprawdzanie operacji zapisz_element(x): 1. Jeśli TS_odczytu(X) > TS(T), to operacja zapisu jest odrzucona i transakcja T jest anulowana. 2. Jeśli TS_zapisu(X) > TS(T), to operacja zapisu nie jest wykonywana, ale transakcja jest kontynuowana. 3. Jeśli nie wystąpi sytuacja ani z punktu 1. ani z punktu 2., to operacja zapisz_element(x) w transakcji T jest wykonywana i wartośd TS_zapisu(X) jest ustawiana na TS(T). 15

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

I. Techniki wielowersyjne sterowania współbieżnością I. Techniki wielowersyjne sterowania współbieżnością Techniki wielowersyjne multiversion concurrency control. Technika wielowersyjna oparta na znacznikach czasu Dla każdej wersji X i elementu X przechowywane

Bardziej szczegółowo

Bazy danych. Andrzej Łachwa, UJ, /15

Bazy danych. Andrzej Łachwa, UJ, /15 Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 12/15 WSPÓŁBIEŻNOŚĆ Serwer bazodanowy nie może obsługiwać klientów sekwencyjnie: wszyscy musieli by czekać

Bardziej szczegółowo

Bazy danych 2. Wykład 6 Transakcje

Bazy danych 2. Wykład 6 Transakcje Bazy danych 2 Wykład 6 Transakcje Transakcje Def. Transakcjami nazywamy logiczne jednostki pracy które wprowadzają zmiany do bazy danych lub które wyszukują dane O transakcjach mówimy w kontekście: aktualizacji

Bardziej szczegółowo

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

1 Przetwarzanie transakcyjne Cechy transakcji Rozpoczęcie i zakończenie Punkty bezpieczeństwa... 3 Plan wykładu Spis treści 1 Przetwarzanie transakcyjne 1 1.1 Cechy transakcji................................. 2 1.2 Rozpoczęcie i zakończenie........................... 3 1.3 Punkty bezpieczeństwa.............................

Bardziej szczegółowo

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

przykłady problemów; realizacja dostaw części od producenta do klienta: Przetwarzanie transakcyjne Transakcja zestaw operacji pod szczególną kontrolą transakcja to sekwencja operacji, która musi zakończyć się sukcesem w całości - w przeciwnym wypadku musi powrócić stan początkowy

Bardziej szczegółowo

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

070 TRANSAKCJE. Prof. dr hab. Marek Wisła 070 TRANSAKCJE Prof. dr hab. Marek Wisła Transakcja - definicja Transakcja jest sekwencją logicznie powiązanych operacji na bazie danych, przeprowadzających bazę danych z jednego stanu spójnego w inny

Bardziej szczegółowo

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

Ustawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia). POZIOMY IZOLACJI TRANSAKCJI 1. Microsoft SQL Server 2012 (od SQL Server 2005) W systemie SQL Server można wybrać sposób sterowania współbieżnością. Podstawowy sposób to stosowanie blokad. Wykorzystywane

Bardziej szczegółowo

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

Plan wykładu. Przykład. Wprowadzenie BAZY DANYCH. Transakcje Hurtownie danych 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

Bardziej szczegółowo

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

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu): Utwórz bazę danych Cw: CREATE DATABASE Cw Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu): DBCC USEROPTIONS Przykład z zapisem do tabeli tymczasowej: --Jeśli istnieje tabela tymczasowa

Bardziej szczegółowo

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

Bazy danych wykład dziewiaty Transakcje. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa) Bazy danych wykład dziewiaty Transakcje Konrad Zdanowski Uniwersytet Kardynała Stefana Wyszyńskiego, Warszawa dziewiaty Transakcje 1 / 42 Outline 1 Transakcje Problemy interakcji 2 Metody usuwania konfliktów

Bardziej szczegółowo

Wielowersyjne metody synchronizacji transakcji

Wielowersyjne metody synchronizacji transakcji Wielowersyjne metody synchronizacji transakcji Jednowersyjne algorytmy synchronizacji Wszystkie modyfikacje danych polegają na zniszczeniu starej wartości danych i wpisaniu w jej miejsce nowej wartości.

Bardziej szczegółowo

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

Algorytmy zarządzania współbieżnym wykonywaniem transakcji część I Algorytmy zarządzania współbieżnym wykonywaniem transakcji część I Wykład przygotował: Tadeusz Morzy BD wykład 9 Celem wykładu jest przedstawienie i omówienie podstawowych algorytmów zarządzania współbieżnym

Bardziej szczegółowo

Zarządzanie transakcjami

Zarządzanie transakcjami Zarządzanie transakcjami Właściwości ACID Przyjmuje się, że transakcje i protokoły zarządzania transakcjami powinny posiadać właściwości ACID: Atomowość (atomicity) każda transakcja stanowi pojedynczą

Bardziej szczegółowo

Przechowywanie danych

Przechowywanie danych Przechowywanie danych Wykorzystanie systemu plików, dostępu do plików za pośrednictwem systemu operacyjnego i proste rozwiązanie polegające na przechowywaniu każdej tabeli w jednym pliku, informacji o

Bardziej szczegółowo

Transakcje. (c) Instytut Informatyki Politechniki Poznańskiej

Transakcje. (c) Instytut Informatyki Politechniki Poznańskiej ransakcje Definicja i własności transakcji, zatwierdzanie i wycofywanie, punkty bezpieczeństwa, spójność, anomalie współbieżnego dostępu do danych, poziomy izolacji transakcji, blokady, zakleszczenie Definicja

Bardziej szczegółowo

BAZY DANYCH. Transakcje. opracowanie: Michał Lech

BAZY DANYCH. Transakcje. opracowanie: Michał Lech BAZY DANYCH Transakcje opracowanie: Michał Lech Plan wykładu 1. Transakcje - co to jest? 2. Mechanizmy transakcji 3. Reguły ACID 4. Niekorzystne zjawiska 5. Poziomy izolacji 6. Polecenia PostgreSQL transakcji

Bardziej szczegółowo

Tadeusz Pankowski

Tadeusz Pankowski Planista (scheduler) Transakcje Blokowanie Dwufazowe (B2F) Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski Zarządzaniem transakcjami zajmuje się wyspecjalizowany moduł planisty. Planista związany

Bardziej szczegółowo

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

Plan ćwiczenia. Rozdział 17. zarządzania współbieżnością. Dostęp współbieżny a dostęp spójny. Spójność bazy danych Plan ćwiczenia Rozdział 17 Zarządzanie współbieżnością Definicja i własności transakcji, zatwierdzanie i wycofywanie, punkty bezpieczeństwa, spójność, anomalie współbieżnego dostępu do danych, poziomy

Bardziej szczegółowo

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

Algorytmy zarządzania współbieżnym wykonywaniem transakcji część II Algorytmy zarządzania współbieżnym wykonywaniem transakcji część II Wykład przygotował: Tadeusz Morzy BD wykład 9 Kontynuujemy prezentację i omówienie algorytmów zarządzania współbieżnym wykonywaniem transakcji.

Bardziej szczegółowo

Właściwości transakcji

Właściwości transakcji Transakcje Właściwości transakcji Transakcja jednostka operowania na bazie danych podlegająca kontroli i sterowaniu System zarządzania transakcjami ma za zadanie takie sterowanie operacjami na bazie danych,

Bardziej szczegółowo

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

Izolacje transakcji oraz anomalie. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW Izolacje transakcji oraz anomalie Robert A. Kłopotek r.klopotek@uksw.edu.pl Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW SZBD (DBMS) a transakcji Przetwarzanie transakcyjne wymaga znaczącego

Bardziej szczegółowo

Bazy danych 9. SQL Klucze obce Transakcje

Bazy danych 9. SQL Klucze obce Transakcje Bazy danych 9. SQL Klucze obce Transakcje P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Klucze obce Klucze obce powiazanie indeksowanej kolumny jakiejś tabeli z indeksowana kolumna

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 8 Transakcje i blokady Wprowadzenie do transakcji, rodzaje transakcji Punkty zapisu, odzyskiwanie

Bardziej szczegółowo

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa Wprowadzenie do projektowania i wykorzystania baz danych Katarzyna Klessa POWTÓRKA Z PIERWSZYCH ZAJĘĆ Lista słówek - do zapamiętania na początek Z podstaw SQL: CREATE - Tworzenie tabeli, czyli Coś czego

Bardziej szczegółowo

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

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach Indeksy dodatkowe struktury służące przyśpieszeniu dostępu do danych o użyciu indeksu podczas realizacji poleceń decyduje SZBD niektóre systemy bazodanowe automatycznie tworzą indeksy dla kolumn o wartościach

Bardziej szczegółowo

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

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe -- Definicje relacji i utworzenie stanu początkowego dla ćwiczeń z synchronizacji transakcji DROP TABLE Konta cascade constraints; DROP TABLE

Bardziej szczegółowo

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

Plan ćwiczenia. Rozdział 17 Zarządzanie współbieżnością. Dostęp współbieżny a dostęp spójny. Spójność bazy danych Plan ćwiczenia Rozdział 17 Zarządzanie współbieżnością Definicja i własności transakcji, zatwierdzanie i wycofywanie, punkty bezpieczeństwa, spójność, anomalie współbieżnego dostępu do danych, poziomy

Bardziej szczegółowo

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski Transakcje i ich właściwości Transakcje Tadeusz Pankowski wwwputpoznanpl/~tadeuszpankowski W SZBD stosuje się pojęcie transakcji jako jednostki operowania na bazie danych podlegającej sterowaniu i kontroli

Bardziej szczegółowo

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

Wykłady z przedmiotu Podstawy baz danych Transakcje dr hab. prof. UŁ. Tadeusz Antczak. Transakcje Transakcje Pojęcie transakcji Pojęcie transakcji stało się centralnym elementem w wielu współczesnych zastosowaniach baz danych. Jest kluczowym pojęciem pozwalającym zrozumieć zarówno kontrolę wielodostępu,

Bardziej szczegółowo

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

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Technologia Przykłady praktycznych zastosowań wyzwalaczy będą omawiane na bazie systemu MS SQL Server 2005 Wprowadzenie

Bardziej szczegółowo

PODSTAWY BAZ DANYCH Wykład 9

PODSTAWY BAZ DANYCH Wykład 9 PODSTAWY BAZ DANYCH Wykład 9 7. Transakcje Podstawy teoretyczne 2005/2006 Wykład "Podstawy baz danych" 1 Zbiór cech transakcji Transakcja jest to zespół operacji na bazie danych (INSERT, UPDATE, DELETE

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 7 Dynamiczny SQL i PL/SQL Pierwotny dynamiczny SQL Pierwotny dynamiczny DDL Pierwotny dynamiczny DML i SELECT Pakiet DBMS_SQL Transakcje

Bardziej szczegółowo

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

Wprowadzenie (1) Przetwarzanie transakcyjne. Wprowadzenie (2) Problemy przygotowania aplikacji 1 Wprowadzenie (1) 2 Baza danych jest abstrakcyjnym odzwierciedleniem wybranego fragmentu rzeczywistości (ang. miniworld) Przetwarzanie transakcyjne świat rzeczywisty miniworld' DB świat wirtualny miniworld'

Bardziej szczegółowo

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

Wykłady z przedmiotu Podstawy baz danych Transakcje dr hab. prof. nadzw. Tadeusz Antczak. Transakcje Transakcje Pojęcie transakcji Pojęcie transakcji stało się centralnym elementem w wielu współczesnych zastosowaniach baz danych. Jest kluczowym pojęciem pozwalającym zrozumieć zarówno kontrolę wielodostępu,

Bardziej szczegółowo

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

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 Zarządzanie współbieżnością transakcji Definicja transakcji Transakcja jest sekwencją logicznie powiązanych operacji na bazie danych, która przeprowadza bazę danych z jednego stanu spójnego w inny stan

Bardziej szczegółowo

Bazy danych. Dr inż. Paweł Kasprowski

Bazy danych. Dr inż. Paweł Kasprowski Plan wykładu Bazy danych Architektura systemów zarządzania bazami danych Realizacja zapytań algebra relacji Wielodostęp do danych - transakcje Dr inż. Paweł Kasprowski pawel@kasprowski.pl Aplkacja przechowująca

Bardziej szczegółowo

Bazy danych w sterowaniu

Bazy danych w sterowaniu 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

Bardziej szczegółowo

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

Bazy danych. Plan wykładu. Czynniki wpływające na fizyczny projekt bazy danych. bazy danych Plan wykładu Bazy danych Wykład 13: Praktyczne projektowanie i strojenie baz danych. Wstęp do transakcji. Budowa fizycznego projektu bazy danych Strojenie bazy danych Transakcje Małgorzata Krętowska e-mail:

Bardziej szczegółowo

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

Rozdział 17. Zarządzanie współbieżnością zadania Rozdział 17. Zarządzanie współbieżnością zadania Transakcja DML 1. Uruchom narzędzie Oracle SQL Developer i przyłącz się do bazy danych. Następnie rozpocznij nową transakcję, zmieniając pracownikowi o

Bardziej szczegółowo

Wykład 8. SQL praca z tabelami 5

Wykład 8. SQL praca z tabelami 5 Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu

Bardziej szczegółowo

Ćwiczenie 9 współbieŝność

Ćwiczenie 9 współbieŝność Bazy Danych Ćwiczenie 9 współbieŝność Zarządzanie współbieŝnością Ćwiczenie 9 współbieŝność Niniejsze ćwiczenie zaprezentuje zagadnienia związane z problemami wynikającymi ze współbieŝnego dostępu uŝytkowników

Bardziej szczegółowo

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

Systemy operacyjne. wykład 11- Zakleszczenia. dr Marcin Ziółkowski. Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie Systemy operacyjne wykład 11- Zakleszczenia dr Marcin Ziółkowski Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie 17grudnia2015r. POJĘCIE ZAKLESZCZENIA Zakleszczenie to zbiór

Bardziej szczegółowo

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

Porządek dostępu do zasobu: procesory obszary pamięci cykle procesora pliki urządzenia we/wy ZAKLESZCZENIA w SO brak środków zapobiegania zakleszczeniom Zamówienia na zasoby => przydział dowolnego egzemplarza danego typu Zasoby w systemie typy; identyczne egzemplarze procesory obszary pamięci

Bardziej szczegółowo

Transakcje Wykład z bazy danych dla studen

Transakcje Wykład z bazy danych dla studen Transakcje Wykład z bazy danych dla studentów matematyki 19 kwietnia 2015 Transakcje Jedno z podstawowych pojęć współczesnych systemów baz danych. Umożliwiaja współbieżny dostęp do baz danych dostarczajac

Bardziej szczegółowo

Internetowe bazy danych

Internetowe bazy danych Wyższa Szkoła Technologii Teleinformatycznych w Świdnicy Internetowe bazy danych wykład 3 dr inż. Jacek Mazurkiewicz e-mail: Jacek.Mazurkiewicz@pwr.wroc.pl Typy tabel MySQL domyślny MyISAM inne możliwe:

Bardziej szczegółowo

Dazy Banych. Michał Rusnarczyk

Dazy Banych. Michał Rusnarczyk Dazy Banych Michał Rusnarczyk Encją słabą (ang. weak entities) nazywamy taką encję, której istnienie zależy od istnienia innej encji (jej właściciela). Na przykład: istnienie jednostki Rodzaje specjalizacji:

Bardziej szczegółowo

Bazy danych 9. Klucze obce Transakcje

Bazy danych 9. Klucze obce Transakcje Bazy danych 9. Klucze obce Transakcje P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2007/08 Dygresja: Metody przechowywania tabel w MySQL Tabele w MySQL moga być przechowywane na kilka

Bardziej szczegółowo

Bazy danych 9. Klucze obce Transakcje. P. F. Góra

Bazy danych 9. Klucze obce Transakcje. P. F. Góra Bazy danych 9. Klucze obce Transakcje P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2009 Dygresja: Metody przechowywania tabel w MySQL Tabele w MySQL moga być przechowywane na kilka sposobów. Sposób

Bardziej szczegółowo

OLTP Przetwarzanie Transakcyjne

OLTP Przetwarzanie Transakcyjne ZTB: OLTP Przetwarzanie Transakcyjne 1 Zaawansowane Technologie Bazodanowe Wykład p.t. OLTP Przetwarzanie Transakcyjne ZTB: OLTP Przetwarzanie Transakcyjne 2 Pojęcie transakcji w bazach danych Transakcje

Bardziej szczegółowo

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)

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) PRZYKŁADOWE PYTANIA NA EGZAMIN Z PRZEDMIOTU PODTAWY BAZ DANYCH 2005/2006 CZĘŚĆ 2-1- 12. Które z harmonogramów transakcji są szeregowalne? a) (a1) (a2) (a3) (a4) 1. READ(X) 1. READ(X) 1. READ(X) 1. READ(X)

Bardziej szczegółowo

Rozproszone i obiektowe systemy baz danych

Rozproszone i obiektowe systemy baz danych Rozproszone i obiektowe systemy baz danych Dr inż. Robert Wójcik Wykład 7. Transakcje i zapytania rozproszone 7.1. Transakcje rozproszone 7.2. Zapytania rozproszone 7.1. Transakcje rozproszone W systemach

Bardziej szczegółowo

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

PODSTAWY BAZ DANYCH. 11. Transakcje. 2009/ Notatki do wykładu Podstawy baz danych PODSTAWY BAZ DANYCH 11. Transakcje 1 Zbiór cech transakcji Transakcja jest to zespół operacji na bazie danych (INSERT, UPDATE, DELETE) charakteryzujący się następującymi własnościami: Niepodzielność (Atomicity)

Bardziej szczegółowo

Ćwiczenie 3. Współbieżność i transakcje

Ćwiczenie 3. Współbieżność i transakcje Ćwiczenie 3. Współbieżność i transakcje 1. Uruchomienie/sprawdzenie środowiska do ćwiczeń Czas trwania: 10 minut Dwiczenie będzie realizowane na wirtualnej maszynie, na której został zainstalowany system

Bardziej szczegółowo

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Przetwarzanie transakcyjne

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Przetwarzanie transakcyjne Przetwarzanie transakcyjne Wprowadzenie (1) Baza danych jest abstrakcyjnym odzwierciedleniem wybranego fragmentu rzeczywistości (ang. miniworld) Baza danych jest spójna jeżeli jej stan odpowiada stanowi

Bardziej szczegółowo

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

Bazy danych 6a. Transakcje. P. F. Góra Bazy danych 6a. Transakcje P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2018 Transakcje Pojedynczy użytkownik ochrona szczególnie wrażliwych fragmentów. Transakcja wykonuje się albo w całości, albo

Bardziej szczegółowo

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

Wykłady z przedmiotu Podstawy baz danych Transakcje dr hab. prof. nadzw. Tadeusz Antczak. Transakcje Transakcje Pojęcie transakcji Pojęcie transakcji stało się centralnym elementem w wielu współczesnych zastosowaniach baz danych. Jest kluczowym pojęciem pozwalającym zrozumieć zarówno kontrolę wielodostępu,

Bardziej szczegółowo

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze Funkcje użytkownika Tworzenie funkcji Usuwanie funkcji Procedury składowane Tworzenie procedur składowanych Usuwanie procedur składowanych Wyzwalacze Wyzwalacze a ograniczenia i procedury składowane Tworzenie

Bardziej szczegółowo

Microsoft SQL Server Podstawy T-SQL

Microsoft SQL Server Podstawy T-SQL Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania

Bardziej szczegółowo

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

UPDATE konta /* dodaj do konta B kwotę N */ UPDATE konta /* odejmij kwotę N z konta A */ WHERE id_konta = B; SET stan = stan + N Definicja transakcji 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 Stan spójny bazy danych Stan spójny

Bardziej szczegółowo

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

Informatyka (7-8) dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro Informatyka (7-8) dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro katpalik@pg.gda.pl katarzyna.palikowska@wilis.pg.gda.pl Powtórzenie Tabela, rekord, krotka, wiersz Atrybut, kolumna,

Bardziej szczegółowo

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Wprowadzenie do projektowania i wykorzystania baz danych Relacje Wprowadzenie do projektowania i wykorzystania baz danych Relacje Katarzyna Klessa Dygresja nt. operatorów SELECT 2^2 SELECT 2^30 SELECT 50^50 2 Dygresja nt. operatorów SELECT 2^30 --Bitwise exclusive OR

Bardziej szczegółowo

Transakcje jednocześnie ACID

Transakcje jednocześnie ACID Transakcje Transakcja to zbiór operacji (u nas - instrukcji języka SQL), które mogą być wykonane jedynie wszystkie lub żadna. Nazwa takiego ciągu instrukcji pochodzi od operacji bankowych - przelew musi

Bardziej szczegółowo

SQL Server. Odtwarzanie baz danych.

SQL Server. Odtwarzanie baz danych. SQL Server. Odtwarzanie baz danych. Utwórz bazę danych CW. Utwórz w niej tabelę T1(p1 INT PRIMARY KEY, p2 INT) i wpisz wiersz (1,100). Sprawdź ścieżkę dostępu do plików bazy (np. we właściwościach bazy

Bardziej szczegółowo

Bazy danych. Zasady konstrukcji baz danych

Bazy danych. Zasady konstrukcji baz danych Bazy danych Zasady konstrukcji baz danych Diagram związków encji Cel: Opracowanie modelu logicznego danych Diagram związków encji [ang. Entity-Relationship diagram]: zapewnia efektywne operacje na danych

Bardziej szczegółowo

Paweł Rajba

Paweł Rajba Paweł Rajba pawel@cs.uni.wroc.pl http://www.itcourses.eu/ Transakcje i blokady Wprowadzenie do transakcji, rodzaje transakcji Punkty zapisu, błędy w transakcjach Zagnieżdżanie, zabronione instrukcje Używanie

Bardziej szczegółowo

J. Ułasiewicz Programowanie aplikacji współbieżnych 1

J. Ułasiewicz Programowanie aplikacji współbieżnych 1 J. Ułasiewicz Programowanie aplikacji współbieżnych 1 1 1.1 Prosty przykład zakleszczenia (ang. Mexican standoff) W systemach w których wykonywane jest wiele współbieżnych procesów które operują na wspólnych

Bardziej szczegółowo

UNIKANIE IMPASÓW W SYSTEMACH PROCESÓW WSPÓŁBIEŻNYCH

UNIKANIE IMPASÓW W SYSTEMACH PROCESÓW WSPÓŁBIEŻNYCH UNIKANIE IMPASÓW W SYSTEMACH PROCESÓW WSPÓŁBIEŻNYCH Robert Wójcik Instytut Cybernetyki Technicznej Politechniki Wrocławskiej 1. Impasy w systemach procesów współbieżnych 2. Klasyczne algorytmy unikania

Bardziej szczegółowo

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz Wyzwalacze Wyzwalacze są specjalnymi procedurami składowanymi, uruchamianymi automatycznie w następstwie zaistnienia określonego typu zdarzenia. Ich główne zadanie polega na wymuszaniu integralności danych

Bardziej szczegółowo

Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski. Poznań, 30.09.2015

Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski. Poznań, 30.09.2015 Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski Poznań, 30.09.2015 Plan Geneza Architektura Cechy Instalacja Standard SQL Transakcje i współbieżność Indeksy Administracja Splice Machince vs.

Bardziej szczegółowo

Bazy danych Transakcje

Bazy danych Transakcje Wstp Pojcia podstawowe: Transakcja - sekwencja (uporzdkowany zbiór) logicznie powizanych operacji na bazie danych, która przeprowadza baz danych z jednego stanu spójnego w inny stan spójny. W!a"no"ci transakcji:

Bardziej szczegółowo

Bazy danych 7. Klucze obce Transakcje. P. F. Góra

Bazy danych 7. Klucze obce Transakcje. P. F. Góra Bazy danych 7. Klucze obce Transakcje P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2011 Dygresja: Metody przechowywania tabel w MySQL Tabele w MySQL moga być przechowywane na kilka sposobów. Sposób

Bardziej szczegółowo

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

Programowanie współbieżne Wykład 7. Iwona Kochaoska Programowanie współbieżne Wykład 7 Iwona Kochaoska Poprawnośd programów współbieżnych Właściwości związane z poprawnością programu współbieżnego: Właściwośd żywotności - program współbieżny jest żywotny,

Bardziej szczegółowo

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, 2017 Spis treści O autorze 9 Wprowadzenie 11 Lekcja 1. Zrozumieć SQL 15 Podstawy baz danych 15 Język SQL

Bardziej szczegółowo

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota Laboratorium nr 3 1 Bazy Danych Instrukcja laboratoryjna Temat: Wprowadzenie do języka SQL, tworzenie, modyfikacja, wypełnianie tabel 3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota 1)

Bardziej szczegółowo

Zarządzanie obiektami bazy danych Oracle11g

Zarządzanie obiektami bazy danych Oracle11g Zarządzanie obiektami bazy danych Oracle11g Wstęp Obiekty to struktury przechowujące, porządkujące lub operujące na danych takie jak: Tabele Więzy integralności Indeksy Widoki Sekwencje Procedury Linki

Bardziej szczegółowo

Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie.

Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie. Temat: Wyzwalacze (triggery). Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie. W poniższym przykładzie definiujemy tablicę a następnie trigger

Bardziej szczegółowo

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, 2016 Spis treści Wprowadzenie Podziękowania xiii xvii 1 Podstawy zapytań i programowania T-SQL 1 Podstawy

Bardziej szczegółowo

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

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście. Rodzaje triggerów Triggery DML na tabelach INSERT, UPDATE, DELETE Triggery na widokach INSTEAD OF Triggery DDL CREATE, ALTER, DROP Triggery na bazie danych SERVERERROR, LOGON, LOGOFF, STARTUP, SHUTDOWN

Bardziej szczegółowo

DECLARE VARIABLE zmienna1 typ danych; BEGIN

DECLARE VARIABLE zmienna1 typ danych; BEGIN Procedury zapamiętane w Interbase - samodzielne programy napisane w specjalnym języku (właściwym dla serwera baz danych Interbase), który umożliwia tworzenie zapytań, pętli, instrukcji warunkowych itp.;

Bardziej szczegółowo

Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne

Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne Synchronizacja procesów Przeplot Przeplot wątków współbieżnych Cel i metody synchronizacji procesów Problem sekcji krytycznej Semafory Blokady 3.1 3.3 Wątki współbieżne Cel i metody synchronizacji procesów

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 7 (24.01.2011) dr inż. Jarosław Forenc Rok akademicki

Bardziej szczegółowo

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

Podstawy teoretyczne baz danych. Recovery Transakcyjne odtwarzanie bazy danych po awarii Podstawy teoretyczne baz danych Recovery Transakcyjne odtwarzanie bazy danych po awarii Cel odtwarzania Podstawowym celem mechanizmów transakcyjnego odtwarzania bazy danych po awarii jest odtworzenie spójnego

Bardziej szczegółowo

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

K1A_W11, K1A_W18. Egzamin. wykonanie ćwiczenia lab., sprawdzian po zakończeniu ćwiczeń, egzamin, K1A_W11, K1A_W18 KARTA PRZEDMIOTU (pieczęć wydziału) KARTA PRZEDMIOTU 1. Nazwa przedmiotu: BAZY DANYCH 2. Kod przedmiotu: 3. Karta przedmiotu ważna od roku akademickiego: 2014/2015 4. Forma kształcenia: studia pierwszego stopnia 5. Forma

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

Bazy danych - Materiały do laboratoriów VIII

Bazy danych - Materiały do laboratoriów VIII Bazy danych - Materiały do laboratoriów VIII dr inż. Olga Siedlecka-Lamch Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska 23 kwietnia 2011 roku Polecenie COMMIT i ROLLBACK Polecenie

Bardziej szczegółowo

Przykładowe rozwiązania

Przykładowe rozwiązania Przykładowe rozwiązania Poniższy dokument zawiera przykładowe rozwiązania zadań z I etapu I edycji konkursu (2014 r.). Rozwiązania w formie takiej jak przedstawiona niżej uzyskałyby pełną liczbę punktów

Bardziej szczegółowo

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15 T-SQL dla każdego / Alison Balter. Gliwice, cop. 2016 Spis treści O autorce 11 Dedykacja 12 Podziękowania 12 Wstęp 15 Godzina 1. Bazy danych podstawowe informacje 17 Czym jest baza danych? 17 Czym jest

Bardziej szczegółowo

Wyzwalacze (triggery) Przykład

Wyzwalacze (triggery) Przykład Wyzwalacze (triggery) Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie. W poniższym przykładzie definiujemy tablicę, a następnie trigger związany

Bardziej szczegółowo

1 Instalowanie i uaktualnianie serwera SQL Server 2005... 1

1 Instalowanie i uaktualnianie serwera SQL Server 2005... 1 Spis treści Przedmowa... ix Podziękowania... x Wstęp... xiii Historia serii Inside Microsoft SQL Server... xiii 1 Instalowanie i uaktualnianie serwera SQL Server 2005... 1 Wymagania SQL Server 2005...

Bardziej szczegółowo

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , , Celem ćwiczeń jest zaprojektowanie oraz utworzenie na serwerze bazy danych przechowującej informacje na temat danych kontaktowych. Celem jest również zapoznanie z podstawowymi zapytaniami języka SQL służącymi

Bardziej szczegółowo

Transakcyjne przetwarzanie danych

Transakcyjne przetwarzanie danych Do tej pory jedynie odczytywaliśmy zapisane w bazach informacje. W tym odcinku nauczysz się wstawiać, usuwać i modyfikować dane. Dowiesz się również, czym jest transakcja, blokada i na czym polega transakcyjne

Bardziej szczegółowo

w wersji Comarch ERP XL Zmiany techniczne w wersji

w wersji Comarch ERP XL Zmiany techniczne w wersji Zmiany techniczne wprowadzone w wersji 2013.3 1 Copyright 2013 COMARCH Wszelkie prawa zastrzeżone Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest

Bardziej szczegółowo

Wzorce dystrybucji i wspólbieżności autonomicznej

Wzorce dystrybucji i wspólbieżności autonomicznej Wzorce dystrybucji i wspólbieżności autonomicznej 1. Wzorce dystrybucji, fasada zdalna (Remote Facade), obiekt transfery danych (Data Transfer Object), 2. Wzorce współbieżności autonomicznej, blokada optymistyczna

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 6 Wyzwalacze Wprowadzenie Tworzenie wyzwalacza Wyzwalacze typu,,po'' Wyzwalacze typu,,zamiast''

Bardziej szczegółowo

Typy tabel serwera MySQL

Typy tabel serwera MySQL Typy tabel serwera MySQL Kopie zapasowe baz danych Zabezpieczanie serwera MySQL Zakładanie konta użytkownika z określonymi uprawnieniami Zarządzanie kontem i bazą danych Kilka kolejnych informacji na temat

Bardziej szczegółowo

E.14 Bazy Danych cz. 15 SQL Transakcyjne przetwarzanie danych

E.14 Bazy Danych cz. 15 SQL Transakcyjne przetwarzanie danych Transakcje Przetwarzanie transakcyjne Automatyczne zatwierdzanie transakcji Rozpoczynanie transakcji Zatwierdzanie transakcji Wycofywanie transakcji Punkty zachowania Poziomy izolowania transakcji Blokowanie

Bardziej szczegółowo

PODSTAWY BAZ DANYCH Wykład 6 4. Metody Implementacji Baz Danych

PODSTAWY BAZ DANYCH Wykład 6 4. Metody Implementacji Baz Danych PODSTAWY BAZ DANYCH Wykład 6 4. Metody Implementacji Baz Danych 2005/2006 Wykład "Podstawy baz danych" 1 Statyczny model pamiętania bazy danych 1. Dane przechowywane są w pamięci zewnętrznej podzielonej

Bardziej szczegółowo

Współbieżność w środowisku Java

Współbieżność w środowisku Java Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych

Bardziej szczegółowo

Spacery losowe generowanie realizacji procesu losowego

Spacery losowe generowanie realizacji procesu losowego Spacery losowe generowanie realizacji procesu losowego Michał Krzemiński Streszczenie Omówimy metodę generowania trajektorii spacerów losowych (błądzenia losowego), tj. szczególnych procesów Markowa z

Bardziej szczegółowo