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

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

Download "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"

Transkrypt

1 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 spójny Stan spójny bazy danych Stan spójny bazy danych S 1 Transakcja S 2 t1 t2 Czas 149

2 Zarządzanie współbieżnością transakcji Pojęcia podstawowe Stan spójny bazy danych to stan w którym wszystkie ograniczenia integralności wynikające ze schematu bazy danych oraz inne ograniczenia są spełnione. Przykład 1: Transakcja przelewu kwoty N z konta A na konto B begin UPDATE konta /* odejmij kwotę N z konta A */ SET stan = stan N WHERE id_konta = A; UPDATE konta /* dodaj do konta B kwotę N */ SET stan = stan + N WHERE id_konta = B; COMMIT; end 150

3 Zarządzanie współbieżnością transakcji Transakcja Operacje dostępu do danych, które może zawierać transakcja są następujące: read(x) czyta daną jednostkową X pamiętaną w bazie danych i podstawia ją pod zmienną w programie write(x) zapisuje wartość zmiennej X programu do jednostki danych X w bazie danych Wykonanie polecenia read (X) składa się z następujących kroków: Znajdź adres bloku dyskowego, który zawiera jednostkę X; Przekopiuj zawartość tego bloku do bufora w pamięci głównej (jeśli ten blok się tam jeszcze nie znajduje); Przekopiuj jednostkę X z bufora do zmiennej programowej X. 151

4 Zarządzanie współbieżnością transakcji Transakcja cd. Wykonanie polecenia write (X) składa się z następujących kroków: Znajdź adres bloku dyskowego, który zawiera jednostkę X; Przekopiuj zawartość tego bloku do bufora w pamięci głównej (jeśli ten blok się tam jeszcze nie znajduje); Przepisz jednostkę X ze zmiennej programowej X do właściwej lokalizacji w buforze; Zapisz na dysk uaktualniony blok z bufora (albo w trybie natychmiastowym albo z opóźnieniem) Przykład 1: T 1 : read(x); T 2 : read(x); X := X - N; X := X + M; write(x); write(x); read(y); Y := Y + N; write(y); 152

5 Zarządzanie współbieżnością transakcji Problem Współbieżne wykonywanie transakcji (w systemie wielozadaniowym z podziałem czasu procesora) może być przyczyną niespójności bazy danych Dlaczego zarządzanie współbieżnością (synchronizacja) transakcji jest konieczne? Przykład 2: Baza danych systemu rezerwacji lotniczej Transakcje T 1 i T 2 z Przykładu 1 są wykonywane współbieżnie w tym samym przedziale czasu i zakładamy, że ich operacje zostały rozdzielone w wyniku zastosowania algorytmu RR przydziału procesora 153

6 Zarządzanie współbieżnością transakcji Komentarz: 154

7 Zarządzanie współbieżnością transakcji The Lost Update Problem: T 1 : T 2 : read(x); X := X - N; time read(x); X := X + M; write(x); read(y); write(x); Y := Y + N; write(y); Czy wartość X jest poprawna? Sprawdź dla X = 80, N = 5, M =

8 Zarządzanie współbieżnością transakcji The Temporary Update (Dirty Read) Problem: Jedna z transakcji aktualizuje stan bazy danych poczym pojawia się błąd w jej wykonaniu (ang. fails) T 1 : T 2 : read(x); X := X - N; time write(x); read(y); read(x); X := X + M; write(x); dirty data Błąd w wykonaniu T 1 i wartość X musi być zmieniona na poprzednią starą wartość, a w tym czasie T 2 przeczytała tymczasową niepoprawną wartość X 156

9 Zarządzanie współbieżnością transakcji The Incorrect Summary Problem (Odczyt niepowtarzalny): Jeśli jedna transakcja oblicza funkcję agregującą (sumującą) na pewnej liczbie rekordów, podczas gdy inna transakcja wykonuje operacje aktualizacji tych samych rekordów, to funkcja sumująca może obliczyć pewne wartości zanim zostaną one uaktualnione a inne po ich aktualizacji T 1 : T 3 : read(x); X := X - N; write(x); read(y); Y := Y + N; write(y); sum := 0; read(a); sum := sum + A; read(x); sum := sum + X; read(y); sum := sum + Y; Błąd 157

10 Zarządzanie współbieżnością transakcji Komentarz: 158

11 Zarządzanie współbieżnością transakcji Dlaczego konieczne jest odtwarzanie stanu bazy danych sprzed awarii (ang. recovery)? Gdy transakcja jest zgłaszana do systemu, to SZBD jest odpowiedzialny za to aby: Wszystkie operacje transakcji zakończyły się sukcesem i ich wyniki zostały na stałe zapisane w bazie danych, lub Transakcja nie miała wpływu na bazę danych lub inne transakcje SZBD nie może dopuścić aby pewne operacje transakcji na bazie danych zostały wykonane a inne nie. Taka sytuacja może się zdarzyć przy awarii systemu. Wnioski wynikające między innymi z przykładów przedstawionych wcześniej!!! 159

12 Zarządzanie współbieżnością transakcji Typy awarii 1. Załamanie się systemu wystąpił błąd programowy lub sprzętowy podczas wykonywania transakcji 2. Błąd transakcji lub błąd systemowy pewne operacje transakcji mogą powodować błąd systemowy (np. dzielenie przez 0) lub wykonanie transakcji zostaje przerwane (np. kill) 3. Błąd lokalny wykryty przez transakcję podczas wykonywania transakcji wystąpiły pewne warunki, które muszą powodować jej wycofanie 4. Egzekwowanie reguł synchronizacyjnych odpowiedni moduł SZBD może zdecydować o usunięciu transakcji i jej późniejszym restartowaniu 5. Błąd odczytu/zapisu z dysku Aby było możliwe odtworzenie stanu bazy danych sprzed awarii, w przypadku wystąpienia błędów 1-4, odpowiednie moduły SZBD muszą utrzymywać określone informacje 160

13 Zarządzanie współbieżnością transakcji Koncepcja transakcji: Klasyfikacja Transakcje zapytaniowe (read only) Transakcje aktualizujące (read, write) Transakcja jest atomową jednostką pracy systemu, która może albo być wykonana w całości, albo nie wykonana w ogóle. Podstawowe operacje składowe transakcji Begin_transaction Read / Write End_transaction Commit Rollback (Abort) 161

14 Zarządzanie współbieżnością transakcji Podstawowe operacje składowe transakcji - komentarz 162

15 Zarządzanie współbieżnością transakcji Przykład 3 UPDATE Pracownicy Begin_transaction; SET płaca = 1.15 x płaca read (A); WHERE staż >5... COMMIT; write (A); Commit; Dodatkowe operacje składowe transakcji UNDO REDO Konieczne w przypadku niektórych mechanizmów odtwarzania po awarii 163

16 Zarządzanie współbieżnością transakcji Diagram stanów transakcji Begin transaction ACTIVE Read / Write End_transaction PARTIALLY COMMITTED Commit COMMITTED Abort Abort FAILED TERMINATED 164

17 Zarządzanie współbieżnością transakcji Diagram stanów transakcji - komentarz 165

18 Zarządzanie współbieżnością transakcji Dziennik systemowy The System Log Cel: możliwość odtworzenia stanu bazy danych sprzed wystąpienia błędu transakcji Jak: śledzenie wszystkich operacji transakcji, które wpływają na dane w bazie Gdzie: log jest utrzymywany na dysku tylko awaria dysku uniemożliwia odtworzenie stanu systemu sprzed awarii Zawartość Log: 1. [start_transaction, T] 2. [write, T, X, old_value, new_value] 3. [read, T, X] 4. [commit, T] 5. [abort, T] (T jest to unikalny identyfikator transakcji nadawany przez system) 166

19 Zarządzanie współbieżnością transakcji Zatwierdzenie transakcji Transakcja T osiąga punkt zatwierdzenia (ang. commit point) gdy jej wszystkie operacje, które wykonywały operacje dostępu do bazy danych kończą się sukcesem i efekt jej działania jest na stałe zapamiętany w bazie danych oraz odnotowywany w dzienniku systemowym transakcja zapisuje wówczas w logu [commit, T] Problemy Awaria systemu: Które transakcje powinny być wycofane? Obsługa dziennika systemowego problem zapisu na dysk kolejnych porcji logu po ich aktualizacji w pamięci buforowej: egzekwowanie zapisu jeszcze przed zatwierdzeniem transakcji (ang. force writing) 167

20 Zarządzanie współbieżnością transakcji Punkty kontrolne w dzienniku systemowym Checkpoints in the System Log Punkty kontrolne specjalny rodzaj zapisu w logu Rekord zawierający punkt kontrolny jest zapisywany w logu okresowo i wiąże się z zapisywaniem na dysku efektów wszystkich operacji write zatwierdzonych transakcji Interwały czasowe administrator pomiędzy punktami kontrolnymi określa SZBD W punkcie kontrolnym podejmowane są następujące akcje: 1. Czasowe zawieszenie wykonywanych transakcji 2. Wymuszenie zapisu wszystkich operacji aktualizacyjnych z buforów w pamięci operacyjnej na dysk 3. Zapisanie w logu rekordu [checkpoint] i wymuszenie zapisu logu na dysk 4. Restartowanie transakcji 168

21 Własności ACID transakcji Każda transakcja musi posiadać cztery własności: Atomicity (Atomowość) zbiór operacji wchodzących w skład transakcji jest niepodzielny; albo zostaną wykonane wszystkie operacje transakcji albo żadna Consistency (Spójność) poprawne wykonanie transakcji przeprowadza bazę danych z jednego stanu spójnego do innego stanu spójnego Isolation (Izolacja) transakcje są od siebie logicznie odseparowane; mogą wzajemnie oddziaływać na siebie ale tylko w taki sposób jak gdyby były wykonywanie sekwencyjnie Durability (Trwałość) wyniki zatwierdzonych transakcji nie mogą zostać utracone, niezależnie od awarii systemu 169

22 Własności ACID transakcji Jakie moduły SZBD odpowiadają za egzekwowanie własności ACID? Komentarz: 170

23 Uszeregowanie transakcji Sposób wykonania operacji z różnych transakcji wykonywanych w systemie wielozadaniowym formuje tzw. uszeregowanie (realizację) (uporządkowanie, historię) transakcji Realizacja S transakcji T 1,..., T n jest pewnym uporządkowaniem operacji transakcji, przy czym dla każdej T i, która uczestniczy w S, jej operacje w S muszą występować w takim porządku w jakim występują w T i. Operacje transakcji T j mogą być przeplecione z operacjami transakcji T i z realizacji S Będziemy dalej rozważać następujące operacje: read r write w commit c abort a 171

24 Uszeregowanie transakcji Przykład 4 T 1 : T 2 : read(x); X := X - N; time read(x); X := X + M; write(x); read(y); write(x); Y := Y + N; write(y); Realizacja S a : r 1 (X); r 2 (X); w 1 (X); r 1 (Y); w 2 (X); c 2 ; w 1 (Y); c 1 ; 172

25 Uszeregowanie transakcji Przykład 4 cd. read(x); X := X - N; Time write(x); read(y); T 1 : T 2 : read(x); X := X + M; write(x); Realizacja S b : r 1 (X); w 1 (X); r 2 (X); w 2 (X); c 2 ; r 1 (Y); a 1 ; (Przy założeniu, że T 1 będzie wycofana po wykonaniu read(y) 173

26 Uszeregowanie transakcji Dwie operacje w realizacji S są konfliktowe jeśli należą do różnych transakcji oraz wykonują operacje dostępu do tej samej danej X i jedną z tych operacji jest operacja zapisu (write) Dwie transakcje T i i T j są konfliktowe jeżeli zawierają wzajemnie konfliktowe operacje Które operacje w realizacjach S a i S b są konfliktowe? Realizacja S transakcji T 1,..., T n jest kompletna (ang. complete schedule) jeśli spełnia następujące warunki: 1. Operacje w S są to te same operacje co występujące w T 1,..., T n ; 2. Dla każdej pary operacji w T i ich uporządkowanie w S jest takie samo jak T i ; 3. Dla każdych dwóch konfliktowych operacji, określone jest ich uporządkowanie. 174

27 Uszeregowanie transakcji Wszystkie transakcje w S muszą zawierać commit lub abort, tak więc kompletna realizacja nie dotyczy transakcji aktywnych Realizacja zawierająca tylko operacje zatwierdzonych transakcji jest nazywana zaakceptowaną projekcją C(S) realizacji S Realizacja S jest odtwarzalna (ang. recoverable) jeśli żadna transakcja T w S nie wykonuje operacji commit, dopóki wszystkie transakcje T, które wykonują operację zapisu danych, które transakcja T odczytuje, nie zostaną zatwierdzone (wykonają commit). Transakcja T czyta z transakcji T, jeśli pewna dana X jest najpierw zapisywana przez T a dopiero później czytana przez transakcję T. Czy realizacja S a z przykładu 4 jest odtwarzalna? 175

28 Uszeregowanie transakcji Realizacje odtwarzalne cd. Czy realizacja S c i S d są odtwarzalne? S c : r 1 (X); w 1 (X); r 2 (X); r 1 (Y); w 2 (X); c 2 ; a 1 ; S d : r 1 (X); w 1 (X); r 2 (X); r 1 (Y); w 2 (X); w 1 (Y); c 1 ; c 2 ; W realizacji odtwarzalnej nie zatwierdzone transakcje nie muszą być wycofywane 176

29 Uszeregowanie transakcji Sytuacje wyjątkowe kaskadowe wycofywanie (ang. cascading rollback) Nie zatwierdzone transakcje muszą być wycofane ponieważ czytały dane z transakcji, które padły S e : r 1 (X); w 1 (X); r 2 (X); r 1 (Y); w 2 (X); w 1 (X); a 1 ; Kaskadowe wycofywanie może być bardzo czasochłonne Realizacja jest nazywana unikającą kaskadowego wycofywania, jeśli wszystkie transakcje tylko czytają dane, które były pisane przez zatwierdzone transakcje Jak należałoby zmodyfikować realizację S e aby powyższe kryterium było spełnione? 177

30 Uszeregowalność realizacji (ang. Serializability of Schedules) T 1 i T 2 zgłoszone w tym samym czasie, wykonywane sekwencyjnie T 1 T 2 T 1 T 2 read(x); read(x); X := X N; X := X + M write(x) write(x) read(y); read(x); Y := Y + N X := X N; write(y) write(x) read(x); read(y); X := X + M Y := Y + N write(x) write(y) Realizacja A Realizacja B 178

31 Uszeregowalność realizacji transakcji T 1 i T 2 są wykonywane w trybie przeplatanym T 1 T 2 T 1 T 2 read(x); read(x); X := X N; X := X N; read(x); write(x) X := X + M read(x); write(x) X := X + M read(y); write(x) write(x) read(y); Y := Y + N Y := Y + N write(y) write(y) Realizacja C Realizacja D 179

32 Teoria uszeregowalności transakcji Cel: określenie, która realizacja transakcji jest poprawna oraz podanie technik, które dopuszczają tylko realizacje poprawne Realizacje A i B są to realizacje sekwencyjne, natomiast C i D współbieżne Jeżeli transakcje są niezależne, to wszystkie realizacje sekwencyjne są poprawne (ACID) Przykład: rozważmy realizacje A, B, C i D, przy założeniu, że X = 90 i Y = 90 Jaki wynik dają realizacje C i D? Czy są to wyniki poprawne? Dlaczego? 180

33 Teoria uszeregowalności transakcji Zadanie: określenie, które realizacje współbieżne zawsze dają wynik poprawny, a które nie. Realizacja S zbioru n transakcji jest poprawna jeżeli jest ona równoważna jakieś sekwencyjnej realizacji tego zbioru transakcji realizację taką nazywamy realizacją uszeregowalną Podział realizacji współbieżnych: 1. Realizacje równoważne jednej (lub więcej) realizacji sekwencyjnej i w konsekwencji uszeregowalne 2. Realizacje nie równoważne żadnej realizacji sekwencyjnej i w konsekwencji nieuszeregowalne 181

34 Teoria uszeregowalności transakcji Co to znaczy, że realizacje są równoważne? Pojęcie stanu i obrazu bazy danych 1. Stan bazy danych zbiór wartości wszystkich danych w bazie danych 2. Obraz bazy danych widziany przez transakcję T i jest zbiorem wartości odczytywanych przez nią danych Dwie realizacji S 1 i S 2 są stanowo równoważne jeżeli dla dowolnego początkowego stanu bazy danych, stan bazy danych po wykonaniu realizacji S 1 jest identyczny ze stanem po wykonaniu tego zbioru transakcji zgodnie z realizacją S 2. Czy realizacje S 1 i S 2 są stanowo równoważne (sprawdź dla X = 100 i innych wartości) S 1 S 2 read(x); read(x); X := X + 10; X := X * 1.1; write(x); write(x); 182

35 Teoria uszeregowalności transakcji Wniosek: Równoważność stanowa nie jest wystarczająca A więc co? Równoważność konfliktowa Dwie realizacje są konfliktowo równoważne jeśli porządek każdej pary konfliktowych operacji w obu realizacjach jest taki sam. A dokładniej? Mówimy, że dwie realizacje S 1 i S 2 są konfliktowo równoważne, jeżeli dla każdej pary konfliktowych operacji w realizacji S 1, takich, że operacja i (X) operacja j (X) (operacja i (X) poprzedza operacja j (X)), zachodzi również operacja i (X) operacja j (X) w realizacji S

36 Teoria uszeregowalności transakcji Równoważność konfliktowa cd. Jeśli dwie konfliktowe operacje występują w różnym porządku w dwóch różnych realizacjach, to efekt tych realizacji może być różny dla transakcji lub stanu końcowego bazy danych. Przykład: S a : r 1 (X), w 2 (X); S b : w 2 (X), r 1 (X); Czy wartość odczytana przez r 1 (X) w obu realizacjach będzie taka sama? 184

37 Teoria uszeregowalności transakcji Realizacja S jest konfliktowo uszeregowalna, jeśli jest równoważna do pewnej sekwencyjnej realizacji S Możemy zmieniać uporządkowanie nie konfliktowych operacji w S aż otrzymamy równoważną realizację sekwencyjną S. Przykład: Czy realizacja D jest konfliktowo równoważna realizacji A? Dlaczego? Czy realizacja C jest konfliktowo równoważna realizacji A lub B? Dlaczego? 185

38 186

39 Testing for conflict serializability of a schedule (1) Graf uszeregowalności Graf skierowany G = (N,E) - składa się ze zbioru wierzchołków N={T 1...T n } i zbioru skierowanych krawędzi E = {e 1...e m }. Każdej transakcji odpowiada jeden wierzchołek; każda krawędź e i ma postać (T j T k ), 1 j n, 1 k n. Mówimy, że transakcja T j poprzedza T k w realizacji S, co zapisujemy T j T k, jeżeli zawierają odpowiednie operacje konfliktowe, między którymi zachodzi związek poprzedzania T j jest wierzchołkiem początkowym, a T k końcowym dla krawędzi e i, takiej, że jedna z operacji w T j występuje w realizacji S przed pewną operacją konfliktową w T k. Cyklem w grafie skierowanym jest sekwencja krawędzi C = (T j T k ), (T k T p ),...,(T i T j ). 187

40 Testing for conflict serializability of a schedule (2) Algorytm testowania uszeregowalności konfliktowej realizacji S (1) dla każdej T j w S utwórz wierzchołek z etykietą T j w grafie uszeregowalności (2) dla każdego przypadku w S gdy T j wykonuje read(x) po write(x), wykonywanej przez T i, utwórz krawędź (T i T j ) (3) dla każdego przypadku w S gdy T j wykonuje write(x) po read(x), wykonywanej przez T i, utwórz krawędź (T i T j ) (4) dla każdego przypadku w S gdy T j wykonuje write(x) po write(x), wykonywanej przez T i, utwórz krawędź (T i T j ) (5) realizacja S jest uszeregowalna wtedy i tylko wtedy jeśli graf uszeregowalności nie zawiera cykli. Krawędź T i T j (od T i do T j ) oznacza, że transakcja T i musi wystąpić przed transakcją T j w dowolnej realizacji sekwencyjnej, która jest równoważna S, ponieważ dwie konfliktowe operacje występują w realizacji w takim właśnie porządku. 188

41 Testing for conflict serializability of a schedule (3) Jeśli w grafie nie ma cykli, można utworzyć sekwencyjną realizację S równoważną realizacji S, przez uporządkowanie transakcji z S w następujący sposób: dla każdej krawędzi T i T j, T i musi występować przed T j w równoważnej realizacji sekwencyjnej S. Grafy uszeregowalności dla realizacji A, B, C i D T 1 T 2 X Graf uszeregowalności dla realizacji A T 1 T 2 X Graf uszeregowalności dla realizacji B X T T 1 2 X Graf uszeregowalności dla realizacji C (nieuszeregowalny) T T 1 2 X Graf uszeregowalności dla realizacji D (uszeregowalny, równoważny realizacji A) 189

42 Testing for conflict serializability of a schedule (4) Przykład 5 Transaction T 1 Transaction T 2 Transaction T 3 read (X); write (X); read (Y); write (Y); read (Z); read (Y); write (Y); read (X); write (X); read (Y); read (Z); write (Y); write (Z); 190

43 Testing for conflict serializability of a schedule (5) Realizacja E Transaction T 1 Transaction T 2 Transaction T 3 time read (X); write (X); read (Y); write (Y); read (Z); read (Y); write (Y); read (X); read (Y); read (Z); write (Y); write (Z); write (X) 191

44 Testing for conflict serializability of a schedule (6) Realizacja F Transaction T 1 Transaction T 2 Transaction T 3 time read (X); write (X); read (Y); write (Y); read (Z); read (Y); write (Y); read (X); write (X); read (Y); read (Z); write (Y); write (Z); 192

45 Testing for conflict serializability of a schedule (7) Realizacja E jest nieuszeregowalna, ponieważ odpowiadający jej graf zawiera cykle, natomiast F jest uszeregowalna do sekwencji T 3 T 1 T 2. Y T 1 T 2 X Equivalent serial schedules Reason: none Y T 3 Y,Z cycle X(T1 - T2), Y(T2 - T1) cycle X(T1 - T2), YZ(T2 - T3), Y(T3 - T1) Graf dla realizacji E X,Y T 1 T 2 T 1 T 2 Y Y,Z T 3 T 3 Graf dla realizacji F Equivalent serial schedules: T3 - T1 - T2 Equivalent serial schedules: T3 - T1 - T2 T3 - T2 - T1 193

46 Testing for conflict serializability of a schedule (8) Sekwencja: T 3 T 1 T 2 T 1 T 2 T 3 read (X); write (X); read (Y); write (Y); read (Z); read (Y); write (Y); read (X); write (X); read (Y); read (Z); write (Y); write (Z); 194

47 Wykorzystanie uszeregowalności Stwierdzenie, że realizacja S jest konfliktowo uszeregowalna, tzn. S jest konfliktowo równoważne do realizacji sekwencyjnej, jest równoznaczne ze stwierdzeniem, że S jest realizacją poprawną. W praktyce: Ze względu na przeplatane wykonywanie transakcji jest niemożliwe określenie jak w realizacji operacje powinny być uporządkowane, aby zagwarantować uszeregowalność. Transakcje są zgłaszane do systemu w sposób ciągły i nie można określić końca realizacji - teoria uszeregowalności ma zastosowanie tylko dla zatwierdzonych projekcji S. Istnieje jednak szereg metod zarządzania współbieżnością transakcji (synchronizacji transakcji), które gwarantują uszeregowalność 195

48 Algorytmy synchronizacji współbieżnych transakcji (1) Algorytmy synchronizacji współbieżnych transakcji a kryterium uszeregowalności transakcji. 1. algorytmy blokowania dostępu do danych - uszeregowanie transakcji wynika z kolejności uzyskiwanych blokad algorytm blokowania dwufazowego (2PL) 2. algorytmy znaczników czasowych - uszeregowanie transakcji wynika z wartości znaczników czasowych związanych z transakcjami 3. algorytmy optymistyczne - walidacja poprawności uszeregowania 196

49 Algorytmy synchronizacji współbieżnych transakcji (2) Blokada (lock) jest zmienną skojarzoną z jednostką danych w bazie danych, określającą jej status (dostępna/niedostępna) w kontekście operacji, które na tej jednostce danych mogą być wykonane. Blokady binarne: 2 stany: locked/unlocked (1/0), z każdą jednostką danych jest związana inna blokada, jeśli blokada danej X jest równa 1, to dana X jest niedostępna dla operacji transakcji, w przypadku blokad binarnych do transakcji muszą być włączone 2 dodatkowe operacje lock i unlock, transakcja żąda dostępu do danej X wydając operację lock(x), jeśli lock(x)=1 transakcja musi czekać, w przeciwnym wypadku transakcja wykonuje lock(x) := 1 i uzyskuje dostęp do danej X, po zakończeniu operacji na danej transakcja musi wykonać operację unlock(x), ustawiając zmienną blokady lock(x) = 0, a więc X jest dostępne teraz dla innych transakcji. Blokady binarne są najprostszą formą realizacji wzajemnego wykluczania. 197

50 Algorytmy synchronizacji współbieżnych transakcji (3) lock(x): B: if lock(x)=0 (*item is unlocked*) then lock(x):=1 (*lock the item*) else begin wait (until lock(x)=0 and the lock manager wakeups transaction); go to B end; Unlock(X): lock(x):=0 (*unlock the item*) if any transactions are waiting then wakeup one of the waiting transactions; 198

51 Algorytmy synchronizacji współbieżnych transakcji (4) SZBD zawiera moduł zarządzania blokadami i kontroli dostępu do blokad. W przypadku blokad binarnych do zarządzania współbieżnością realizacji transakcji stosuje się następujące reguły. 1. T musi wykonać lock(x) przed wykonaniem read(x) lub write(x) 2. T musi wykonać unlock(x) po wykonaniu wszystkich operacji zapisu i odczytu 3. T nie może wydać lock(x), jeśli już posiada blokadę X Mówimy, że pomiędzy operacjami lock(x) i unlock(x) transakcja utrzymuje blokadę X (hold the lock). Co najwyżej 1 transakcja może utrzymywać blokadę na określonej danej. Informacje o blokadach są utrzymywane w tablicy blokad (lock table): < data_item, lock> 199

52 Algorytmy synchronizacji współbieżnych transakcji (5) Shared and Exclusive lock Blokady wielokrotne (multiple-mode lock) wraz z trzema operacjami: read_lock(x), write_lock(x) i unlock(x) Zmienna blokady lock(x) może przyjmować 3 wartości: read_locked, write_locked, unlocked read_locked jest blokadą współdzieloną, ponieważ inne transakcje też mogą wykonywać operacje odczytu na danej X write_locked jest blokadą na wyłączność (exclusive), ponieważ tylko jedna transakcja może utrzymywać taką blokadę Każda blokada może być opisana rekordem składającym się z 3 pól: <data_item, lock, no_of_reads> 200

53 Algorytmy synchronizacji współbieżnych transakcji (6) read_lock(x): B: if lock (X) = unlocked then begin lock (X) read_locked ; no_of_reads(x) 1 end else if lock(x) = read_locked then no_of_reads(x) no_of_reads(x)+1 else begin wait (until lock(x)= unlocked and the lock manager wakes up the transaction); go to B end; write_lock (X): B: if lock (X) = unlocked then lock (X) write_locked else begin wait (until lock(x) = unlocked and the lock manager wakes up the transaction); go to B end; 201

54 Algorytmy synchronizacji współbieżnych transakcji (7) unlock_item (X): if lock (X) = write_locked then begin lock (X) unlocked; wakeup one of the waiting transactions, if any end else if lock(x) = read_locked then begin no_of_reads(x) no_of_reads(x) - 1; if no_of_reads(x) = 0 then begin lock (X) = unlocked ; wakeup one of the waiting transactions, if any end end; 202

55 Algorytmy synchronizacji współbieżnych transakcji (8) Z wykorzystaniem blokad wielokrotnych system musi gwarantować egzekwowanie następujących reguł: 1. T musi wydać read_lock(x) lub write_lock(x) przed wykonaniem read(x) 2. T musi wydać write_lock(x) przed wykonaniem write(x) 3. T musi wydać unlock(x) po wykonaniu wszystkich operacji read(x) i write(x) 4. T nie może wydać read_lock(x) jeśli przetrzymuje read_lock lub write_lock na danej X. 5. T nie może wydać write_lock(x) jeśli przetrzymuje read_lock lub write_lock na danej X. Komentarz: 203

56 Algorytmy synchronizacji współbieżnych transakcji (9) Dwie blokady są zgodne (ang. compatible), jeżeli mogą być jednocześnie założone na tą samą daną przez dwie różne transakcje w przeciwnym razie mówimy o blokadach niezgodnych Tabela zgodności blokad dla klasycznej metody blokowania blokada żądana blokada ustawiona S X S true false X false false 204

57 Algorytmy synchronizacji współbieżnych transakcji (10) Wykorzystywanie blokad binarnych lub wielokrotnych przez transakcje nie gwarantuje jednak uszeregowalności realizacji, w której uczestniczą transakcje. Dlaczego? Przykład 6: T 1 T 2 read_lock(y); read_lock(x); read(y); read(x); unlock(y); unlock(x); write_lock(x); write_lock(y); read(x); read(y); X:=X+Y: Y:=X+Y; write(x); write(y); unlock(x); unlock(y); 205

58 Algorytmy synchronizacji współbieżnych transakcji (11) Przykład 6 - cd: Wartości początkowe danych: X = 20, Y = 30 Jaka będzie wartość tych danych po wykonaniu realizacji T 1 T 2? Jaka będzie wartość tych danych po wykonaniu realizacji T 2 T 1? 206

59 Algorytmy synchronizacji współbieżnych transakcji (12) Przykład 6 - cd. T 1 T 2 time read_lock(y); read(y); unlock(y); write_lock(x); read(x); X:=X+Y; write(x); unlock(x); read_lock(x); read(x); unlock(x); write_lock(y); read(y) Y:=X+Y; write(y); unlock(y); 207

60 Algorytmy synchronizacji współbieżnych transakcji (13) Przykład 6 - cd: Wartości początkowe danych: X = 20, Y = 30 Jaka będzie wartość tych danych po wykonaniu realizacji T 1, T 2 w sposób przeplatany według rysunku powyżej? Komentarz: 208

61 Algorytmy synchronizacji współbieżnych transakcji (14) Two-Phase Locking (2PL) Transakcja jest wykonywana zgodnie z protokołem 2PL, jeśli wszystkie operacje blokowania read_lock i write_lock poprzedzają pierwszą operację unlock transakcji. Transakcja może być podzielona na 2 fazy; ekspansji (expanding), w której nowa blokada może być wykonana, ale żadna nie może być zwolniona, oraz fazy zwijania (shirnking) podczas której, istniejące blokady mogą być zwalniane, ale żadne nowe nie mogą być przyjęte. Blokady I Faza ekspansji II Faza zwijania 209

62 Algorytmy synchronizacji współbieżnych transakcji (15) Transakcje z przykładu 6 realizowane zgodnie z protokołem 2 PL T 1 T 2 read_lock(y); read(y); write_lock(x); read(y); X:=X+Y; write(x); unlock(y); unlock(x); read_lock(x); wait wait wait wait wait read(x) write_lock(y); read(y); Y:=Y+X; write(y) unlock(x) unlock(y) 210

63 Algorytmy synchronizacji współbieżnych transakcji (16) Komentarz: Odmiany 2PL Algorytm podstawowy: 1. Każda operacja read(x) danej transakcji T musi być poprzedzona operacją read_lock(x) lub write_lock(x). 2. Każda operacja write(x) danej transakcji musi być poprzedzona operacją write_lock(x). 3. Operacje unlock(x) dla danej transakcji T są wykonywane po zakończeniu wszystkich operacji read i write. Algorytm statyczny: (1., 2., 3.) 4. Wszystkie blokady muszą być uzyskane przed rozpoczęciem transakcji (przez predeklarowanie zbioru odczytywanych i modyfikowanych danych). 211

64 Algorytmy synchronizacji współbieżnych transakcji (17) Algorytm restryktywny: (1., 2.) 3. Operacje unlock(x) dla danej transakcji T są wykonywane po operacji commit lub rollback. początek transakcji blokada S + odczyt faza blokowania blokada X + zapis wstępny punkt zatwierdzenia zdjęcie blokady S zapis właściwy + zdjęcie blokady X faza odblokowywania Czas koniec transakcji Komentarz: 212

65 Algorytmy synchronizacji współbieżnych transakcji (18) Hierarchiczna metoda blokowania Problem ziarnistości blokad dobór rozmiaru blokowanej jednostki Komentarz: Koncepcja hierarchicznej struktury jednostek blokowania [J. Gray] baza danych jest widziana jako hierarchia jednostek blokowania zwanych ziarnami. BD Baza danych R 1 R 2... R n Relacje... Krotki Przykładowa hierarchia ziaren 213

66 Algorytmy synchronizacji współbieżnych transakcji (19) Hierarchiczna metoda blokowania cd. W hierarchicznych algorytmach blokowania wyróżnia się dwa rodzaje blokad: podstawowe (klasyczne blokady S oraz X) i intencjonalne Zakładając blokadę podstawową na określonym poziomie hierarchii ziaren blokujemy implicite wszystkie następniki tej jednostki w hierarchii Komentarz: Stosując wyłącznie mechanizm blokad podstawowych i gwarantując nienaruszalność warunku zgodności typów blokad, nie możemy zapewnić, że w przypadku współbieżnego wykonywania transakcji spójność bazy danych nie zostanie naruszona Przykład: 214

67 Algorytmy synchronizacji współbieżnych transakcji (20) Hierarchiczna metoda blokowania cd. W celu zapewnienia poprawności hierarchicznego blokowania danych należy zagwarantować, że po założeniu przez transakcję blokady podstawowej danego wierzchołka R w hierarchii ziaren, żadna inna transakcja nie uzyska zgodnej z nią blokady żadnego wierzchołka będącego poprzednikiem R. Rozwiązanie: blokady intencjonalne założenie blokady intencjonalnej na danym poziomie hierarchii oznacza, że na niższym poziomie jest założona blokada podstawowa Typy blokad intencjonalnych: Intencjonalna blokada współdzielona (IS) Intencjonalna blokada wyłączna (IX) Blokada mieszana (SIX), która jest połączeniem podstawowej blokady współdzielonej i intencjonalnej blokady wyłącznej 215

68 Algorytmy synchronizacji współbieżnych transakcji (21) Hierarchiczna metoda blokowania cd. Typy blokad intencjonalnych - komentarz: 216

69 Algorytmy synchronizacji współbieżnych transakcji (22) Hierarchiczna metoda blokowania cd. Tabela zgodności blokad dla hierarchicznej metody blokowania blokada żądana blokada ustawiona IS IX S SIX X IS true true true true false IX true true false false false S true false true false false SIX true false false false false X false false false false false 217

70 Algorytmy synchronizacji współbieżnych transakcji (23) Algorytm sygnalizacyjny Transakcja T jest wykonywana zgodnie z algorytmem sygnalizacyjnym wtedy, gdy spełnione są następujące warunki: 1. Pierwszym wierzchołkiem, do którego T żąda dostępu jest korzeń drzewa ziaren; 2. Transakcja T może założyć blokadę IS lub S wierzchołka nie będącego korzeniem wtedy i tylko wtedy, gdy blokuje jego poprzednika blokadą typu IS lub IX; 3. Transakcja T może założyć blokadę IX lub X wierzchołka nie będącego korzeniem wtedy i tylko wtedy, gdy blokuje jego poprzednika blokadą typu IX lub SIX; 4. Wszystkie blokady założone przez transakcję T muszą być zdjęte albo po zakończeniu jej wykonywania albo w trakcie jej wykonywania w kolejności odwrotnej do kolejności zakładania blokad (tj. od liści do korzenia drzewa). 218

71 Algorytmy synchronizacji współbieżnych transakcji (24) Algorytm sygnalizacyjny Przykład: abcd ab cd Niech transakcja T 1 odczytuje daną b i zapisuje dane c i d. Współbieżnie z transakcją T 1 są wykonywane transakcje T 2 i T 3, z których pierwsza zamierza odczytać dane a i b, natomiast druga daną c. Jakie blokady (i w jakiej kolejności) muszą założyć te transakcje? Czy będzie możliwa współbieżna realizacja całego zbioru transakcji? Komentarz: a b c d 219

72 Zakleszczenie transakcji (1) Stan zakleszczenia może wystąpić jeśli dwie transakcje oczekują wzajemnie na zwolnienie blokad danych T 1 T 2 read_lock(y); read(y); write_lock(x); wait wait read_lock(x); read(x) write_lock(y); wait wait wait 220

73 Zakleszczenie transakcji (2) Komentarz: X ' ' T T 1 2 Y Problem zakleszczenia - graf oczekiwania Rozwiązaniem tego problemu jest wykorzystanie protokołu zapobiegania zakleszczeniu - takim protokołem jest statyczny 2PL, który wymaga aby każda transakcja zablokowała wszystkie jednostki danych z wyprzedzeniem; jeśli na jakieś danej nie może założyć blokady to żadna z blokad nie może być założona ( wszystko albo nic ); transakcja czeka i po chwili próbuje ponownie. 221

74 Zakleszczenie transakcji (3) Inne protokoły zapobiegania - podejmują decyzję czy transakcja zaangażowana w deadlock powinna czekać, czy być wycofaną. Protokoły te oparte są o technikę znaczników czasowych transakcji TS(T) (ang. transaction timestamp), które są unikalnymi identyfikatorami transakcji. Znaczniki są uporządkowane wg kolejności startowania transakcji, tzn. jeśli T 1 zaczyna się przed T 2 to TS(T 1 )<TS(T 2 ) - starsza transakcja ma mniejszy znacznik czasowy. Algorytmy wykorzystujące znaczniki czasowe transakcji - TS(T), nadawane w momencie przybywania transakcji do systemu: wait-die: Transakcja T i próbuje uzyskać blokadę na danej X, tymczasem dana ta jest już zablokowana przez transakcję T j. Jeżeli TS(T i )<TS(T j ) (T i jest starsza T j ) wtedy transakcja T i będzie czekać na zwolnienie blokady. W przeciwnym wypadku T i będzie wycofana i restartowana z tym samym znacznikiem czasowym. wound-wait: Transakcja T i próbuje uzyskać blokadę na danej X, tymczasem dana ta jest już zablokowana przez transakcję T j. Jeżeli TS(T i )<TS(T j ) (T i jest starsza T j ) wtedy transakcja T j będzie wycofana i restartowana z tym samym znacznikiem czasowym. W przeciwnym wypadku T i będzie czekać na zwolnienie blokady. 222

75 Zakleszczenie transakcji (4) wait-die: if TS(T i )<TS(T j ) (T i is older than T j ) then T i is allowed to wait otherwise abort T i (T i dies) and restart it later with the same timestamp wound-wait: if TS(T i )<TS(T j ) (T i is older than T j ) then abort T j (T i wounds T j ) and restart it later with the same timestamp otherwise T i is allowed to wait 223

76 Zakleszczenie transakcji (5) Algorytmy nie korzystające ze znaczników czasowych. no waiting (NW): Transakcja T i próbuje uzyskać blokadę na danej X, tymczasem dana ta jest już zablokowana przez transakcję T j. Transakcja T i będzie wycofana i restartowana z pewnym opóźnieniem czasowym bez sprawdzania zakleszczenia. Może powodować wycofywanie transakcji bez powodu. cautious waiting (CW): Transakcja T i próbuje uzyskać blokadę na danej X, tymczasem dana ta jest już zablokowana przez transakcję T j. Jeżeli transakcja T j nie czeka na uzyskanie innej blokady, T i będzie czekać na zwolnienie blokady przez T j. W przeciwnym wypadku T i będzie wycofana i restartowana. 224

77 Zakleszczenie transakcji (6) Metoda wykrywania - periodycznie sprawdza się, czy system znajduje się w stanie zakleszczenia. Metoda ta jest odpowiednia dla systemów mało obciążonych, z krótkimi transakcjami (tylko kilka blokad). W przeciwnej sytuacji lepszym rozwiązaniem jest protokół zapobiegania. Najprostszą metodą wykrycia zakleszczenia jest skonstruowanie grafu oczekiwania (wait - for graph). Każdej transakcji odpowiada jeden wierzchołek w grafie. Jeśli T i czeka na blokadę X utrzymywaną aktualnie przez T j, w grafie tworzona jest krawędź (T i T j ). Po zwolnieniu blokady krawędź jest usuwana z grafu. Stan zakleszczenia ma miejsce wtedy i tylko wtedy jeśli w grafie występuje cykl. 225

78 Zakleszczenie transakcji (7) Wybór transakcji do usunięcia, spośród grupy transakcji znajdujących się w stanie zakleszczenia jest nazywany wyborem ofiary (victim selection). Ofiarą powinna być transakcja, która niedługo przebywa w systemie i nie wykonała wielu operacji zapisu. Problem cyklicznego restartowania transakcji 226

79 Zarządzanie współbieżnością przez znaczniki czasowe Znacznik czasowy to unikalny identyfikator oznaczający moment zgłoszenia transakcji w systemie, oznaczany przez TS(T) Algorytmy zarządzania współbieżnością przez znaczniki czasowe nie prowadzą do zakleszczenia Timestamp ordering: uszeregowanie równoważne konkretnej realizacji sekwencyjnej 2PL: uszeregowanie równoważne pewnej realizacji sekwencyjnej 227

80 Algorytm Timestamp Ordering (TO) (1) Dwa znaczniki czasowe danej X Read_TS(X): największy znacznik czasowy transakcji która odczytała daną X (znacznik czasowy najmłodszej transakcji która odczytała daną X) Write_TS(X): największy znacznik czasowy transakcji która odczytała daną X (znacznik czasowy najmłodszej transakcji która odczytała daną X) 228

81 Algorytm Timestamp Ordering (TO) (2) Basic Timestamp Ordering 1. Transakcja wykonuje operację write_item(x) a. jeśli Read_TS(X)>TS(T) lub Write_TS(X)>TS(T) to wycofaj transakcję T b. jeśli warunek (a) nie jest spełniony to wykonaj write_item(x) i wpisz Write_TS(X) := TS(T) 2. Transakcja wykonuje operację read_item(x) a. jeśli Write_TS(X)>TS(T) to wycofaj transakcję T b. jeśli Write_TS(X) <= TS(T) to wykonaj read_item(x) i wpisz Read_TS(X) := max{ts(t),read_ts(x)} 229

82 Algorytm Timestamp Ordering (TO) (3) Strict Timestamp Ordering Transakcja T wykonująca read_item(x) lub write_item(x) gdy TS(T)>Write_TS(X) musi opóźnić operację aż do zakończenia transakcji T która zapisała X (Write_TS(X)=TS(T )) co jest konieczne do zaimplementowania STO? 230

83 Algorytm Timestamp Ordering (TO) (4) Thomas s Write Rule Warunki dla write_item(x) 1. jeśli Read_TS(X) > TS(T) to wycofaj transakcję T 2. jeśli Write_TS(X) > TS(T) wówczas ignoruj operację write_item(x) 3. jeśli nie jest spełnione (1) ani (2) wówczas wykonaj write_item(x) i wpisz Write_TS(X) := TS(T) 231

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Rozdział 1 Wprowadzenie do baz danych. (c) Instytut Informatyki Politechniki Poznańskiej 1 Rozdział 1 Wprowadzenie do baz danych 1 Model danych 2 Funkcje systemu zarządzania bazą danych Wymagania spójność bazy danych po awarii trwałość danych wielodostęp poufność danych wydajność rozproszenie

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

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

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

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

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

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

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

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

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Przydział ciągły (ang. contiguous allocation) cały plik zajmuje ciąg kolejnych bloków Przydział listowy (łańcuchowy, ang. linked

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Plan wykładu Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka spójności

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

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

Cel odtwarzania. Transakcyjne odtwarzanie bazy danych. Modele awarii. Efektywność odtwarzania MTTF 1 Cel odtwarzania 2 Transakcyjne odtwarzanie bazy danych Podstawowym celem mechanizmów transakcyjnego odtwarzania bazy danych po awarii jest odtworzenie spójnego stanu bazy danych Definicja odtwarzania

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

Pliki. Operacje na plikach w Pascalu

Pliki. Operacje na plikach w Pascalu Pliki. Operacje na plikach w Pascalu ścieżka zapisu, pliki elementowe, tekstowe, operacja plikowa, etapy, assign, zmienna plikowa, skojarzenie, tryby otwarcia, reset, rewrite, append, read, write, buforowanie

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

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

Inżynieria oprogramowania. Faza implmentacji. wykład 7 Inżynieria oprogramowania Faza implmentacji wykład 7 Charakterystyka fazy implementacji Faza określenia wymagań: CO system ma robić? Faza analizy: JAK system ma działać? Faza projektowania: JAK system

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

2014-06-30 21:11 BD_1_W9

2014-06-30 21:11 BD_1_W9 Wykład 9 Niezawodność bazy danych Odtwarzanie spójnego stanu bazy Odtwarzanie stanu bazy na podstawie dziennika transakcji Odtwarzanie nośników 1 Bardzo ważną funkcją systemu zarządzania bazą danych jest

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

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

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

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

TECHNIKI STEROWANIA WSPÓŁBIEŻNOŚCIĄ. I. Wybrane problemy współbieżności. Utracona aktualizacja (lost update) 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

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

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

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

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

Recovery Transakcyjne odtwarzanie bazy danych po awarii

Recovery Transakcyjne odtwarzanie bazy danych po awarii Recovery Transakcyjne odtwarzanie bazy danych po awarii Wykład przygotował: Tadeusz Morzy BD wykład 11 Tematem wykładu jest problem odtwarzania spójnego stanu bazy danych po awarii. Rozpoczniemy od krótkiego

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

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

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

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Abstrakcja programowania współbieżnego Instrukcje atomowe i ich przeplot Istota synchronizacji Kryteria poprawności programów współbieżnych

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

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 > Typy indeksów Indeks jest zakładany na atrybucie relacji atrybucie indeksowym (ang. indexing field). Indeks zawiera wartości atrybutu indeksowego wraz ze wskaźnikami do wszystkich bloków dyskowych zawierających

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

Tadeusz Pankowski

Tadeusz Pankowski Problem odtwarzania bazy danych Odtwarzanie bazy danych (recovery) Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski System bazy danych musi być w stanie odtworzyć swój poprawny stan w sposób automatyczny,

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

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

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

SYSTEMY OPERACYJNE WYKLAD 6 - procesy Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 6 - procesy Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 Zasoby: PROCES wykonujący się program ; instancja programu

Bardziej szczegółowo

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

Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych Baza danych to: zbiór informacji zapisanych według ściśle określonych reguł, w strukturach odpowiadających założonemu modelowi danych, zbiór

Bardziej szczegółowo

Wstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel

Wstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel Wstęp do programowania Procedury i funkcje Piotr Chrząstowski-Wachtel Po co procedury i funkcje? Gdyby jakis tyran zabronił korzystać z procedur lub funkcji, to informatyka by upadła! Procedury i funkcje

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

Kopie bezpieczeństwa NAPRAWA BAZ DANYCH

Kopie bezpieczeństwa NAPRAWA BAZ DANYCH Kopie bezpieczeństwa NAPRAWA BAZ DANYCH Sprawdzanie spójności bazy danych Jednym z podstawowych działań administratora jest zapewnienie bezpieczeństwa danych przez tworzenie ich kopii. Przed wykonaniem

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

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

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

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

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK 1 2 3 Pamięć zewnętrzna Pamięć zewnętrzna organizacja plikowa. Pamięć operacyjna organizacja blokowa. 4 Bufory bazy danych. STRUKTURA PROSTA

Bardziej szczegółowo

Sortowanie topologiczne skierowanych grafów acyklicznych

Sortowanie topologiczne skierowanych grafów acyklicznych Sortowanie topologiczne skierowanych grafów acyklicznych Metody boolowskie w informatyce Robert Sulkowski http://robert.brainusers.net 23 stycznia 2010 1 Definicja 1 (Cykl skierowany). Niech C = (V, A)

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

Złożona struktura transakcji

Złożona struktura transakcji Złożona struktura transakcji Ograniczenia płaskiej struktury transakcji Planowanie wyjazdu Poznań Rockford k Chicago BEGIN WORK S1: zarezerwuj lot z Poznania do Frankfurtu S2: zarezerwuj lot z Frankfurtu

Bardziej szczegółowo

Kopie zapasowe w SQL Server. Michał Bleja

Kopie zapasowe w SQL Server. Michał Bleja Kopie zapasowe w SQL Server Michał Bleja Typy kopii zapasowych (w oparciu o SQL Server Books Online) Pełna kopia zapasowa bazy danych (full database backup) zawiera wszystkie strony bazy danych oraz odpowiednią

Bardziej szczegółowo

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

Lock Manager Deadlock Źródła Jak starczy czasu. Dreadlocks. Konrad Błachnio MIMUW 19 maja 2010 Konrad Błachnio K.Blachnio@students.mimuw.edu.pl MIMUW 19 maja 2010 1 Co to jest? API Implementacja 2 ILockManagerWithDetecting s - straszny zamek 3 4 Obecna implementacja Lock vs. Synchronized Hashtable

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

System plików. Warstwowy model systemu plików

System plików. Warstwowy model systemu plików System plików System plików struktura danych organizująca i porządkująca zasoby pamięci masowych w SO. Struktura ta ma charakter hierarchiczny: urządzenia fizyczne strefy (partycje) woluminy (w UNIXie:

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

Multiprocessor Shared-Memory Information Exchange. Damian Klata, Adam Bułak

Multiprocessor Shared-Memory Information Exchange. Damian Klata, Adam Bułak Multiprocessor Shared-Memory Information Exchange Damian Klata, Adam Bułak Wstęp Zajmiemy się analizą protokołu opartego na komunikacji przez pamięć dzieloną opracowany przez firmę Westinghouse. Protokół

Bardziej szczegółowo

Przykładowe B+ drzewo

Przykładowe B+ drzewo Przykładowe B+ drzewo 3 8 1 3 7 8 12 Jak obliczyć rząd indeksu p Dane: rozmiar klucza V, rozmiar wskaźnika do bloku P, rozmiar bloku B, liczba rekordów w indeksowanym pliku danych r i liczba bloków pliku

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

Stan globalny. Krzysztof Banaś Systemy rozproszone 1

Stan globalny. Krzysztof Banaś Systemy rozproszone 1 Stan globalny Krzysztof Banaś Systemy rozproszone 1 Stan globalny Z problemem globalnego czasu jest związany także problem globalnego stanu: interesuje nas stan systemu rozproszonego w konkretnej pojedynczej

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

Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1

Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1 Przetwarzanie wielowątkowe przetwarzanie współbieżne Krzysztof Banaś Obliczenia równoległe 1 Problemy współbieżności wyścig (race condition) synchronizacja realizowana sprzętowo (np. komputery macierzowe)

Bardziej szczegółowo

Wprowadzenie do programowania współbieżnego

Wprowadzenie do programowania współbieżnego Wprowadzenie do programowania współbieżnego Marcin Engel Instytut Informatyki Uniwersytet Warszawski Zamiast wstępu... Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

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

Równoległość i współbieżność

Równoległość i współbieżność Równoległość i współbieżność Wykonanie sekwencyjne. Poszczególne akcje procesu są wykonywane jedna po drugiej. Dokładniej: kolejna akcja rozpoczyna się po całkowitym zakończeniu poprzedniej. Praca współbieżna

Bardziej szczegółowo

Równoległość i współbieżność

Równoległość i współbieżność Równoległość i współbieżność Wykonanie sekwencyjne. Poszczególne akcje procesu są wykonywane jedna po drugiej. Dokładniej: kolejna akcja rozpoczyna się po całkowitym zakończeniu poprzedniej. Praca współbieżna

Bardziej szczegółowo

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

Algorytmy Równoległe i Rozproszone Część VI - Systemy rozproszone, podstawowe pojęcia Algorytmy Równoległe i Rozproszone Część VI - Systemy rozproszone, podstawowe pojęcia Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@kaims.pl Oficjalna strona wykładu http://www.kaims.pl/

Bardziej szczegółowo

Problem zakleszczenia

Problem zakleszczenia Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Klasyfikacja zasobów systemu na potrzeby analizy problemu zakleszczenia Warunki konieczne wystąpienia zakleszczenia Graf przydziału zasobów

Bardziej szczegółowo

Synchronizacja procesów i wątków

Synchronizacja procesów i wątków SOE Systemy Operacyjne Wykład 12 Synchronizacja procesów i wątków dr inŝ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Problem sekcji krytycznej Podstawowy problem synchronizacji

Bardziej szczegółowo

TESTU NIE MUSZA BYC W 100% POPRAWNE!!!

TESTU NIE MUSZA BYC W 100% POPRAWNE!!! PRZYKŁADOWE PYTANIA NA EGZAMIN Z PRZEDMIOTU PODTAWY BAZ DANYCH 2007/2008 CAŁOŚĆ -1- A NAZWIKO I IMIĘ ODPOWIEDZI NA PYTANIA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 A Z D Z Z Z Z Z Z Z Z Z Z Z

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

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

Systemy operacyjne III

Systemy operacyjne III Systemy operacyjne III WYKŁAD 3 Jan Kazimirski 1 Współbieżność 2 Współbieżność Wielozadaniowość - zarządzanie wieloma procesami w ramach jednego CPU Wieloprocesorowość - zarządzanie wieloma zadaniami w

Bardziej szczegółowo

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 ZAMAWIANIE I REZERWOWANIE

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 ZAMAWIANIE I REZERWOWANIE Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 ZAMAWIANIE I REZERWOWANIE Poznań 2011 Spis treści 1. Zamawianie i rezerwowanie definicja pojęć...3 2. Zasada działania systemu...4 3. Zamawianie

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

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

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

Wstęp do informatyki- wykład 2

Wstęp do informatyki- wykład 2 MATEMATYKA 1 Wstęp do informatyki- wykład 2 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy

Bardziej szczegółowo