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

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

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

Transkrypt

1 PODSTAWY BAZ DANYCH 11. Transakcje 1

2 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) Spójność stanu (Consistency) Trwałość (Durability) Wyłączność (Isolation) Szeregowalność (Serializability) 2

3 Zbiór cech transakcji - Niepodzielność Niepodzielność (Atomicity) Transakcja musi być niepodzielną jednostką przetwarzania i może zostać zrealizowana w całości, albo nie zrealizowana w ogóle. Realizacja transakcji nie może zakłócić poprawności danych. Przez stan poprawny danych rozumiemy taki stan, w którym wszystkie wartości atrybutów obiektów występujących w bazie mają stan zgodny z oczekiwaniami, tzn. wartość należącą do zbioru wartości danego atrybutu i właściwie odzwierciedlającą stan modelowanej rzeczywistości. 3

4 Zbiór cech transakcji Spójność stanu - Trwałość Spójność stanu (Consistency) Poprawne wykonanie transakcji musi przeprowadzić bazę z jednego stanu spójnego w drugi. Stan spójny, to taki, w którym wszelkie istniejące powiązania pomiędzy obiektami tworzą logiczną całość tzn. np. nie ma odwołań do obiektów nie istniejących w bazie. Trwałość (Durability) Niedokończenie transakcji spowodowane błędami środowiska systemowego nie może doprowadzić do uszkodzenia żadnej z baz. 4

5 Zbiór cech transakcji Wyłączność - Szeregowalność Wyłączność (Isolation) Zmiany wprowadzane przez transakcję do bazy danych nie mogą być widoczne dla innych transakcji aż do momentu ich ostatecznego zatwierdzenia (zrealizowania transakcji w całości). Następna własność dotyczy kilku transakcji wykonywanych jednocześnie. Szeregowalność (Serializability) Efekt wykonania kilku transakcji jednocześnie (z przełączaniem zadań) musi być równoważny oddzielnemu wykonaniu każdej z nich w pewnej ustalonej kolejności. Wówczas transakcje takie nazywamy szeregowalnymi. 5

6 Przyczyny powodujące załamanie procesu wykonania transakcji 1. Błąd systemu komputerowego (system crash). Awarie związane z oprogramowaniem lub sprzętem, zaistniałe podczas wykonywania transakcji. Prawie zawsze związane z utratą zawartości pamięci operacyjnej komputera. 2. Błąd transakcji lub SZBD. Załamanie wykonania może być spowodowane np. próbą wykonania przez transakcję operacji dzielenia przez zero, przekroczeniem zakresu typu danych, niewłaściwą wartością parametru lub poleceniem BREAK wydanym przez operatora. 3. Awarie dysku. Błędy zapisu lub odczytu danych z powierzchni dyskowych podczas wykonywania transakcji. 4. Przyczyny zewnętrzne. Wynikające z zaniku napięcia, przypadkowego lub celowego zamazanie danych przez operatora, pożaru, kradzieży, itp. 6

7 Przyczyny powodujące załamanie procesu wykonania transakcji 5. Błędy lokalne i wyjątki wykryte przez transakcję. Przykładem okoliczności zmuszających do przerwania transakcji jest np. w bankowej bazie danych, niewystarczający stan konta, uniemożliwiający wykonanie operacji przelewu pieniędzy. Transakcja sama powinna obsłużyć sytuację, wykonując operację ABORT. 6. Kontrola współbieżności. Procesy bazy odpowiedzialne za kontrolę dostępu równoległego mogą zadecydować o konieczności przerwania transakcji i jej późniejszym restarcie. Przyczyną może być niespełnienie warunku szeregowalności czy też wykrycie stanu zakleszczenia 7

8 Strata zapisanej informacji, np. dla transakcji T 1 i T 2 Ogólnie mówiąc problemy, które mogą wyniknąć przy jednoczesnym działaniu wielu transakcji równocześnie, można podzielić na dwie kategorie: (1) W wyniku wykonania takiej sekwencji operacji, otrzymujemy niepoprawną końcową wartość X, tracona jest informacja zapisana przez transakcję T 1 T 1 T 2 1. READ(X) 2. READ(X) 3. X=X-1 4. WRITE(X) 5. X=X-2 6. WRITE(X) 8

9 Odczytanie niepoprawnej informacji w funkcjach agregujących (2) T 1 T 3 1. sum=0 2. READ(A) 3. sum=sum+a 4. READ(X) 5. READ(X) 6. X=X-1 7. WRITE(X) 8. sum=sum+x 9. READ(Y) 10. sum=sum+y Wartość X odczytana przez transakcję T 3 obliczającą sumę A+X+Y nie jest poprawna, gdyż w międzyczasie tych obliczeń, transakcja T 1 zdążyła ją zaktualizować. Widać więc jak istotne jest wprowadzenie mechanizmów synchronizujących dostęp do bazy danych i w jakiś sposób rozstrzygających ewentualne konflikty. 9

10 Teoria szeregowalności Ponieważ zawsze jest możliwe, aby transakcje były wykonywane po kolei (sekwencyjnie), jest sensownie zakładać, że normalny lub zamierzony wynik jest taki sam jak wynik otrzymany wtedy, kiedy nie jest wykonywana współbieżnie żadna inna transakcja. Załóżmy więc, że współbieżne wykonanie kilku transakcji jest poprawne wtedy i tylko wtedy, gdy jego wynik jest taki sam jak wynik otrzymany przy sekwencyjnym wykonaniu tych samych transakcji w pewnej kolejności. 10

11 Teoria szeregowalności Dla potrzeb teorii szeregowalności, wprowadźmy pewne potrzebne definicje. Definicja. Kolejność, w której są wykonywane elementarne operacje transakcji (blokowanie, odczyt, zapis, itd.) nazywamy harmonogramem zbioru transakcji. T 1 1. READ(X) T 2 2. READ(X) 3. X=X-1 4. WRITE(X) 5. X=X-2 6. WRITE(X) 11

12 Teoria szeregowalności Definicja. Harmonogram zbioru transakcji nazywamy sekwencyjnym (serial) jeśli wszystkie operacje każdej transakcji występują kolejno po sobie. T 1 T 2 1. READ(X) 2. X=X-1 3. WRITE(X) 4. READ(X) 5. X=X-2 6. WRITE(X) Definicja. Harmonogram zbioru transakcji nazywamy szeregowalnym (serializable), jeśli jego wynik jest równoważny wynikowi otrzymanemu za pomocą pewnego harmonogramu sekwencyjnego. 12

13 Teoria szeregowalności Poniższy przykład uwidacznia różnice pomiędzy harmonogramem sekwencyjnym, szeregowalnym i nieszeregowalnym. Przykład. Rozważmy dwie transakcje przeksięgowania kwot pieniężnych z konta na konto T 1 : READ(A); A=A-10; WRITE(A); READ(B); T 2 : READ(B); READ(C); B=B+10; WRITE(B); B=B-20; WRITE(B); C=C+20; WRITE(C); 13

14 Teoria szeregowalności Każdy harmonogram sekwencyjny powyższych transakcji ma własność zachowania sumy A+B+C. Przestawienia kolejności wykonywania pojedynczych operacji wewnątrz transakcji, mogą doprowadzić do stworzenia harmonogramów: - niesekwencyjnych ale szeregowalnych (sytuacja pożądana) albo - nieszeregowalnych, (sytuacja niepożądaną). 14

15 Teoria szeregowalności Poniższe przykłady, to: a) harmonogram sekwencyjny; b) harmonogram szeregowalny, niesekwencyjny; c) harmonogram nieszeregowalny, dla którego nie istnieje żaden harmonogram sekwencyjny tego samego zbioru transakcji dający takie same wyniki. 15

16 Teoria szeregowalności a) harmonogram sekwencyjny T 1 T 2 A=10, B=20, C=30 A=10, B=20, C=30 1. READ(A) 2. A=A WRITE(A) A=0 4. READ(B) 5. B=B WRITE(B) A=0, B=30 7. READ(B) 8. B=B WRITE(B) A=0, B=10, C= READ(C) 11. C=C WRITE(C) A=0, B=10, C=50 16

17 Teoria szeregowalności b) harmonogram szeregowalny, niesekwencyjny T 1 T 2 A=10, B=20, C=30 A=10, B=20, C=30 1. READ(A) 2. READ(B) 3. A=A B=B WRITE(A) A=0 6. WRITE(B) B=0 7. READ(B) 8. READ(C) 9. B=B C=C+20 C= WRITE(B) B= WRITE(C) A=0, B=10, C=50 17

18 Teoria szeregowalności c) harmonogram nieszeregowalny T 1 T 2 A=10, B=20, C=30 A=10, B=20, C=30 1. READ(A) 2. A=A READ(B) 4. WRITE(A) A=0 5. B=B READ(B) B=20 7. WRITE(B) B=0 8. B=B READ(C) 10. WRITE(B) B= C=C+20 C= WRITE(C) A=0, B=30, C=50 18

19 Teoria szeregowalności Istnieją dwie metody zapewnienia szeregowalności we współbieżnych procesach realizacji transakcji w bazach danych. Pierwsza, to zastosowanie programów szeregujących, będących częścią systemu zarządzania bazą danych, odpowiedzialnych za rozstrzyganie konfliktów pomiędzy sprzecznymi żądaniami. Pogramy te mogą eliminować sytuacje zakleszczenia i nieszeregowalność poprzez przerwanie wykonania i restart w późniejszym terminie jednej bądź większej ilości transakcji. Dotychczasowe efekty działania przerwanych transakcji są wówczas wymazywane z bazy danych. 19

20 Teoria szeregowalności Drugą metodą jest zastosowanie protokołów, czyli zbiorów zasad jakie muszą być stosowane przez wszystkie transakcje. Zależnie od protokołu, zasady te mają różne cele: zapewnić szeregowalnośc transakcji, wyeliminować możliwość powstania zakleszczenia, itp. Odpowiednie narzędzia (menadżery transakcji) bazy danych muszą zapewnić przestrzeganie protokołu i w przypadku naruszenia określających go zasad przez którąkolwiek z transakcji, przerwać jej wykonanie oraz przywrócić stan bazy sprzed jej startu. 20

21 Teoria szeregowalności Klasyczne metody synchronizacji można podzielić na dwie grupy: optymistyczna - oparta na niezależnym wykonaniu transakcji i późniejszym wykrywaniu ewentualnych konfliktów między poszczególnymi transakcjami (trudna w realizacji) pesymistyczna - oparta na blokadzie dostępu do danych uniemożliwiając dokonywania zmian na pewnych danych. 21

22 Mechanizm blokad - Blokowanie binarne Najprostszym rodzajem kontroli współbieżności jest blokowanie binarne. Polega ono na skojarzeniu z każdym obiektem bazy znacznika wskazującego na zezwolenie na dostęp do obiektu lub jego brak. Znacznik taki może być rekordem postaci <id obiektu bazy, stan blokady>. Rekordy te mogą być na przykład przechowywane w pewnych tabelach np. gdy blokowanie jest na poziomie wiersza może to być tabela: ROWID Stan_blokady AAAQ2UAAEAAABYGAAA LOCK

23 Mechanizm blokad - Blokowanie binarne Każda transakcja, chcąca wykorzystać wartość danej X, musi zawierać w swojej treści polecenia wykonania operacji LOCK(X) i UNLOCK(X). O tym czy transakcja otrzyma prawo dostępu do obiektu, decyduje proces systemu zarządzania bazą danych nazywany menadżerem blokad (lock manager). Może on postępować według następującego algorytmu: 23

24 Mechanizm blokad - Blokowanie binarne gdy transakcja żąda dostępu do obiektu X jeżeli LOCK(X)= =0 to LOCK(X)=1 //tzn. obiekt nie jest zablokowany przez inną transakcję //tzn. zablokuj obiekt w przeciwnym przypadku czekaj aż LOCK(X)==0 //obiekt zostanie odblokowany oraz menadżer blokad wznowi wykonywanie transakcji //transakcja jest ustawiana w kolejce transakcji oczekujących na pożądany zasób (dane bazy) gdy transakcja zwalnia blokadę obiektu X LOCK(X)=0 //tzn. odblokuj obiekt jeśli inne transakcje czekają na dostęp do X, wybierz jedną z nich i wznów jej działanie. 24

25 Mechanizm blokad - Blokowanie binarne Aby zapewnić poprawność procesu blokowania binarnego, każda transakcja T musi stosować się do poniższych reguł: 1. T musi wykonać operację LOCK(X) przed którąkolwiek z operacji READ(X) lub WRITE(X) 2. T musi wykonać operację UNLOCK(X) po zakończeniu wszystkich operacji READ(X) i WRITE(X) 3. T nie może wykonać operacji LOCK(X) jeżeli już posiada blokadę X 4. T nie może wykonać UNLOCK(X) o ile nie wykonała wcześniej operacji LOCK(X) 25

26 Mechanizm blokad - Blokowanie binarne Uwagi. Zadanie stosowania reguł 1, 3 i 4 przejmuje na siebie właściwie funkcjonujący menadżer transakcji, natomiast reguła 2 musi być przestrzegana przez programistę aplikacji systemu bazodanowego. Efektem niezastosowania reguły 2 będzie niepotrzebne blokowanie obiektu, uniemożliwiające realizację wszystkich transakcji chcących z niego skorzystać. 26

27 Mechanizm blokad - Blokowanie binarne Uwagi. Przestrzeganie reguł 1-4 uniemożliwia jednoczesne użycie tego samego obiektu przez dwie transakcje i stąd chroni bazę przed utratą spójności danych. Transakcje wykorzystujące różne obiekty bazy mogą funkcjonować równolegle i bezkolizyjnie. Mechanizm blokowania binarnego, opisany powyżej jest prosty w implementacji. Jednakże konieczność całkowitego blokowania obiektu nawet gdy transakcja wymaga jedynie odczytu, może powodować długie kolejki transakcji oczekujących na dostęp oraz sprzyja powstaniu zakleszczenia (opisane w dalszej części). 27

28 Mechanizm blokad - Blokowanie zapisu i blokowanie aktualizacji Ulepszeniem powyższej metody jest mechanizm oddzielnego blokowania zapisu i odczytu. W metodzie tej możemy wyróżnić dwa rodzaje blokad: 1. Blokadę do zapisu (READ_LOCK) żadna transakcja nie może aktualizować obiektu, który został zamknięty tą blokadą przez jakąkolwiek inną transakcję. Natomiast możliwa jest sytuacja, że wiele transakcji czyta dane z tego samego obiektu (dlatego też ten rodzaj nazywany jest trybem dzielonego dostępu do czytania - read-sharable) 28

29 Mechanizm blokad - Blokowanie zapisu i blokowanie aktualizacji 2. Blokadę do aktualizacji (WRITE_LOCK - blokada całkowita) żadna inna transakcja, z wyjątkiem tej, która nałożyła blokadę nie ma dostępu (zarówno do czytania jak i aktualizacji) do danego obiektu (tryb wyłącznego dostępu do pisania - write-exclusive). Zależności pomiędzy poszczególnymi trybami blokowania przez transakcje T1 i T2 możemy przedstawić w tabeli: T1 T2 READ_LOCK(X) WRITE_LOCK(X) READ_LOCK(X) dozwolony niedozwolony WRITE_LOCK(X) niedozwolony niedozwolony Jak widać blokada zapisu (READ_LOCK) przez jedną transakcję nie wyklucza możliwości zastosowania takiej samej blokady na tym samym obiekcie przez inną transakcję. 29

30 Mechanizm blokad - Blokowanie zapisu i blokowanie aktualizacji Realizację programową opisanego sposobu blokowania, możemy zapewnić poprzez wykorzystanie rekordów postaci <id obiektu, stan blokady, ilość blokad READ_LOCK >. Pole stan blokady może przyjmować trzy różne wartości (odpowiednio zakodowane): zablokowane_do_odczytu, (WRITE_LOCK) zablokowane_do_aktualizacji, (READ_LOCK) niezablokowane. Obie blokady: zapisu i całkowitą usuwa operacja UNLOCK. 30

31 Mechanizm blokad - Blokowanie zapisu i blokowanie aktualizacji Analogicznie jak dla blokowania binarnego, transakcja musi przestrzegać pewnych reguł: wykonuje operację WRITE_LOCK lub READ_LOCK przed jakąkolwiek operacją READ; wykonuje operację WRITE_LOCK przed jakąkolwiek operacją WRITE; nie próbuje odblokować jednostki, której w żaden sposób nie blokuje; nie próbuje całkowicie zablokować jednostki (WRITE_LOCK), którą już w ten sposób blokuje; nie próbuje zablokować do zapisu jednostki (READ_LOCK), którą blokuje w jakikolwiek sposób. 31

32 Protokół dwufazowy i sprawdzanie szeregowalności Algorytm sprawdzania szeregowalności harmonogramu S z blokadami: i zapisu (READ_LOCK) całkowitymi (WRITE_LOCK), opiera się na konstrukcji grafu zorientowanego G, w którym wierzchołki odpowiadają transakcjom, a krawędzie wyznacza się korzystając z następujących reguł: 32

33 Protokół dwufazowy i sprawdzanie szeregowalności 1. Jeśli transakcja T i z harmonogramu S blokuje zapis elementu A {READ_LOCK(A)}, a T j jest następną transakcją (o ile taka istnieje), która chce całkowicie zablokować A {WRITE_LOCK(A)}, to prowadzimy krawędź T i T j. T i T j T i T j READ_LOCK(A) WRITE_LOCK(A) 33

34 Protokół dwufazowy i sprawdzanie szeregowalności 2. Jeśli transakcja T i z harmonogramu S blokuje całkowicie A {WRITE_LOCK(A)}, a T j jest następną transakcją (o ile taka istnieje), która chce całkowicie zablokować A {WRITE_LOCK(A)}, to prowadzimy krawędź T i T j. T i T j T i T j WRITE_LOCK(A) WRITE_LOCK(A) 34

35 Protokół dwufazowy i sprawdzanie szeregowalności 3. Jeśli T m jest transakcją blokującą zapis A {READ_LOCK(A)}, po tym, gdy T i zdjęła swoją całkowitą blokadę {UNLOCK(A)}, lecz zanim T j całkowicie zablokowała A {WRITE_LOCK(A)}, (jeśli T j nie istnieje, to T m jest dowolną transakcją blokującą zapis A po odblokowaniu jej przez T i ), to prowadzimy krawędź T i T m. T i T m T i T m T j WRITE_LOCK(A) UNLOCK(A) READ_LOCK(A)... [ WRITE_LOCK(A) ] 35

36 Protokół dwufazowy i sprawdzanie szeregowalności Szeregowalność danego harmonogramu rozstrzygamy sprawdzając istnienie cykli w tak skonstruowanym grafie (nazywanym również grafem pierwszeństwa). Jeśli G zawiera cykl, to harmonogram S nie jest szeregowalny. Twierdzenie. Przedstawiony algorytm sprawdzania szeregowalności w poprawny sposób stwierdza szeregowalność harmonogramu. Dowód poprawności powyższego algorytmu znajduje się m.in. w książce J.D Ullman Systemy baz danych. 36

37 Protokół dwufazowy i sprawdzanie szeregowalności Przykład. Przykład harmonogramu nieszeregowalnego. T 1 T 2 T 3 T 4 1. WRITE_LOCK (A) 2. READ_LOCK (B) 3. UNLOCK (A) 4. READ_LOCK (A) 5. UNLOCK (B) 6. WRITE_LOCK (B) 7. READ_LOCK (A) 8. UNLOCK (B) 9. WRITE_LOCK (B) 10. UNLOCK (A) 11. UNLOCK (A) 12. WRITE_LOCK (A) 13. UNLOCK (B) 14. READ_LOCK (B) 15. UNLOCK (A) 16. UNLOCK (B) R -> W W -> W (W_L) U -> R (W_L) 37

38 Protokół dwufazowy i sprawdzanie szeregowalności Graf pierwszeństwa jest postaci: T1 T2 T4 T3 Ponieważ graf pierwszeństwa dla naszego harmonogramu zawiera cykle więc nasz harmonogram nie jest szeregowalny. 38

39 Protokół dwufazowy i sprawdzanie szeregowalności W przypadku wykrycia cyklu, należy uruchomić mechanizmy cofające efekt działania transakcji T powodującej konflikt, zawiadomić o fakcie program aplikacyjny lub zrestartować T w późniejszym terminie. T1 T2 T1 T2 T4 T3 T4 T3 Po wycofaniu T4 będzie szeregowalny. Po wycofaniu T2 nie będzie szeregowalny. 39

40 Protokół dwufazowy i sprawdzanie szeregowalności Uwaga. Jak widać z poprzedniego przykładu sam mechanizm blokad nie zapewnia szeregowalności dowolnego harmonogramu wykonania transakcji. Stąd też nie gwarantuje utrzymania bazy danych w stanie spójnym. Gwarancję taką daje zastosowanie protokołu dwufazowego, którego jedynym wymaganiem jest aby transakcje wykonały blokowania wszystkich wymaganych przez siebie obiektów przed odblokowaniem któregokolwiek z nich. Transakcje, które przestrzegają tego protokołu uważane są za dwufazowe w takim sensie, że operacje zablokowania i odblokowania wykonywane są w dwóch różnych fazach w trakcie działania transakcji. 40

41 Protokół dwufazowy i sprawdzanie szeregowalności Prawdziwe jest następujące twierdzenie. Twierdzenie. Dowolny harmonogram S transakcji dwufazowych jest harmonogramem szeregowalnym. Zaletą protokołu dwufazowego jest fakt, iż przy niewielkich wymaganiach i stosunkowo niewielkim nakładzie pracy w implementacji, gwarantuje on szeregowalność harmonogramów transakcji. Wadą natomiast jest to, że blokowanie dwufazowe może ograniczyć współbieżność w bazie danych. 41

42 Protokół dwufazowy i sprawdzanie szeregowalności Pewne przypadki ograniczające współbieżność: Często zdarza się, że transakcja T nie może zwolnić blokady na obiekcie X po jego wykorzystaniu, ponieważ w dalszym planie swego działania przewiduje blokadę na innym obiekcie Y. Aby zwolnić obiekt X, transakcja musi zablokować obiekt Y wcześniej niż jest to wymagane do jej działania. Zablokowanie Y wówczas, gdy staje się on niezbędny pociąga za sobą konieczność zbędnego przetrzymania blokady X. 42

43 Protokół dwufazowy i sprawdzanie szeregowalności W obu przypadkach, obiekt X musi pozostać zablokowany aż do chwili gdy T uzyska wszystkie wymagane blokowania. W tym czasie inne transakcje wymagające dostępu do X są postawione w stan oczekiwania, pomimo iż transakcja T nie korzysta już z X. Jeśli natomiast Y zostaje zablokowane przed czasem, działanie transakcji wymagających dostępu do Y jest wstrzymywane, pomimo, że T nie korzysta jeszcze z obiektu Y. 43

44 Protokół dwufazowy i sprawdzanie szeregowalności Protokół blokowania dwufazowego zapewnia szeregowalność transakcji, ale nie eliminuje możliwości wystąpienia sytuacji: zakleszczenia (deadlock) impasu (livelock), występujących we wszystkich systemach sterujących współbieżnością w oparciu o mechanizmy blokowania. Poniżej przedstawione zostaną przyczyny powstawania problemu i techniki jego eliminacji. 44

45 Impas Mówimy, że transakcja jest w stanie impasu, jeśli nie może kontynuować pracy przez nieokreślenie długi (w stosunku do innych transakcji) czas, podczas gdy inne transakcje są realizowane bez przeszkód. Sytuacja taka może zaistnieć, gdy mechanizm przyznawania blokad (lock manager) nie jest skonstruowany poprawnie i daje pierwszeństwo pewnym typom transakcji. Niestety, praktycznie niemożliwe jest wykrycie impasu w trakcie wykonywania danego programu realizującego transakcje. Łatwo co prawda zaobserwować, że pewna transakcja czeka bardzo długo na zdarzenie (np. możliwość zablokowania zasobu), które wystąpiło już wiele razy, ale nie wiadomo, jak system zachowa się w przyszłości. 45

46 Impas Aby uniknąć problemu, należy zastosować maksymalnie optymalny menadżer blokad. Jednym z takich rozwiązań jest zastosowanie techniki kolejek FIFO: pierwszy wszedł pierwszy będzie obsłużony. Obsługuje ona transakcje w kolejności zgłoszenia potrzeby zablokowania. Innym rozwiązaniem jest dopuszczenie różnych priorytetów dla różnych transakcji ale równocześnie wprowadzenie procesu podnoszenia priorytetu transakcjom długo oczekującym na blokadę. Transakcje te mogą w końcowym stadium osiągnąć najwyższy priorytet i dzięki temu mają zapewnioną realizację. 46

47 Zakleszczenie Możliwość powstania tego problemu tzn. zakleszczenia najlepiej ilustruje poniższa sekwencja działań: 1. Transakcja T 1 blokuje całkowicie jednostkę A 2. Transakcja T 2 blokuje całkowicie jednostkę B 3. T 1 chce nałożyć całkowitą blokadę na jednostkę B, ale musi czekać, bo jest ona zablokowana przez T 2 4. T 2 chce nałożyć całkowitą blokadę na jednostkę A, ale musi czekać, bo jest ona zablokowana przez T 1 47

48 Zakleszczenie T 1 T 2 1 WRITE_LOCK(A) 2 WRITE_LOCK(B) 3 WRITE_LOCK(B) 4 WRITE_LOCK(A) Jak widać z powyższej sytuacji ani transakcja T 1 ani T 2 nie mogą być kontynuowane - występuje zakleszczenie. 48

49 Zakleszczenie Można znaleźć różne strategie zapobiegające powstawaniu zakleszczeń. Przykładem jest strategia wstępnego rezerwowania obiektów (pre-claim strategy). Każda transakcja przed rozpoczęciem działania nakłada blokady na wszystkie obiekty, z których będzie korzystać w trakcie swej realizacji. Taka strategia może jednak powodować, że przy dużym stopniu jednoczesności dostępu (rozumianym jako duża liczba transakcji rywalizujących o zasoby) wiele transakcji będzie musiało długo czekać na rozpoczęcie swego działania. 49

50 Zakleszczenie Inną wadą tej strategii jest to, że przed rozpoczęciem realizacji nie zawsze znany jest pełen zbiór obiektów, do których będzie potrzebny dostęp. Taki zbiór może być wyznaczany dynamicznie podczas realizacji transakcji i generalnie może zależeć od danych wejściowych, stanu bazy i algorytmu transakcji. Strategia taka jest więc mało praktyczna w systemach bazodanowych. Właściwszą metodą wydaje się dopuszczenie możliwości powstawania zakleszczeń, ale równocześnie stworzenie mechanizmów do ich wykrywania i eliminowania. 50

51 Zakleszczenie W wykrywaniu zakleszczenia może być pomocne generowanie grafu bieżących transakcji według następującej reguły: jeśli transakcja T 1 żąda blokady jednostki, która jest zablokowana przez transakcję T 2, wówczas węzły T 1 i T 2 łączymy krawędzią. Przykład. T 1 T 2 1 WRITE_LOCK(A) WRITE_LOCK(B) WRITE_LOCK(B) 6 WRITE_LOCK(A) Graf bieżących transakcji dla T 1 i T 2 T 1 i T 2 w stanie zakleszczenia 51

52 Zakleszczenie Waiting_tran (czekająca) A Waited_tran B B C lista transakcji B F oczekujących F G G A ( ten rekord stworzy cykl i wykaże zakleszczenie ) Graf bieżących transakcji dla powyższych transakcji: 52

53 Przykład transakcji w Oracle Przykłady transakcji w Oracle: SET TRANSACTION NAME t1 ;... UPDATE zatrudnienia SET pensja=pensja*1.2 WHERE pensja<1000;... ROLLBACK; lub COMMIT; 53

54 Przykład transakcji w Oracle Przykłady transakcji w Oracle: SAVEPOINT t1;... UPDATE zatrudnienia SETpensja=pensja*2 WHERE pensja<1000;... ROLLBACK; lub ROLLBACK TO SAVEPOINT t1; SAVEPOINT t1;... UPDATE zatrudnienia SET pensja=pensja*2 WHERE pensja<1000;... COMMIT; 54

55 PODSTAWY BAZ DANYCH 12. Współbieżność w systemie Oracle 55

56 Współbieżność w systemie Oracle - Wstęp Wszystkie operacje wykonywane w Oracle odbywają się w trybie transakcyjnym. Z transakcjami wiąże się ściśle zjawisko blokowania danych. Blokowanie danych ma na celu zapewnienie synchronizacji zapisów. Polecenia z grupy DDL (np. Create, Alter, Drop Table) oraz polecenia z grupy DCL (Grant, Revoke) kończą się niejawnym zatwierdzeniem transakcji. 56

57 Współbieżność w Oracle Tryby w jakich może pracować transakcja Transakcja może być realizowana w jednym z trzech trybów: Tryb READ COMMITTED. (domyślny) Tryb READ ONLY. Tryb SERIALIZABLE. Do ustawiania trybu pracy transakcji służy polecenie: SET TRANSACTION { READ ONLY ISOLATION LEVEL { SERIALIZABLE READ COMMITTED } nazwa_transakcji; 57

58 Współbieżność w Oracle Tryb READ COMMITED Tryb READ COMMITTED Wszystkie transakcje w Systemie Oracle wykonywane są domyślnie w tym trybie. Transakcja T 1 widzi dane zmodyfikowane przez transakcję T 2 dopiero po jej zatwierdzeniu poleceniem COMMIT. Polecenie umożliwiające przestawienie pojedynczej transakcji w tryb Read Commited: SET TRANSACTION ISOLATION LEVEL Read Committed; 58

59 Współbieżność w Oracle Tryb READ COMMITED Uwaga. Polecenie należy wykonać jako pierwsze w ramach transakcji: SET TRANSACTION NAME t1 ; SET TRANSACTION ISOLATION LEVEL Read Committed;... COMMIT; Polecenie umożliwiające ustawienie trybu Read Committed dla wszystkich transakcji realizowanych w ramach danej sesji: ALTER SESSION SET ISOLATION_LEVEL = Read Committed; 59

60 Współbieżność w Oracle Tryb READ ONLY Tryb READ ONLY Transakcja T 1 operuje na wersji danych z momentu jej rozpoczęcia. Transakcja w tym trybie nie może modyfikować danych. Nie widzi zmian wprowadzonych w między czasie przez inne, zatwierdzone transakcje. Tryb Read Only stosowany jest w przypadku obliczeń analitycznych. 60

61 Współbieżność w Oracle Tryb READ ONLY Polecenie umożliwiające przestawienie pojedynczej transakcji w tryb Read Only: SET TRANSACTION Read Only; Uwaga. Polecenie należy wykonać jako pierwsze w ramach transakcji: SET TRANSACTION NAME t1 ; SET TRANSACTION Read Only;... COMMIT; 61

62 Współbieżność w Oracle Tryb Serializable Tryb SERIALIZABLE Transakcja w trybie Serializable, podobnie jak transakcja w trybie Read Only, operuje na wersji danych z momentu jej rozpoczęcia. Różnica polega na tym, że można modyfikować dane, które nie zostały zmienione przez inne transakcje w trakcie jej trwania. Polecenie umożliwiające przestawienie pojedynczej transakcji w tryb Serializable: SET TRANSACTION ISOLATION LEVEL Serializable; Uwaga. Polecenie należy wykonać jako pierwsze w ramach transakcji. 62

63 Współbieżność w Oracle Mechanizm blokowania danych Mechanizm blokowania danych. Blokady zakładane są na czas trwania transakcji. Dwie blokady są ze sobą zgodne jeżeli mogą być założone na tę samą daną przez wiele transakcji. Blokowanie może dotyczyć: tabeli (table lock), rekordu (row lock). Blokowanie całej tabeli zmniejsza stopień współbieżności. Blokowanie całej tabeli powoduje, że blokada dotyczy wszystkich jej rekordów a co za tym idzie system nie musi blokować każdego z nich oddzielnie. 63

64 Współbieżność w Oracle Mechanizm blokowania danych Operacja SELECT nie wymaga nakładania blokady na tabeli i rekordzie. Blokowanie rekordów odbywa się zawsze w trybie EXCLUSIVE. Blokowanie tabeli odbywa się w trybie RS, RX, S, SRX oraz X gdzie: RS RX S SRX X ROW SHARE ROW EXCLUSIVE SHARE SHARE ROW EXCLUSIVE EXCLUSIVE 64

65 Współbieżność w Oracle Mechanizm blokowania danych Zgodność blokad tabeli: Brak RS RX S SRX X Brak TAK TAK TAK TAK TAK TAK RS TAK TAK TAK TAK TAK Nie RX TAK TAK TAK Nie Nie Nie S TAK TAK Nie TAK Nie Nie SRX TAK TAK Nie Nie Nie Nie X TAK Nie Nie Nie Nie Nie Blokady mogą być nałożone w następujący sposób: niejawny - w momencie wykonywania operacji modyfikujących dane, jawny nałożenie blokady następuje po wydaniu polecenia LOCK TABLE. 65

66 Współbieżność w Oracle Mechanizm blokowania danych Do jawnego założenia blokady na tabeli służy polecenie: LOCK TABLE { table view } [ PARTITION ( partition ) ] [, { table view } [ { PARTITION ( partition ) ]... IN tryb_blokady MODE [ NOWAIT ]; gdzie tryb_blokady jest identyfikatorem jednego z dostępnych trybów blokowania podany pełną nazwą. 66

67 Współbieżność w Oracle Właściwości blokad ROW SHARE WŁAŚCIWOŚCI BLOKADY RS (ROW SHARE) Pozwala na współbieżny dostęp ( SELECT, UPDATE, DELETE, INSERT) do zablokowanej tabeli, ale nie pozwala jej zablokować innym użytkownikom w trybie EXCLUSIVE (wyłącznym) LOCK TABLE osoby IN ROW SHARE MODE; Jej założenie następuje automatycznie przy realizacji polecenia: SELECT lista_atrybutów FROM nazwa_tabeli WHERE warunek_selekcji FOR UPDATE [NOWAIT]; Użycie NOWAIT powoduje, że polecenie zostanie automatycznie przerwane, jeżeli nie można założyć blokady RS ze względu na istnienie innej blokady z nią niezgodnej. 67

68 Współbieżność w Oracle Właściwości blokad ROW EXCLUSIVE WŁAŚCIWOŚCI BLOKADY RX (ROW EXCLUSIVE) Tak jak, powyżej, ale dodatkowo nie pozwala zablokować innym w trybie SHARE. LOCK TABLE osoby IN ROW EXCLUSIVE MODE; Blokada ROW EXCLUSIVE pojawia się automatycznie przy UPDATE, INSERT i DELETE. Modyfikowane rekordy są zawsze blokowane w trybie EXCLUSIVE (X). Pojawienie się blokady tego typu oznacza, że niektóre lub wszystkie rekordy tabeli zostały zmodyfikowane. 68

69 Współbieżność w Oracle Właściwości blokad ROW SHARE WŁAŚCIWOŚCI BLOKADY S (SHARE) Zakładana jest gdy transakcja T 1 chce uniemożliwić zmianę danych w tabeli przez inne równolegle działające transakcje i jednocześnie sama nie będzie ich modyfikowała. Pozwala na współbieżne zapytania, ale zabrania operacji UPDATE na zablokowanej tabeli. LOCK TABLE osoby IN SHARE MODE; Transakcje nie zmieniające zawartości tabeli mogą współpracować z transakcją T 1. 69

70 Współbieżność w Oracle Właściwości blokad SHARE ROW EXCLUSIVE WŁAŚCIWOŚCI BLOKADY SRX (SHARE ROW EXCLUSIVE) Pozwala wszystkim widzieć całą tabelę, ale zabrania zarówno operacji UPDATE jak i zablokowania jej w trybie SHARE. LOCK TABLE osoby IN SHARE ROW EXCLUSIVE MODE; 70

71 Współbieżność w Oracle Właściwości blokad EXCLUSIVE WŁAŚCIWOŚCI BLOKADY X (EXCLUSIVE) Uniemożliwia innym transakcjom modyfikowanie danych dopuszczając tylko ich przeglądanie. Założenie innej blokady nie jest możliwe. LOCK TABLE osoby IN EXCLUSIVE MODE; Gdy zastosowano opcje NOWAIT Oracle zwraca sterowanie natychmiast, jeśli podana do zablokowania tabela jest już zablokowana przez innego użytkownika (podaje odpowiedni komunikat). Bez tego słowa Oracle będzie czekał, aż będzie można założyć pożądaną blokadę. 71

72 Współbieżność w Oracle Właściwości blokad EXCLUSIVE Przykład. Transakcja z blokowaniem. SET TRANSACTION NAME t1 ; LOCK TABLE zatrudnienia IN EXCLUSIVE MODE; UPDATE zatrudnienia SET pensja=pensja*1.2 WHERE pensja<1000; ROLLBACK; /*tabela zatrudnienia zostaje zwolniona */ Punkt zachowania został utworzony. Tabela(e) zablokowana(e). 2 wierszy zostało zmodyfikowanych. Wycofywanie zostało zakończone. 72

73 Współbieżność w Oracle Właściwości blokad Uwagi Uwagi. 1. W przypadku blokowania perspektywy (view) Oracle zablokuje bazowe tabele widoku. 2. W przypadku partycji Oracle najpierw niejawnie uzyska blokadę na całej tabeli. Będzie ona tego samego trybu co wyszczególniona blokada dla partycji. LOCK TABLE faktury PARTITION(m_10_2003) IN SHARE MODE; 73

74 Współbieżność w Oracle - Zakleszczenie Zakleszczenia (deadlocks) Zaletą metody blokowania danych jest zapewnienie synchronizacji zapisu w przypadku wielu transakcji próbujących modyfikować te same dane. Metoda ta posiada jednak dwie wady: zmniejsza stopień współbieżności (transakcja, która próbuje założyć blokady niezgodne z blokadami już założonymi przez inną transakcję, musi czekać na zdjęcie blokad); wprowadza możliwość wystąpienia zakleszczenia (deadlock), kiedy dwie transakcje blokują sobie wzajemnie zasoby. Wówczas żadna z transakcji nie może kontynuować pracy. 74

75 Współbieżność w Oracle - Zakleszczenie System Oracle wykrywa zakleszczenie i rozwiązuje je wykorzystując pewien algorytm wyboru tej transakcji, która zostanie przerwana, tj. jej ostatnie polecenie zostanie przerwane, wycofane. Przykład. Przykład wystąpienia zakleszczenia. Pierwsza sesja: 1. SET TRANSACTION NAME 't1'; 3. SELECT * FROM osoby FOR UPDATE; 5. SELECT * FROM zatrudnienia FOR UPDATE; Druga sesja: 2. SET TRANSACTION NAME 't2'; 4. SELECT * FROM zatrudnienia FOR UPDATE; 6. SELECT * FROM osoby FOR UPDATE; 75

76 Współbieżność w Oracle - Zakleszczenie Właściciel transakcji, dla której nastąpiło zakleszczenie otrzymuje wówczas komunikat: ORA-.: deadlock detected while waiting for resource Algorytm wyboru transakcji do przerwania nie został wyspecyfikowany w dokumentacji Oracle. 76

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

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

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Transakcje. (c) Instytut Informatyki Politechniki Poznańskiej

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

Bardziej szczegółowo

Bazy danych. 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Oracle PL/SQL. Paweł Rajba.

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

Bardziej szczegółowo

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

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

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

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

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

Bardziej szczegółowo

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

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

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

Bardziej szczegółowo

Wykład 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

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

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

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

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

OLTP Przetwarzanie Transakcyjne

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

Bardziej szczegółowo

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

Ć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

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

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

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

Bardziej szczegółowo

Bazy danych Transakcje

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

Bardziej szczegółowo

Bazy danych 9. Klucze obce Transakcje

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

CREATE USER

CREATE USER Temat: Administrowanie użytkownikami bazy danych. Po instalacji serwera MYSQL dostępne jest konto o nazwie root. Domyślnie nie ma ono przypisanego hasła, aczkolwiek podczas procesu konfiguracji jest możliwość

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

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

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

Oracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/

Oracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 6 Wprowadzenie Definiowanie wyzwalaczy DML Metadane wyzwalaczy Inne zagadnienia, tabele mutujące Wyzwalacze INSTEAD OF Wyzwalacze

Bardziej szczegółowo

Uprawnienia, role, synonimy

Uprawnienia, role, synonimy Uprawnienia, role, synonimy Schemat, użytkownicy, autoryzacja użytkowników, uprawnienia systemowe i obiektowe, nadawanie i odbieranie uprawnień, tworzenie ról, przywileje, synonimy Schematy i użytkownicy

Bardziej szczegółowo

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

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

Bardziej szczegółowo

Internetowe bazy danych

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

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

Zarządzanie obiektami bazy danych Oracle11g

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

Bardziej szczegółowo

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

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

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

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

Bardziej szczegółowo

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko Podstawowe pojęcia dotyczące relacyjnych baz danych mgr inż. Krzysztof Szałajko Czym jest baza danych? Co rozumiemy przez dane? Czym jest system zarządzania bazą danych? 2 / 25 Baza danych Baza danych

Bardziej szczegółowo

Wykład 8. SQL praca z tabelami 5

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

Bardziej szczegółowo

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

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu: http://aragorn.pb.bialystok.pl/~gkret

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu: http://aragorn.pb.bialystok.pl/~gkret Ogólny plan przedmiotu BAZY DANYCH Wykład 1: Wprowadzenie do baz danych Małgorzata Krętowska Politechnika Białostocka Wydział Informatyki Wykład : Wprowadzenie do baz danych Normalizacja Diagramy związków

Bardziej szczegółowo

2010-11-22 PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

2010-11-22 PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH PLAN WYKŁADU Bezpieczeństwo w języku SQL Użytkownicy Uprawnienia Role BAZY DANYCH Wykład 8 dr inż. Agnieszka Bołtuć OGRANICZENIA DOSTĘPU DO DANYCH Ograniczenie danych z tabeli dla określonego użytkownika

Bardziej szczegółowo

Wstęp do programowania 2

Wstęp do programowania 2 Wstęp do programowania 2 wykład 10 Zadania Agata Półrola Wydział Matematyki UŁ 2005/2006 http://www.math.uni.lodz.pl/~polrola Współbieżność dotychczasowe programy wykonywały akcje sekwencyjnie Ada umożliwia

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

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

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

Bardziej szczegółowo

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. UŜytkownicy i schematy (2) UŜytkownicy i schematy (1) baza danych: ZESP99

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. UŜytkownicy i schematy (2) UŜytkownicy i schematy (1) baza danych: ZESP99 Plan ćwiczenia Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych UŜytkownicy i schematy bazy danych. Uwierzytelnianie i autoryzacja. Przywileje systemowe i obiektowe. Role. Synonimy. Uprawnienia,

Bardziej szczegółowo

SQL w języku PL/SQL. 2) Instrukcje języka definicji danych DDL DROP, CREATE, ALTER, GRANT, REVOKE

SQL w języku PL/SQL. 2) Instrukcje języka definicji danych DDL DROP, CREATE, ALTER, GRANT, REVOKE Instrukcje SQL dzielimy na następujące kategorie: 1) Instrukcje języka manipulowania danymi (DML) SELECT, INSERT, UPDATE, DELETE, SET TRANSACTION, EXPLAIN PLAN 2) Instrukcje języka definicji danych DDL

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

Bazy Danych. Ćwiczenie 13: transakcje w bazach danych

Bazy Danych. Ćwiczenie 13: transakcje w bazach danych Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Bazy Danych Ćwiczenie 13: transakcje w bazach danych opracował: dr inż. Artur Gramacki (a.gramacki@issi.uz.zgora.pl) 1. Uwagi wstępne

Bardziej szczegółowo

System Oracle podstawowe czynności administracyjne

System Oracle podstawowe czynności administracyjne 6 System Oracle podstawowe czynności administracyjne Stany bazy danych IDLE nieczynna, pliki zamknięte, procesy tła niedziałaja NOMOUNT stan po odczytaniu pfile-a, zainicjowaniu SGA i uruchomieniu procesów

Bardziej szczegółowo

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne. Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne. 1 Perspektywa Perspektywa (ang. view) jest strukturą

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność

Bardziej szczegółowo

P o d s t a w y j ę z y k a S Q L

P o d s t a w y j ę z y k a S Q L P o d s t a w y j ę z y k a S Q L Adam Cakudis IFP UAM Użytkownicy System informatyczny Aplikacja Aplikacja Aplikacja System bazy danych System zarządzania baz ą danych Schemat Baza danych K o n c e p

Bardziej szczegółowo

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

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska Obsługa transakcji rozproszonych w języku j Java Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska Plan prezentacji Transakcje i ich własności Proste transakcje w JDBC

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

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Modelowanie hierarchicznych struktur w relacyjnych bazach danych Modelowanie hierarchicznych struktur w relacyjnych bazach danych Wiktor Warmus (wiktorwarmus@gmail.com) Kamil Witecki (kamil@witecki.net.pl) 5 maja 2010 Motywacje Teoria relacyjnych baz danych Do czego

Bardziej szczegółowo

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Składowe wyzwalacza ( ECA ): określenie zdarzenia ( Event ) określenie

Bardziej szczegółowo

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

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych Plan wykładu Bazy danych Cechy rozproszonej bazy danych Implementacja rozproszonej bazy Wykład 15: Rozproszone bazy danych Małgorzata Krętowska, Agnieszka Oniśko Wydział Informatyki PB Bazy danych (studia

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

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych Nr ćwiczenia: 12 Praca z bazą danych MySQL wersja 2.0 Temat: Cel ćwiczenia:

Bardziej szczegółowo

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. Ograniczenia integralnościowe, modyfikowanie struktury relacji, zarządzanie ograniczeniami. 1 Ograniczenia integralnościowe Służą do weryfikacji

Bardziej szczegółowo

DECLARE VARIABLE zmienna1 typ danych; BEGIN

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

Bardziej szczegółowo

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

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

Bardziej szczegółowo

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion Autor: Joanna Karwowska SQL zapewnia obsługę: zapytań - wyszukiwanie danych w bazie, operowania danymi - wstawianie, modyfikowanie

Bardziej szczegółowo

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 (a) T (b) N (c) N (d) T

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 (a) T (b) N (c) N (d) T PRZYKŁADOWE PYTANIA NA EGZAMIN Z PRZEDMIOTU ADMINISTRACJA BAZAMI DANYCH - 2005/2006-1- A Nazwisko i imię: Kierunek: Rok studiów: Pytanie 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Punkty 5 5 5

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