PODSTAWY BAZ DANYCH. 11. Transakcje. 2009/ Notatki do wykładu "Podstawy baz danych"
|
|
- Alicja Baranowska
- 6 lat temu
- Przeglądów:
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 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ół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ółowo1 Przetwarzanie transakcyjne Cechy transakcji Rozpoczęcie i zakończenie Punkty bezpieczeństwa... 3
Plan wykładu Spis treści 1 Przetwarzanie transakcyjne 1 1.1 Cechy transakcji................................. 2 1.2 Rozpoczęcie i zakończenie........................... 3 1.3 Punkty bezpieczeństwa.............................
Bardziej szczegółowoprzykłady problemów; realizacja dostaw części od producenta do klienta:
Przetwarzanie transakcyjne Transakcja zestaw operacji pod szczególną kontrolą transakcja to sekwencja operacji, która musi zakończyć się sukcesem w całości - w przeciwnym wypadku musi powrócić stan początkowy
Bardziej szczegół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ół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ółowoTransakcje. (c) Instytut Informatyki Politechniki Poznańskiej
ransakcje Definicja i własności transakcji, zatwierdzanie i wycofywanie, punkty bezpieczeństwa, spójność, anomalie współbieżnego dostępu do danych, poziomy izolacji transakcji, blokady, zakleszczenie Definicja
Bardziej szczegółowoBazy danych. 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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ółowoOracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 7 Dynamiczny SQL i PL/SQL Pierwotny dynamiczny SQL Pierwotny dynamiczny DDL Pierwotny dynamiczny DML i SELECT Pakiet DBMS_SQL Transakcje
Bardziej szczegół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ół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ół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ółowoTransakcja jest sekwencją logicznie powiązanych operacji na bazie danych, która przeprowadza bazę danych z jednego stanu spójnego w inny stan spójny
Zarządzanie współbieżnością transakcji Definicja transakcji Transakcja jest sekwencją logicznie powiązanych operacji na bazie danych, która przeprowadza bazę danych z jednego stanu spójnego w inny stan
Bardziej szczegółowoUPDATE konta /* dodaj do konta B kwotę N */ UPDATE konta /* odejmij kwotę N z konta A */ WHERE id_konta = B; SET stan = stan + N
Definicja transakcji Transakcja jest sekwencją logicznie powiązanych operacji na bazie danych, która przeprowadza bazę danych z jednego stanu spójnego w inny stan spójny Stan spójny bazy danych Stan spójny
Bardziej szczegółowoRozdział 17. Zarządzanie współbieżnością zadania
Rozdział 17. Zarządzanie współbieżnością zadania Transakcja DML 1. Uruchom narzędzie Oracle SQL Developer i przyłącz się do bazy danych. Następnie rozpocznij nową transakcję, zmieniając pracownikowi o
Bardziej szczegółowoWykład 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ół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ół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ół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ół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ółowoOLTP Przetwarzanie Transakcyjne
ZTB: OLTP Przetwarzanie Transakcyjne 1 Zaawansowane Technologie Bazodanowe Wykład p.t. OLTP Przetwarzanie Transakcyjne ZTB: OLTP Przetwarzanie Transakcyjne 2 Pojęcie transakcji w bazach danych Transakcje
Bardziej szczegół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ół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ół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ółowoIzolacje transakcji oraz anomalie. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW
Izolacje transakcji oraz anomalie Robert A. Kłopotek r.klopotek@uksw.edu.pl Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW SZBD (DBMS) a transakcji Przetwarzanie transakcyjne wymaga znaczącego
Bardziej szczegółowoBazy danych Transakcje
Wstp Pojcia podstawowe: Transakcja - sekwencja (uporzdkowany zbiór) logicznie powizanych operacji na bazie danych, która przeprowadza baz danych z jednego stanu spójnego w inny stan spójny. W!a"no"ci transakcji:
Bardziej szczegółowoBazy danych 9. Klucze obce Transakcje
Bazy danych 9. Klucze obce Transakcje P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2007/08 Dygresja: Metody przechowywania tabel w MySQL Tabele w MySQL moga być przechowywane na kilka
Bardziej szczegółowoBazy danych 9. Klucze obce Transakcje. P. F. Góra
Bazy danych 9. Klucze obce Transakcje P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2009 Dygresja: Metody przechowywania tabel w MySQL Tabele w MySQL moga być przechowywane na kilka sposobów. Sposób
Bardziej szczegół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ół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ółowoCREATE 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ół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ół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ół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ółowoOracle 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ółowoUprawnienia, 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ółowoWprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa
Wprowadzenie do projektowania i wykorzystania baz danych Katarzyna Klessa POWTÓRKA Z PIERWSZYCH ZAJĘĆ Lista słówek - do zapamiętania na początek Z podstaw SQL: CREATE - Tworzenie tabeli, czyli Coś czego
Bardziej szczegółowoInternetowe bazy danych
Wyższa Szkoła Technologii Teleinformatycznych w Świdnicy Internetowe bazy danych wykład 3 dr inż. Jacek Mazurkiewicz e-mail: Jacek.Mazurkiewicz@pwr.wroc.pl Typy tabel MySQL domyślny MyISAM inne możliwe:
Bardziej szczegółowoInstrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.
Rodzaje triggerów Triggery DML na tabelach INSERT, UPDATE, DELETE Triggery na widokach INSTEAD OF Triggery DDL CREATE, ALTER, DROP Triggery na bazie danych SERVERERROR, LOGON, LOGOFF, STARTUP, SHUTDOWN
Bardziej szczegół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ół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ół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ółowoZarządzanie obiektami bazy danych Oracle11g
Zarządzanie obiektami bazy danych Oracle11g Wstęp Obiekty to struktury przechowujące, porządkujące lub operujące na danych takie jak: Tabele Więzy integralności Indeksy Widoki Sekwencje Procedury Linki
Bardziej szczegół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ół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ół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ółowoSQL (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ółowoPodstawowe 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ółowoWykład 8. SQL praca z tabelami 5
Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu
Bardziej szczegół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ółowoOracle11g: 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ółowoOgó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ółowo2010-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ółowoWstę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ół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ółowoĆwiczenie 3. Współbieżność i transakcje
Ćwiczenie 3. Współbieżność i transakcje 1. Uruchomienie/sprawdzenie środowiska do ćwiczeń Czas trwania: 10 minut Dwiczenie będzie realizowane na wirtualnej maszynie, na której został zainstalowany system
Bardziej szczegółowoPlan ć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ółowoSQL 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ół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ółowoBazy 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ółowoSystem 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ółowoJę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ółowoPawel@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ółowoP 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ółowoObsł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ół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ółowoModelowanie 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ółowoWyzwalacz - 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ółowoBazy 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ół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ółowoSQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści
SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, 2017 Spis treści O autorze 9 Wprowadzenie 11 Lekcja 1. Zrozumieć SQL 15 Podstawy baz danych 15 Język SQL
Bardziej szczegółowoTrigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie.
Temat: Wyzwalacze (triggery). Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie. W poniższym przykładzie definiujemy tablicę a następnie trigger
Bardziej szczegółowoPrzestrzenne 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ółowoWydział 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ółowoJę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ółowoDECLARE VARIABLE zmienna1 typ danych; BEGIN
Procedury zapamiętane w Interbase - samodzielne programy napisane w specjalnym języku (właściwym dla serwera baz danych Interbase), który umożliwia tworzenie zapytań, pętli, instrukcji warunkowych itp.;
Bardziej szczegół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ółowoMateriał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ółowoLiteratura: 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ółowo1 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ół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ółowo