TECHNIKI STEROWANIA WSPÓŁBIEŻNOŚCIĄ. I. Wybrane problemy współbieżności. Utracona aktualizacja (lost update)
|
|
- Piotr Górski
- 9 lat temu
- Przeglądów:
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ą Techniki wielowersyjne multiversion concurrency control. Technika wielowersyjna oparta na znacznikach czasu Dla każdej wersji X i elementu X przechowywane
Bardziej szczegółowoBazy 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ółowoBazy 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ółowo1 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ółowoprzykł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ółowo070 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ółowoUstawienie 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ółowoPlan 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ółowoSprawdzenie 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ółowoBazy 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ółowoWielowersyjne 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ółowoAlgorytmy 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ółowoZarzą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ółowoPrzechowywanie 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ółowoTransakcje. (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ółowoBAZY 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ółowoTadeusz 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ółowoPlan ć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ółowoAlgorytmy 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ółowoWł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ółowoIzolacje 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ółowoBazy 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ółowoAdministracja 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ółowoWprowadzenie 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ółowoWykł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ółowoRozdział 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ółowoPlan ć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ółowoTadeusz 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ółowoWykł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ółowoBlaski 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ółowoPODSTAWY 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ółowoOracle 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ółowoWprowadzenie (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ółowoWykł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ółowoTransakcja 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ółowoBazy 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ółowoBazy 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ółowoBazy 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ółowoRozdział 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ółowoWykł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ść
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ółowoSystemy 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ółowoPorzą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ółowoTransakcje 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ółowoInternetowe 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ółowoDazy 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ółowoBazy 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ółowoBazy 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ółowoOLTP 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ółowo12. 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ółowoRozproszone 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ółowoPODSTAWY 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 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ółowoINFORMATYKA 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ółowoBazy 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ółowoWykł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ółowoE.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ółowoMicrosoft 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ółowoUPDATE 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ółowoInformatyka (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ółowoWprowadzenie 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ółowoTransakcje 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ółowoSQL 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ółowoBazy 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ółowoPaweł 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ółowoJ. 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ółowoUNIKANIE 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ółowoWyzwalacze. 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ółowoIwona 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ółowoBazy 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ółowoBazy 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ółowoProgramowanie 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ółowoSQL 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ółowo3 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ółowoZarzą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ółowoTrigger 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ółowoPodstawy 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ółowoInstrukcja 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ółowoDECLARE 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ółowoPrzeplot. 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ółowodr 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ółowoPodstawy 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ółowoK1A_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ółowoSystemy 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ółowoBazy 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ółowoPrzykł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ółowoT-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ółowoWyzwalacze (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ółowo1 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ółowokoledzy, 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ółowoTransakcyjne 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ółowow 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ółowoWzorce 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ółowoAdministracja 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ółowoTypy 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ółowoE.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ółowoPODSTAWY 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ółowoWspół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ółowoSpacery 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