070 TRANSAKCJE. Prof. dr hab. Marek Wisła

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

Download "070 TRANSAKCJE. Prof. dr hab. Marek Wisła"

Transkrypt

1 070 TRANSAKCJE Prof. dr hab. Marek Wisła

2 Transakcja - definicja Transakcja jest sekwencją logicznie powiązanych operacji na bazie danych, przeprowadzających bazę danych z jednego stanu spójnego w inny stan spójny.

3 Przykład Transakcja jest podstawową logiczną jednostką interakcji użytkownika z systemem bazy danych, jest to określona sekwencja operacji, która musi zakończyć się sukcesem w całości (baza pozostaje spójna) w przeciwnym przypadku (zagrożenie utraty spójności) przywrócony musi być stan początkowy. Przykład Operacja przelewu kwoty X z konta A na konto B: 1. Pobranie kwoty X z konta A 2. Dodanie kwoty X do konta B Transakcja jest logiczną jednostką działań, której nie można podzielić.

4 Transakcje Transakcja jest dowolną sekwencją operacji zdefiniowanych przez użytkownika i z jego punktu widzenia niepodzielną. Jeżeli choć jedna z operacji zawartej w transakcji nie może zostać wykonana, to wszystkie operacje z transakcji są wycofywane. Użytkownik oczekuje, że: efekt wykonania transakcji będzie niezależny od transakcji innych użytkowników i ich liczby, efekt wykonania transakcji będzie stanem poprawnym. Dowolna transakcja w bazie danych powinna być odizolowana od wszystkich pozostałych transakcji, które są wykonywane w tym samym czasie - w idealnej sytuacji, każda transakcja zachowuje się tak, jakby posiadała wyłączny dostęp do bazy danych.

5 Własności ACID transakcji Atomowość (Atomicity) - każda transakcja stanowi pojedynczą, niepodzielną jednostkę przetwarzania (a także odtwarzania) - w transakcji nie ma więc podtransakcji. Spójność (Consistency) - transakcja rozpoczyna się w spójnym stanie bazy danych i pozostawia bazę danych w stanie spójnym (tym samym lub innym). Odizolowanie (Isolation) - zmiany wykonywane przez transakcję nie zatwierdzoną, nie są widziane przez inne transakcje (chyba, że przyjęty poziom izolacji na to zezwala). Trwałość (Durability) - zmiany w bazie danych dokonane przez transakcję zatwierdzoną są na trwale zapisane w bazie danych.

6 A(tomicicity)CID Atomowość oznacza, że transakcję musimy traktować jako niepodzielną całość. Nie można więc przyjąć, że na przykład system utrwala wykonanie w bazie danych dwóch pierwszych operacji zakładając, że po jakimś czasie zrealizuje dwie następne operacje - byłaby to koncepcja wyróżniania podtransakcji, co w tradycyjnych systemach baz danych jest niedopuszczalne. Jeśli z jakiegoś powodu wykonanie transakcji ulegnie przerwaniu (na przykład w wyniku awarii) po dwóch pierwszych operacjach, to system musi zapewnić wycofanie wszystkich dokonanych zmian.

7 AC(onsistency)ID Spójność oznacza, że system nie dopuści do zatwierdzenia transakcji, która naruszy jakikolwiek warunek spójności bazy danych. W przykładzie przelewu kwoty między rachunkami bankowymi warunkiem spójności może być wymaganie, aby stan rachunku bankowego był zawsze większy od zera (statyczny warunek spójności) lub aby suma stanów kont po wykonaniu transakcji przelewu była taka sama jak przed jej wykonaniem (dynamiczny warunek spójności, tzn. odwołujący się do kilku różnych stanów bazy danych).

8 ACI(solation)D Odizolowanie oznacza, że zmiany wykonane przez jedną transakcję nie są widoczne dla innych transakcji dopóty, dopóki transakcja ta nie zostanie zatwierdzona. Postulat odizolowania transakcji jest najczęściej osłabiany przez jawne określanie poziomu izolacji - celem obniżenia poziomu izolacji jest zwiększenie współbieżności transakcji, wiąże się to jednak z ryzykiem powstawania pewnych anomalii.

9 ACID(urability) Trwałość oznacza, że zmiany wprowadzone do bazy danych przez transakcję, która została zatwierdzona, są w tej bazie danych zapisane na trwałe. Zmiany wykonywane przez transakcję muszą być zapisywane w osobnej lokalizacji (log) tak, aby można było szybko zatwierdzić zmiany lub je wycofać. Oznacza to, że również w przypadku różnorodnych awarii (z wyłączeniem fizycznego zniszczenia nośnika danych) musi istnieć mechanizm ich odtwarzania. Automatycznie jest wówczas odtwarzany ostatni poprawny (spójny) stan bazy danych, a więc zmiany wprowadzone w trakcie transakcji zostaną wówczas wycofane.

10 Transakcje proste Dowolne polecenie SELECT, INSERT, UPDATE, DELETE, CREATE rozpoczyna transakcję, o ile nie była ona już rozpoczęta. Jeśli polecenie SELECT, INSERT, UPDATE, DELETE, CREATE rozpoczyna transakcję, to transakcja jest automatycznie kończona natychmiast po wykonaniu tego polecenia..

11 Transakcje złożone Polecenie BEGIN TRANSACTION (lub BEGIN TRAN) rozpoczyna transakcję. Polecenie COMMIT [TRANSACTION TRAN] informuje, że wszystkie elementy transakcji są kompletne i powinny zostać zatwierdzone na stałe oraz stać się dostępne dla wszystkich innych transakcji. Polecenie ROLLBACK [TRANSACTION TRAN] mówi, że należy wycofać transakcję, a wszystkie zmiany danych dokonane przez transakcję mają być anulowane. Baza danych, z punktu widzenia użytkowników, powinna się znajdować w takim stanie, jak w momencie rozpoczęcia transakcji.

12 Współbieżność W systemie, w którym istnieje wiele stanowisk komputerowych może być tworzonych bardzo wiele transakcji, z których duża liczba może być wykonywana jednocześnie. Współbieżność transakcji oznacza, że przed zakończeniem jednej transakcji rozpoczynana jest następna (inicjowana na przykład z innego stanowiska komputerowego). Współbieżne wykonywanie operacji oznacza wykonywanie operacji pochodzących z różnych transakcji w czasie, gdy transakcje te są aktywne. Transakcje, których operacje wykonywane są współbieżnie, nazywamy transakcjami współbieżnymi. Współbieżność może prowadzić do rywalizacji o dane i konfliktów.

13 Konflikty Operacje o[a] na zbiorze danych A oraz p[b] na zbiorze danych B nie są konfliktowe, jeśli zachodzi co najmniej jeden z poniższych warunków: operacje o A, p[b] pochodzą z tej samej transakcji, A B = tzn. operacje dotyczą rozłącznych zbiorów danych, żadna z operacji nie jest operacją zapisu, jedna z operacji pochodzi z transakcji, która w chwili wykonywania drugiej została już zakończona (zatwierdzona lub odrzucona).

14 Anomalia zagubionej aktualizacji (Lost update) Trans T Trans S Opis begin T begin S write T [x: 10] Zapisz wartość x = 10 write S [x: 5] Zapisz wartość x = 5 commit T commit S Zatwierdzenie transakcji T Zatwierdzenie transakcji S Jaka wartość x jest prawidłowa: 5 czy 10???

15 Anomalia zagubionej aktualizacji Anomalia zagubionej aktualizacji występuje wtedy, gdy dwie transakcje wykonują zapis na tym samym zbiorze danych. W celu uniknięcia tej anomalii serwer SQL zawsze traktuje dwie transakcje dokonujące zapisu na tym samym zbiorze danych jako konfliktowe na wszystkich poziomach izolacji transakcji (od poziomu 0 do 3).

16 Anomalia nieodtwarzalności bazy danych Trans T Trans S Opis begin T begin S Początkowa wartość danej x = 1 Rozpoczęcie transakcji T Rozpoczęcie transakcji S write T [x: 2] Zapis wartości danej x (= 2) read S [x] Wczytanie wartości danej x (=1) write S [x: 5] Zapis nowej wartości danej x (=5) commit S Zatwierdzenie transakcji S rollback T Wycofanie transakcji T: x = 1 czy 5??? Należy wycofać wszystkie zmiany, jakie wprowadziła w bazie danych transakcja T, a także wszystkie konsekwencje tych zmian, w szczególności więc zmianę wartości danej x na 1. Ta ostatnia operacja jest jednak niemożliwa, gdyż transakcja S wykonła zmianę wartości x na 5 i ta zmiana jest już zatwierdzona. Zaistniała sytuacja, w której baza danych jest nieodtwarzalna

17 Czytanie z transakcji Definicja: Mówimy, że transakcja S czyta z transakcji T daną x, jeśli T nie została jeszcze zatwierdzona, T zapisała wartość x zanim transakcja S odczytała wartość x, Mamy więc do czynienia z sekwencją operacji: write T [x, ], read S [x]. Powodem wystąpienia anomalii nieodtwarzalności jest to, że transakcja S czytała i wykorzystywała dane przed zatwierdzeniem transakcji T (tzw. dirty read) i sama została zatwierdzona przed zatwierdzeniem T. Aby sytuacji takiej uniknąć, należałoby czekać z atwierdzeniem transakcji S do czasu, aż zostanie zatwierdzona transakcja T.

18 Zasada odtwarzalności Przetwarzanie (grupy) transakcji jest przetwarzaniem odtwarzalnym, jeśli każda transakcja jest zatwierdzana dopiero po zatwierdzeniu wszystkich transakcji, z których ona czyta.

19 Anomalia powtórnego czytania Trans T begin T Trans S begin S Początkowa wartość x = 1 read T [x] transakcja T przeczytała daną x (=1) write S [x: 5] Zapis nowej wartości x (= 5) read T [x] commit S Zatwierdzenie transakcji S Ponowny odczyt danej x. Jaka powinna być jej wartość 1 czy 5??? Jeśli transakcja T ponownie przeczyta daną x, to może się okazać, że dana ta ma inną wartość (zabronione jest czytanie z niezatwierdzonych transakcji, możliwe jest natomiast zapisywanie w niezatwierdzonych transakcjach). Transakcja T dysponuje więc dwiema różnymi wartościami tej samej danej. Może zdarzyć się też sytuacja, że transakcja S usunie daną x. Wówczas przy próbie ponownego czytania, transakcja T ma informację, że danej x nie ma w bazie danych. Opisaną anomalię nazywamy anomalią powtórnego czytania.

20 Zapis w transakcji Definicja: Mówimy, że transakcja S zapisuje w transakcji T daną x, jeśli T jest transakcją aktywną, T odczytała wartość x zanim ta wartość została zmieniona przez S. Mamy więc do czynienia z sekwencją operacji: read T [x], write S [x, ]. Powodem występowania anomalii powtórnego czytania jest to, że dopuszczalne jest zapisywanie w niezatwierdzonych transakcjach. Anomalię tę można wyeliminować zakładając, że zapisywanie danych wczytanych przez inną transakcję jest dopuszczalne dopiero wtedy, gdy transakcja ta została już zatwierdzona.

21 Zasada zapobiegania anomalii powtórnego czytania Przetwarzanie (grupy) transakcji jest przetwarzaniem bez anomalii powtórnego czytania (tj. z powtarzalnym czytaniem Repeatable Read), jeśli żadna z transakcji wchodząca w jej skład nie zapisuje w transakcjach niezatwierdzonych.

22 Anomalia przetwarzania z fantomami Trans T Trans S Opis begin T select where φ select where φ begin S insert where φ commit_s Wczytanie rekordów spełniających warunek φ (np. ilość zwróconych rekordów: 10) Wstawienie 2 nowych rekordów spełniających warunek φ Zatwierdzenie transakcji S Ponowne wczytanie rekordów spełniających warunek φ. Ile rekordów zostanie zwróconych 10 czy 12??? Podobna sytuacja wystąpi, jeśli transakcja S dokona takiej modyfikacji rekordu r nie spełniającego warunku φ, że po jej wykonaniu rekord r warunek ten będzie spełniał. Ten nowy rekord pojawiający się w obszarze zainteresowań transakcji T nazywany jest fantomem lub zjawą

23 Anomalia przetwarzania z fantomami Powodem pojawienia się fantomów jest to, że dopuszczalna jest zmiana zbioru danych, na którym operuje transakcja T. Konflikt między T i S nie jest więc bezpośredni, jak miało to miejsce przy anomalii powtórnego czytania. Pojawianiu się fantomów można zapobiec zakładając, że zmiany wykonywane przez transakcję S (wstawianie, usuwanie, aktualizacja) są takie, że nie powodują zmiany zbioru danych, na których operuje transakcja T.

24 Zasada zapobiegania pojawianiu się fantomów Przetwarzanie (grupy) transakcji jest przetwarzaniem bez fantomów, jeśli żadna z transakcji wchodzących w jego skład nie zmienia zbioru danych, na którym działa jakakolwiek inna transakcja niezatwierdzona.

25 Poziomy izolacji Wyróżniamy cztery poziomy izolacji transakcji: najniższy (0) - zapewnia największą współbieżność, wiąże się z największym ryzykiem (mogą wystąpić anomalie), najwyższy (3) - pozwala uniknąć wszelkich anomalii, ale jest najbardziej kosztowny (często ponoszenie tych kosztów jest niepotrzebne). Przyjęcie konkretnego poziomu izolacji wiąże się z określonymi problemami: - niski poziom zapewni nam zwiększenie współczynnika współbieżności, ale może doprowadzić do niekorzystnych cech związanych z zachowaniem spójności bazy danych. Poziom wysoki to dłuższy czas wykonywania transakcji, ale jednocześnie większa niezawodność przetwarzania oraz jego bezpieczeństwo z punktu widzenia zachowania spójności bazy danych.

26 Poziom izolacji 0 Poziom izolacji 0 dopuszcza czytanie przez transakcję danych niezatwierdzonych (uncommitted), tj. danych, które zostały zmienione przez transakcję jeszcze niezatwierdzoną. Za operacje konfliktowe uważa się tylko parę operacji zapisu, a dwie operacje, z których jedna jest operacją odczytu nie są operacjami konfliktowymi. W standardzie SQL2 (także w MS SQL Server) ten poziom izolacji nazywany jest także READ UNCOMMITTED, a popularnie określany jest jako dirty read ( brudne czytanie ).

27 Poziom izolacji 0 Przyjęcie tego rodzaju współbieżności operacji może doprowadzić do braku odtwarzalności, anomalii powtórnego czytania oraz do pojawiania się fantomów. Zaletą tego poziomu izolacji jest to, że uzyskujemy wysoki współczynnik współbieżność transakcji. Poziom izolacji 0 należy wybierać dla tych transakcji, które nie wykorzystają wczytanych danych do modyfikacji bazy danych.

28 Poziom izolacji 1 Poziom izolacji 1 wprowadza zakaz czytania danych z transakcji niezatwierdzonych, czytać można tylko dane zatwierdzone (committed). Za konfliktowe uważa się takie pary operacji, gdzie pierwsza jest operacją zapisu, a druga czytania lub obydwie są operacjami zapisu. Dwie operacje, z których pierwsza jest operacją czytania, a druga jest operacją zapisu, nie są więc konfliktowe. Poziom ten w standardzie SQL2 określany jest jako READ COMMITTED.

29 Poziom izolacji 1 Jest to domyślny poziom izolacji w MS SQL Server. Przy tym poziomie izolacji dopuszczalne jest jednak zapisywanie danych w transakcjach niezatwierdzonych. Przyjęcie tego rodzaju współbieżności operacji eliminuje brak odtwarzalności. Na tym poziomie izolacji może jednak wystąpić zarówno anomalia powtórnego czytania, jak i zjawisko fantomów.

30 Poziom izolacji 2 Poziom izolacji 2 wprowadza zakaz zapisywania w transakcjach niezatwierdzonych. Jeśli transakcja niezatwierdzona przeczytała jakąś daną, to dana ta może być tylko czytana przez inną transakcję. Jeśli natomiast transakcja niezatwierdzona zapisała jakąś daną, to nie można jej ani odczytać ani tym bardziej zapisać dopóty, dopóki transakcja ta nie zostanie zatwierdzona. Za konfliktowe uważa się takie pary operacji, gdzie pierwsza jest operacją zapisu lub druga jest operacją aktualizacji lub usuwania. W standardzie SQL2 ten poziom izolacji określa się jako REPEATABLE READ.

31 Poziom izolacji 2 Przyjęcie tego rodzaju współbieżności operacji eliminuje brak odtwarzalności oraz anomalię powtórnego czytania. Na tym poziomie izolacji mogą pojawiać się fantomy. Mamy zagwarantowane, że przy ponownym odwołaniu się do tych samych danych dostajemy identyczne informacje. Uzyskuje się to przez uniemożliwienie aktualizowania danych wczytanych przez transakcję, która nie została jeszcze zakończona. Przy tym poziomie izolacji współbieżność transakcji jest mniejsza niż przy READ COMMITTED. Należy więc stosować go tylko wtedy, gdy jest to naprawdę konieczne.

32 Poziom izolacji 3 Poziom izolacji 3 rozwiązuje problem fantomów. Za niekonfliktowe uważa się takie operacje, gdy działanie jednej z nich nie powoduje zmiany zbioru danych, na których działa druga. Ten poziom izolacji, nazywany SERIALIZABLE oznacza, że transakcje są szeregowalne (tj. wszystkie operacje jednej transakcji poprzedzają wszystkie operacje innej transakcji).

33 Poziom izolacji 3 Przyjęcie tego rodzaju współbieżności operacji eliminuje wszystkie anomalie, w tym problem fantomów. Przy tym poziomie izolacji współbieżność transakcji jest najmniejsza, a efektywność przetwarzania bardzo niska. Należy więc stosować go tylko wtedy, gdy jest to naprawdę konieczne.

34 Poziomy izolacji - podsumowanie Związek poziomów izolacji z anomaliami przetwarzania transakcji Poziom izolacji Zagubiony Update Brak odtwarzalności Anomalia powtórnego czytania Fantomy 0: READ UNCOMMITTED Nie Tak Tak Tak 1: READ COMMITTED Nie Nie Tak Tak 2: REPEATABLE READ Nie Nie Nie Tak 3: SERIALIZABLE Nie Nie Nie Nie

35 Operacje niekonfliktowe - podsumowanie Sekwencja transakcji (operujących na tym samym zbiorze danych): begin T - pierwsza transakcja begin S - druga transakcja Jakakolwiek operacja obejmuje odczyt, wstawianie, aktualizację i usuwanie. Poziom izolacji Trans T Trans S 0: READ UNCOMMITTED Odczyt Jakakolwiek operacja Jakakolwiek operacja Odczyt 1: READ COMMITTED Odczyt Jakakolwiek operacja 2: REPEATABLE READ Odczyt Odczyt Odczyt Wstawianie 3: SERIALIZABLE Odczyt Odczyt

36 Operacje konfliktowe - podsumowanie Sekwencja transakcji (operujących na tym samym zbiorze danych): begin T - pierwsza transakcja begin S - druga transakcja Zapis obejmuje trzy operacje: wstawianie, aktualizację i usuwanie. Jakakolwiek operacja obejmuje odczyt i zapis. Poziom Trans T Trans S 0: READ UNCOMMITTED Zapis Zapis 1: READ COMMITTED Zapis Jakakolwiek operacja 2: REPEATABLE READ Zapis Odczyt Odczyt 3: SERIALIZABLE Zapis Jakakolwiek operacja Jakakolwiek operacja Aktualizacja Usuwanie Jakakolwiek operacja Zapis

37 Zarządzanie współbieżnością Współbieżne wykonywanie transakcji może być przyczyną niespójności bazy danych (spowodowaną anomaliami). Rozwiązaniem są protokoły (algorytmy) zarządzania współbieżnością transakcji, które tak szeregują (porządkują) operacje wchodzące w skład współbieżnie wykonywanych transakcji, aby nie zachodziły anomalie.

38 Zarządzanie współbieżnością - algorytmy Problem poprawnego uporządkowania operacji współbieżnie wykonywanych transakcji jest rozwiązywany za pomocą następujących metod: algorytmy blokowania dostępu do danych - uszeregowanie transakcji wynika z kolejności uzyskiwania blokad, algorytmy znaczników czasowych - uszeregowanie transakcji wynika z wartości znaczników czasowych związanych z transakcjami i danymi, algorytmy optymistyczne - walidacja poprawności uszeregowania.

39 Planista Zarządzaniem transakcjami zajmuje się wyspecjalizowany moduł planisty. Zadaniem planisty jest tworzenie poprawnego planu przetwarzania transakcji. Planista przyjmując daną operację ma do dyspozycji następujące działania: przekazanie tej operacji do wykonania menedżerowi danych, umieszczenie operacji w kolejce, jeśli znajduje się ona w konflikcie z inną operacją i należy poczekać na zakończenie tejże operacji, odrzucenie operacji i tym samym całej transakcji, jeśli na przykład jest to konieczne z punktu widzenia rozwiązywania problemu zakleszczenia.

40 Blokowanie dostępu do danych Z każdą daną x związana jest blokada (lock). Wyróżniamy dwa podstawowe typy blokad: blokada współdzielona S (shared lock) - może być założona na daną x przez kilka transakcji jednocześnie; używana jest do blokowania danych do odczytu blokada wyłączna X (exclusive lock) - może być założona tylko przez jedną transakcję jednocześnie; zakładana jest na dane do zapisu Jedynie blokady typu S mogą być jednocześnie założone przez dwie różne transakcje. Nie jest możliwe łączenie blokad X i X oraz S i X.

41 Algorytm blokowania dwufazowego W komercyjnych SZBD najczęściej realizowanym algorytmem blokowania dostępu do danych jest tzw. algorytm blokowania dwufazowego (two-phase locking, 2PL). Wykonywanie każdej transakcji przebiega w dwóch fazach: faza blokowania (ekspansji): w tej fazie transakcja musi założyć wszystkie blokady do wszystkich danych, do których będzie chciała mieć dostęp; moment założenia wszystkich blokad, równoznaczny z zakończeniem fazy blokowania, jest nazywany punktem akceptacji (commit point), faza odblokowywania (zwijania): w tej fazie następuje zdejmowanie wszystkich nałożonych blokad, nie można już w tym momencie zakładać żadnych nowych blokad.

42 Algorytm blokowania dwufazowego Zaletą algorytmu 2PL jest to, że każdy utworzony przez niego plan przetwarzania transakcji jest poprawny. Wadą algorytmu 2PL jest to, że może prowadzić do powstania zakleszczeń (deadlock).

43 Algorytm 2PL zakładanie blokad Realizacja: blokadę S (SHARED) dla tej samej danej może założyć dowolna liczba transakcji, blokadę X (EXCLUSIVE) dla konkretnej danej może założyć tylko jedna transakcja, S i X nie mogą być jednocześnie założone na tę samą daną dla dwóch różnych transakcji, założenie blokady S jest konieczne dla odczytania danej, założenie blokady X jest konieczne dla zapisania (modyfikacji, usunięcia) danej.

44 Algorytm 2PL zdejmowanie blokad Sposób zdejmowania blokad związany jest z realizacją przetwarzania odpowiadającego różnym poziomom izolacji. Poziom izolacji 0: dana zablokowana na czas realizacji operacji read (blokada S) jest natychmiast odblokowywana po zakończeniu tej operacji dana zablokowana na czas realizacji operacji write (blokada X) po wykonaniu operacji write zmienia typ blokady na S, to znaczy może na niej być realizowana operacja read, ale nie operacja write, blokada dla operacji write zdejmowana jest całkowicie dopiero po zatwierdzeniu transakcji

45 Algorytm 2PL zdejmowanie blokad C blokada jest utrzymywana aż do zatwierdzenia (commit) transakcji A blokada jest utrzymywana tylko podczas wykonywania aktualnego zapytania. S blokada współdzielona (shared) X blokada wyłączna (exclusive) Poziom izolacji Zapis Blokada X Odczyt Blokada S Odczyt zakresu (WHERE ) 0: READ UNCOMMITTED (X S) C A A 1: READ COMMITTED C A A 2: REPEATABLE READ C C A 3: SERIALIZABLE C C C

46 Zakleszczenia (dead-lock) Przykład: Transakcja T zablokowała daną x i żąda dostępu do danej y. Transakcja S zablokowała daną y i żąda dostępu do danej x. Ani T, ani S nie mogą dalej kontynuować jakiejkolwiek operacji. System zawiesza się. Możliwe są bardziej skomplikowane zakleszczenia:

47 Wykrywanie zakleszczeń i rozrywanie pętli zakleszczenia Detekcja zakleszczenia wymaga zbudowania grafu czekania i tranzytywnego domknięcia tego grafu. Rozrywanie pętli zakleszczenia polega na wybraniu transakcji ofiary uczestniczącej w zakleszczeniu i następnie jej zerwaniu oraz uruchomieniu od nowa. Wybór ofiary podlega różnym kryteriom, np. transakcja najmłodsza, najmniej pracochłonna, o niskim priorytecie, itp.

48 Niedopuszczanie do zakleszczeń Wstępne żądanie zasobów (preclaiming): przed uruchomieniem każda transakcja określa potrzebne jej zasoby; nie może później nic więcej żądać. Wada: zgrubne oszacowanie żądanych zasobów prowadzi do zmniejszenia stopnia współbieżności. Czekasz-umieraj (wait-die): jeżeli transakcja próbuje dostać się do zasobu, który jest zablokowany, to natychmiast jest zrywana i powtarzana od nowa. Metoda może być nieskuteczna dla systemów interakcyjnych (użytkownik może się denerwować koniecznością dwukrotnego wprowadzania tych samych danych) oraz prowadzi do spadku efektywności.

49 Znacznik czasowy - Timestamp Znacznik czasowy TS(T) (timestamp) transakcji T jest jej unikalnym identyfikatorem. Jest to etykieta czasowa nadawana transakcji w momencie jej przybycia do systemu. Znacznik czasowy jest również związany z każdą daną x w bazie danych. Ma on dwie wartości: read_ts(x) - znacznik czasowy transakcji, która ostatnio pomyślnie odczytała daną x write_ts(x) - znacznik czasowy transakcji, która ostatnio pomyślnie zapisała daną x

50 Algorytm znaczników czasowych Idea algorytmu: każda transakcja pozostawia swój znacznik czasowy przy danej, którą odczytuje lub zapisuje, jeżeli transakcja T chce czytać daną x, a była ona ostatnio zapisywana przez transakcję od niej młodszą (późniejszą), to transakcja T jest odrzucana (bo została wyprzedzona przez młodszą transakcję), jeżeli transakcja T chce zapisać daną x, a była ona ostatnio czytana lub zapisywana przez transakcję młodszą, to transakcja T jest odrzucana. Algorytm ten zapobiega zakleszczeniom.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

TECHNIKI STEROWANIA WSPÓŁBIEŻNOŚCIĄ. I. Wybrane problemy współbieżności. Utracona aktualizacja (lost update) TECHNIKI STEROWANIA WSPÓŁBIEŻNOŚCIĄ I. Wybrane problemy współbieżności Utracona aktualizacja (lost update) Przykład: Mąż wybiera 300 zł (ze wspólnego z żoną konta) w bankomacie A, w tym samym czasie żona

Bardziej szczegółowo

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

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

Transakcje. Bazy danych 155

Transakcje. Bazy danych 155 Transakcje Bazy danych 155 156 Bazy danych Przegląd zagadnień Transakcje czym sa i po co sie je stosuje Postulaty ACID Transakcje w SQL Stosowanie zamków oraz problemy z zakleszczania Stemple czasowe i

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

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

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

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

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

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

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

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

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

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

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

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

Informatyka (7-8) dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

Informatyka (7-8) dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro Informatyka (7-8) dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro katpalik@pg.gda.pl katarzyna.palikowska@wilis.pg.gda.pl Powtórzenie Tabela, rekord, krotka, wiersz Atrybut, kolumna,

Bardziej szczegółowo

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

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Przetwarzanie transakcyjne

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Przetwarzanie transakcyjne Przetwarzanie transakcyjne Wprowadzenie (1) Baza danych jest abstrakcyjnym odzwierciedleniem wybranego fragmentu rzeczywistości (ang. miniworld) Baza danych jest spójna jeżeli jej stan odpowiada stanowi

Bardziej szczegółowo

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

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

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

Bardziej szczegółowo

Podstawy teoretyczne baz danych. Recovery Transakcyjne odtwarzanie bazy danych po awarii

Podstawy teoretyczne baz danych. Recovery Transakcyjne odtwarzanie bazy danych po awarii Podstawy teoretyczne baz danych Recovery Transakcyjne odtwarzanie bazy danych po awarii Cel odtwarzania Podstawowym celem mechanizmów transakcyjnego odtwarzania bazy danych po awarii jest odtworzenie spójnego

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

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

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

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

Bardziej szczegółowo

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

PODSTAWY BAZ DANYCH. 11. Transakcje. 2009/ Notatki do wykładu Podstawy baz danych PODSTAWY BAZ DANYCH 11. Transakcje 1 Zbiór cech transakcji Transakcja jest to zespół operacji na bazie danych (INSERT, UPDATE, DELETE) charakteryzujący się następującymi własnościami: Niepodzielność (Atomicity)

Bardziej szczegółowo

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

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

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

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz Wyzwalacze Wyzwalacze są specjalnymi procedurami składowanymi, uruchamianymi automatycznie w następstwie zaistnienia określonego typu zdarzenia. Ich główne zadanie polega na wymuszaniu integralności danych

Bardziej szczegół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

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

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer? Kadry Optivum, Płace Optivum Jak przenieść dane na nowy komputer? Aby kontynuować pracę z programem Kadry Optivum lub Płace Optivum (lub z obydwoma programami pracującymi na wspólnej bazie danych) na nowym

Bardziej szczegółowo

Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski. Poznań, 30.09.2015

Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski. Poznań, 30.09.2015 Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski Poznań, 30.09.2015 Plan Geneza Architektura Cechy Instalacja Standard SQL Transakcje i współbieżność Indeksy Administracja Splice Machince vs.

Bardziej szczegółowo

Rozproszone bazy danych. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

Rozproszone bazy danych. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW Rozproszone bazy danych Robert A. Kłopotek r.klopotek@uksw.edu.pl Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW Scentralizowana baza danych Dane są przechowywane w jednym węźle sieci Można

Bardziej szczegółowo

Paweł Rajba

Paweł Rajba Paweł Rajba pawel@cs.uni.wroc.pl http://www.itcourses.eu/ Transakcje i blokady Wprowadzenie do transakcji, rodzaje transakcji Punkty zapisu, błędy w transakcjach Zagnieżdżanie, zabronione instrukcje Używanie

Bardziej szczegółowo

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer? Kadry Optivum, Płace Optivum Jak przenieść dane na nowy komputer? Aby kontynuować pracę z programem Kadry Optivum lub Płace Optivum (lub z obydwoma programami pracującymi na wspólnej bazie danych) na nowym

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

Tadeusz Pankowski

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

Bardziej szczegółowo

Microsoft SQL Server Podstawy T-SQL

Microsoft SQL Server Podstawy T-SQL Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania

Bardziej szczegółowo

Stan globalny. Krzysztof Banaś Systemy rozproszone 1

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

Bardziej szczegółowo

Podstawy języka SQL - dokończenie TRANSAKCJE 1

Podstawy języka SQL - dokończenie TRANSAKCJE 1 Podstawy języka SQL - dokończenie TRANSAKCJE 1 Czasami zachodzi potrzeba, aby pewna grupa operacji była nierozłączna tzn. albo wykonane powinny zostać wszystkie albo żadna z nich. Najprostszym przykładem

Bardziej szczegółowo

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, 2016 Spis treści Wprowadzenie Podziękowania xiii xvii 1 Podstawy zapytań i programowania T-SQL 1 Podstawy

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Recovery Transakcyjne odtwarzanie bazy danych po awarii

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

Bardziej szczegółowo

2014-06-30 21:11 BD_1_W9

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

Bardziej szczegółowo

Hbase, Hive i BigSQL

Hbase, Hive i BigSQL Hbase, Hive i BigSQL str. 1 Agenda 1. NOSQL a HBase 2. Architektura HBase 3. Demo HBase 4. Po co Hive? 5. Apache Hive 6. Demo hive 7. BigSQL 1 HBase Jest to rozproszona trwała posortowana wielowymiarowa

Bardziej szczegółowo

Płace Optivum. 1. Zainstalować serwer SQL (Microsoft SQL Server 2008 R2) oraz program Płace Optivum.

Płace Optivum. 1. Zainstalować serwer SQL (Microsoft SQL Server 2008 R2) oraz program Płace Optivum. Płace Optivum Jak przenieść dane programu Płace Optivum na nowy komputer? Aby kontynuować pracę z programem Płace Optivum na nowym komputerze, należy na starym komputerze wykonać kopię zapasową bazy danych

Bardziej szczegółowo

MongoDB. wprowadzenie. dr inż. Paweł Boiński, Politechnika Poznańska

MongoDB. wprowadzenie. dr inż. Paweł Boiński, Politechnika Poznańska MongoDB wprowadzenie dr inż. Paweł Boiński, Politechnika Poznańska Plan Historia Podstawowe pojęcia: Dokument Kolekcja Generowanie identyfikatora Model danych Dokumenty zagnieżdżone Dokumenty z referencjami

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

Bazy danych 2. Wykład 1

Bazy danych 2. Wykład 1 Bazy danych 2 Wykład 1 Sprawy organizacyjne Materiały i listy zadań zamieszczane będą na stronie www.math.uni.opole.pl/~ajasi E-mail: standardowy ajasi@math.uni.opole.pl Sprawy organizacyjne Program wykładu

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

SZKOLENIE: Administrator baz danych. Cel szkolenia

SZKOLENIE: Administrator baz danych. Cel szkolenia SZKOLENIE: Administrator baz danych. Cel szkolenia Kurs Administrator baz danych skierowany jest przede wszystkim do osób zamierzających rozwijać umiejętności w zakresie administrowania bazami danych.

Bardziej szczegółowo

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000 Bazy Danych LITERATURA C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000 J. D. Ullman, Systemy baz danych, WNT - W-wa, 1998 J. D. Ullman, J. Widom, Podstawowy

Bardziej szczegółowo

Kopie zapasowe w SQL Server. Michał Bleja

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

Bardziej szczegółowo

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

Diagram wdrożenia. Rys. 5.1 Diagram wdrożenia.

Diagram wdrożenia. Rys. 5.1 Diagram wdrożenia. Diagram wdrożenia Zaprojektowana przez nas aplikacja bazuje na architekturze client-server. W tej architekturze w komunikacji aplikacji klienckiej z bazą danych pośredniczy serwer aplikacji, który udostępnia

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 4 Budowa prostych formularzy, stany sesji, tworzenie przycisków Plan Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 2 Formularz i jego typy Tworzenie formularza

Bardziej szczegółowo