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
|
|
- Maja Sobczyk
- 8 lat temu
- Przeglądów:
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
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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ółowoI. 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ół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ół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ół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ół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ół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ółowoRozdział 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ół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ół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ół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ół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ół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ół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ół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ół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ółowoSystem 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ółowoSystem 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ółowoSystem 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ół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ółowoCel 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ół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ółowoPliki. 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ół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ółowoInż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ół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ółowo2014-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ół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ół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ół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ółowoTECHNIKI 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ół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ół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ół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ół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ółowoRecovery 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ół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ół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ół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ółowoprocesó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ół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ółowo< 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ół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ółowoTadeusz 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ół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ół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ółowoSYSTEMY 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ółowoPoję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ółowoWstę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ół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ółowoKopie 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ół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ół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ół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ół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ółowowykł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ółowoSortowanie 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ół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ółowoZł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ółowoKopie 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ółowoLock 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ół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ółowoSystem 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ółowo4. 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ółowoMultiprocessor 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ółowoPrzykł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ół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ółowoStan 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ół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ółowoPrzetwarzanie 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ółowoWprowadzenie 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ółowo4. 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ół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ółowoRó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ółowoRó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ółowoAlgorytmy 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ółowoProblem 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ółowoSynchronizacja 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ółowoTESTU 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ść
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ół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ółowoSystemy 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ółowoZintegrowane 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ółowoAlgorytm. 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ół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ół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ółowoWstę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