Tadeusz Pankowski

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

Download "Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski"

Transkrypt

1 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 Celem systemu zarządzania transakcjami jest takie sterowanie operacjami w bazie danych, aby były one wykonywane z możliwie wysokim współczynnikiem współbieżności i aby przeciwdziałać naruszeniu spójności bazy danych Cele zarządzania transakcjami zostały osiągnięte za pomocą odpowiednich protokołów zarządzania transakcjami (c) T Pankowski, Transakcje 1 (c) T Pankowski, Transakcje 2 Transakcje i ich właściwości Transakcją T nazywamy ciąg ntępujących operacji na wspólnej bazie danych: r T [x] czytanie (read) danej x przez transakcję T, w T [x] zapisanie (write) (aktualizacja) danej x przez transakcję T, a T odrzucenie (abort, rollback) (wycofanie) transakcji T, c T zatwierdzenie () transakcji T Mówiąc o danej x mamy na myśli jednostki danych na różnych poziomach granulacji może to być dana elementarna, krotka (rekord), zbiór krotek wyznaczony przez warunek ϕ, tabela bazy danych, itp create procedure money int if not exists(select * from PKO where NrRach return -1 else update PKO set Saldo = Saldo where NrRach create trigger IC_PKO on PKO for UPDATE money = PKOSaldo from PKO, deleted d where PKONrRach = dnrrach < 0 rollback Definiowanie transakcji - przykład create procedure money int if not exists(select * from WBK where NrRach return -1 else update WBK set Saldo = Saldo where NrRach (c) T Pankowski, Transakcje 3

2 Definiowanie transakcji przykład (cd) Transakcja przykład (cd) create procedure money int return rollback (c) T Pankowski, Transakcje 5 create procedure money int return rollback T: exec PRZELEW_PKO_WBK '11-11', 11', '22-22', 22', 100 r T [ ], 11 ], w T [11-11 ], 11 ], r T [ ], 22 ], w T [ ], 22 ], c T (c) T Pankowski, Transakcje 6 Transakcja przykład (cd) Transakcja przykład (cd) create procedure char(5, T: exec PRZELEW_PKO_WBK '11-12', 12', '22-22',100 money r T [ ], 12 ], a T int return rollback (c) T Pankowski, Transakcje 7 create procedure char(5, T: exec PRZELEW_PKO_WBK '11-11', 11', '22-22',1000 money r T [ ], 11 ], w T [ ], 11 ], a T int return rollback (c) T Pankowski, Transakcje 8

3 Transakcja przykład (cd) Przykład - podsumowanie create procedure char(5, T: exec PRZELEW_PKO_WBK '11-11', 11', '22-23',10 money r T [ ], 11 ], w T [ ], 11 ], r T [ ], 23 ], a T int return rollback (c) T Pankowski, Transakcje 9 Każde wykonywanie programu PRZELEW_PKO_WBK powoduje utworzenie nowej transakcji Przykłady takich transakcji: r T [ ], w T [ ], r T [ ], w T [ ], c T r T [ ], a T r T [ ], w T [ ], a T r T [ ], w T [ ], r T [ ], a T W ogólności w systemie, w którym istnieje wiele stanowisk komputerowych może być tworzonym bardzo wiele transakcji, z których duża liczba może być współbieżnych Współbieżność transakcji oznacza, że przed zakończeniem jednej transakcji rozpoczynana jest ntępna (inicjowana na przykład z inne stanowiska komputerowe) W stosowanym zapisie transakcji abstrahujemy zarówno od konkretnych wartości, jak i od operacji wykonywanych poza bazą danych (operacje w pamięci operacyjnej, obszarze roboczym, interakcja z użytkownikiem lub z innymi systemami) (c) T Pankowski, Transakcje 10 Właściwości ACID Przyjmuje się, że transakcje i protokoły zarządzania transakcjami muszą posiadać właściwość ACID wyrażoną przez ntępujące cztery postulaty: Atomowość (atomicity) każda transakcja stanowi pojedynczą i niepodzielną jednostkę przetwarzania (a także odtwarzania) w transakcji nie ma więc podtransakcji Każda transakcja jest bądź wykonana w całości, bądź też żaden jej efekt nie jest widoczny w bazie danych Spójność (consistency) transakcja rozpoczynając się w spójnym stanie bazy danych pozostawia bazę danych w stanie spójnym (tym samym lub innym) Jeśli transakcja narusza warunki spójności bazy danych, to zostaje odrzucona 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ść (duration) zmiany w bazie danych dokonane przez transakcję zatwierdzoną są trwałe w bazie danych, tzn nawet w przypadku awarii systemu musi istnieć możliwość ich odtworzenia (c) T Pankowski, Transakcje 11 Właściwości ACID (cd) W w niektórych koncepcjach systemów zarządzania bazami danych (systemy obiektowe, systemy wspomagające pracę grupową, systemy kooperacyjne), postulaty ACID są modyfikowane Na przykład w przypadku tzw transakcji dłutrwałych wprowadza się pojęcie podtransakcji i transakcji zagnieżdżonych Uwaga: pojęcie podtransakcji istnieje również w Transact-SQL, jednak ich rozumienie jest inne niż w przypadku transakcji wspomnianych powyżej transakcji zagnieżdżonych 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 (patrz dalej) (c) T Pankowski, Transakcje 12

4 Właściwości ACID - przykład Atomowość oznacza, że transakcję T i = (r i [Konto1], w i [Konto1], r i [Konto2], w i [Konto2], c i ), 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ś czie zrealizuje dwie ntępne operacje Byłaby to koncepcja wyróżniania podtransakcji, co w tradycyjnych systemach baz danych jest niedopuszczalne Jeśli więc z jakieś powodu wykonanie transakcji ulegnie przerwaniu (na przykład w wyniku awarii) po dwóch pierwszych operacjach, to system musi zapewnić wycofanie dokonanych zmian Właściwości ACID - przykład Spójność oznacza, że system nie dopuści do zatwierdzenia transakcji, która naruszy jakikolwiek warunek spójności bazy danych W rozważanym przypadku warunkiem spójności może być wymaganie, aby stan rachunku bankowe był zawsze większy od zera (statyczny warunek spójności) lub aby suma stanów kont po wykonaniu transakcji 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) (c) T Pankowski, Transakcje 13 (c) T Pankowski, Transakcje 14 Właściwości ACID - przykład Odizolowanie oznacza, że zmiany wykonane przez jedną transakcję nie są widoczne dla innych transakcji dopóty, dopóki transakcja ta nie zostanie zatwierdzona Rozważmy jednak ntępujący ciąg operacji: r 1 [Konto1], w 1 [Konto1], r 1 [Konto2], r 2 [Konto2], c 2, w 1 [Konto2], c 1, gdzie T 1 jest transakcją przelewu, a T 2 odczytuje stan konta Konto2, zanim jeszcze transakcja zmieniająca ten stan została zatwierdzona Naruszony jest więc ryrystyczny warunek odizolowania Często jednak sytuacja taka jest dopuszczalna (zwłzcza wtedy gdy odczytana wartość nie będzie wykorzystana do aktualizacji bazy danych) Właściwości ACID - przykład Trwałość oznacza, że zmiany wprowadzone do bazy danych przez transakcję, która została zatwierdzona są w tej bazie danych trwałe Oznacza to, że również w przypadku różnorodnych awarii (z wyłączeniem fizyczne zniszczenia nośnika danych) musi istnieć mechanizm ich odtwarzania Automatycznie jest wówcz odtwarzany ostatni poprawny (spójny) stan bazy danych Tak rozumiane odtwarzania nie należy mylić z odtwarzaniem bazy danych z archiwum (c) T Pankowski, Transakcje 15 (c) T Pankowski, Transakcje 16

5 Historie przetwarzania transakcji Z punktu widzenia analizy poprawności protokołów (alrytmów) zarządzania transakcjami istotne jest analizowanie historii przetwarzania transakcji Historia taka znana jest oczywiście dopiero po wykonaniu dane zbioru transakcji W analizie poprawności historii przetwarzania chodzi o sformułowanie wymagań dotyczących cech, jakie powinny posiadać historie dopuszczalne generowane przez protokoły Jeśli jesteśmy w stanie stwierdzić, że stosując określony protokół zawsze otrzymamy przetwarzanie, które historia posiada pożądane cechy, to możemy orzec, że protokół ten jest właściwy Historie przetwarzania transakcji Definicja Niech Σ = {T 1, T 2,, T n } będzie zbiorem transakcji Ciąg H = (o 1, o 2,, o m ) operacji pochodzących z transakcji należących do zbioru Σ nazywamy historią przetwarzania transakcji ze zbioru Σ Jeśli operacja o poprzedza operację o w historii H, to stosować będziemy zapis o < o Definicja Mówimy, że transakcja T czyta z transakcji T daną x, jeśli T jest transakcją aktywną, która zapisała x Definicja Mówimy, że transakcja T zapisuje w transakcji T daną x, jeśli T jest transakcją aktywną, która odczytała x (c) T Pankowski, Transakcje 17 (c) T Pankowski, Transakcje 18 Nieodtwarzalne historie przetwarzania scenariusz Nieodtwarzalne historie przetwarzania przykład Przypuśćmy, że transakcja T zmieniła wartość danej x Ntępnie transakcja T wczytała x i na postawie jej wartości zmieniła wartość danej y w bazie danych (T czyta z T) Przypuśćmy dalej, że transakcja T została zatwierdzona, a po tym zdarzeniu powstała konieczność odrzucenia transakcji T Należy więc 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 y Ta ostatnia operacja jest jednak niemożliwa, gdyż transakcja T, która zmianę tę wykonała, jest już zatwierdzona Zaistniała sytuacja, w której baza danych jest nieodtwarzalna(!) Rozważmy historię przetwarzania H 1 : w 1 [x] r 2 [x] w 2 [y] c 2 w 1 [z] a 1 H 1 opisuje przetwarzanie nieodtwarzalne Transakcja T 2 czyta z transakcji T 1, w 1 [x] < r 2 [x], i T 2 jest zatwierdzana przed odrzuceniem T 2, c 2 < a 1 Operacja w 2 [y] może oznaczać zapis wartości danej y wyznaczonej na podstawie wartości danej x Zmiany dokonanej przez operację w 2 [y] nie można jednak wycofać (podcz wycofywania konsekwencji transakcji T 1 ), gdyż transakcja T 2 została wcześniej zatwierdzona (c) T Pankowski, Transakcje 19 (c) T Pankowski, Transakcje 20

6 Nieodtwarzalne historie przetwarzania przyczyna i unikanie anomalii Rozważmy nieodtwarzalną historię przetwarzania H 1 : w 1 [x] r 2 [x] w 2 [y] c 2 w 1 [z] a 1 Powodem anomalii braku odtwarzalności jest to, że transakcja czytająca dane z innej transakcji, T 2, została zatwierdzona w czie aktywności transakcji, T 1, z której czytała Aby sytuacji takiej uniknąć, należałoby czekać z zatwierdzeniem transakcji T 2 do czu, aż zostanie zatwierdzona transakcja T 1 Definicja (zada odtwarzalności) Historia H przetwarzania transakcji opisuje przetwarzanie odtwarzalne, jeśli każda transakcja jest zatwierdzana po zatwierdzeniu wszystkich transakcji, z których czyta Historie przetwarzania z kkadą odrzuceń scenariusz Przestrzeganie zady odtwarzalności nie jest wystarczające Mimo jej przestrzegania może dojść do sytuacji, gdy odrzucenie jednej transakcji pociągnie za sobą konieczność odrzucenia zależnej od niej (w jakimś sensie) innej transakcji, odrzucenie tej drugiej może spowodować konieczność odrzucenia trzeciej itd, co może prowadzić do kkady odrzuceń Niech na przykład transakcja T wczyta dane zmienione przez nie zatwierdzoną jeszcze transakcję T Przypuśćmy, że transakcja T zostaje po tym zdarzeniu odrzucona Konsekwencją te jest także konieczność odrzucenia transakcji T Może to spowodować konieczność kkadowe odrzucanie wielu transakcji (c) T Pankowski, Transakcje 21 (c) T Pankowski, Transakcje 22 Historie przetwarzania z kkadą odrzuceń przykład Rozważmy ntępującą historię H 2 powstałą z historii H 1 : H 2 : w 1 [x] r 2 [x] w 2 [u] a 1 H 2 opisuje przetwarzanie odtwarzalne Jednak wykonanie operacji a 1 powoduje odrzucenie (wycofanie) transakcji T 1 i w konsekwencji kkadowe odrzucenie transakcji T 2 Historie przetwarzania z kkadą odrzuceń przyczyna i unikanie anomalii Rozważmy historię przetwarzania z kkadą odrzuceń: H 2 : w 1 [x] r 2 [x] w 2 [u] a 1 Powodem występowania kkady odrzuceń jest to, że dopuszczalne jest czytanie z nie zatwierdzonych transakcji Anomalię tę można wyeliminować zakładając, że czytanie danych zmienionych przez transakcję jest dopuszczalne dopiero wtedy, gdy transakcja ta została już zatwierdzone (eliminacja tzw brudne czytania) Definicja (zada zapobiegania kkadzie odrzuceń) Historia H opisuje przetwarzanie bez kkady odrzuceń, jeśli żadna z transakcji wchodząca w skład H nie czyta z transakcji nie zatwierdzonych (c) T Pankowski, Transakcje 23 (c) T Pankowski, Transakcje 24

7 Historie przetwarzania z anomalią powtórne czytania scenariusz Przypuśćmy, że transakcja T czyta daną x, a ntępnie transakcja T zapisuje nową wartość danej x i jest zatwierdzana Jeśli teraz transakcja T ponownie przeczyta daną x, to może się okazać, że dana ta ma inną wartość Transakcja T dysponuje więc dwiema różnymi wartościami tej samej danej Może zdarzyć się też sytuacja, że transakcja T usunie daną x Wówcz przy próbie ponowne czytania, transakcja T ma informację, że danej x nie ma w bazie danych Opisaną anomalię nazywamy anomalią powtórne czytania Historie przetwarzania z anomalią powtórne czytania przykład Rozważmy ntępującą historię przetwarzania transakcji: H 3 : r 1 [y] w 2 [y] c 2 r 1 [y] c 1 W H 3 występuje anomalia powtórne czytania, gdyż między dwoma wystąpieniami operacji czytania, r 1 [y], wystąpiła operacja zapisu w 2 [y], czyli r 1 [y] < w 2 [y] < r 1 [y] Wartość danej y przy pierwszym wystąpieniu operacji r 1 [y] może być różna niż przy drugim wykonaniu tej operacji Uwaga: zauważmy, że drugie wystąpienie operacji r 1 [y] poprzedzone jest operacją zatwierdzenia transakcji T 2 Zakładamy bowiem, że zabronione jest czytanie z nie zatwierdzonych transakcji Możliwe jest natomit zapisywanie w nie zatwierdzonych transakcjach (operacja w 2 [y]) (c) T Pankowski, Transakcje 25 (c) T Pankowski, Transakcje 26 Historie przetwarzania z anomalią powtórne czytania przyczyna i unikanie anomalii Historie przetwarzania z fantomami scenariusz Rozważmy historię przetwarzania z anomalią powtórne czytania: H 3 : r 1 [y] w 2 [y] c 2 r 1 [y] c 1 Powodem występowania anomalii powtórne czytania jest to, że dopuszczalne jest zapisywanie w nie zatwierdzonych transakcjach Anomalię tę można wyeliminować zakładając, że zapisywanie danych wczytanych przez transakcję jest dopuszczalne dopiero wtedy, gdy transakcja ta została już zatwierdzona Definicja (zada zapobiegania anomalii powtórne czytania) Historia H opisuje przetwarzanie bez anomalii powtórne czytania (tj z powtarzalnym czytaniem), jeśli żadna z transakcji wchodząca w skład H nie zapisuje w transakcjach nie zatwierdzonych Przypuśćmy, że transakcja T wczytała z tabeli R zbiór rekordów spełniających warunek ϕ Ntępnie inna transakcja, T, dołączyła do R nowy rekord r spełniający warunek ϕ i została zatwierdzona Jeśli T ponownie odwoła się do rekordów tabeli R spełniających warunek ϕ, to okaże się, że tym razem zbiór ten jest inny Podobna sytuacja wystąpi, jeśli transakcja T dokona takiej modyfikacji rekordu r nie spełniające 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ą (c) T Pankowski, Transakcje 27 (c) T Pankowski, Transakcje 28

8 Historie przetwarzania z fantomami przykład Rozważmy ntępującą historię przetwarzania transakcji: H 4 : r 1 [u] w 2 [z] c 1 r 1 [u] c 2 W historii H 4 może wystąpić zjawisko fantomów Jeśli bowiem operacja r 1 [u] wczytuje zbiór rekordów spełniających warunek ϕ, a operacja w 2 [z] spowoduje, że zbiór takich rekordów ulegnie zmianie (na przykład tak zostaną zmienione pola rekordu z, że po zmianie rekord z będzie spełniał warunek ϕ), to powtórne wykonanie operacji r 1 [u] zwróci inny zbiór rekordów Anomalia ta jest podobna do anomalii powtórne czytania Tym razem jednak transakcja T nie zmienia danych wczytanych przez nie zatwierdzoną transakcję T, ale dołącza nowe dane do zbioru, na którym T operuje (lub usuwa dane z te zbioru) Historie przetwarzania z fantomami przyczyna i unikanie anomalii Rozważmy historię przetwarzania z fantomami: H 4 : r 1 [u] w 2 [z] c 1 r 1 [u] c 2 Powodem pojawienia się fantomów jest to, że dopuszczalna jest zmiana zbioru danych, na którym operuje transakcja T 1 Konflikt między T 1 i T 2 nie jest więc bezpośredni, jak miało to miejsce przy anomalii powtórne czytania Pojawianiu się fantomów można zapobiec zakładając, że zmiany wykonywane przez transakcję T 2 (dołączanie, usuwanie, aktualizacja) są takie, że nie powodują zmiany zbioru danych, na których operuje T 1 Należy więc uwzględniać formuły definiujące zbiory danych, na których działają transakcje Definicja (zada zapobiegania pojawianiu się fantomów) Historia H opisuje przetwarzanie bez fantomów, jeśli żadna z transakcji wchodząca w skład H nie zmienia zbioru danych, na których działa jakakolwiek transakcja nie zatwierdzona (c) T Pankowski, Transakcje 29 (c) T Pankowski, Transakcje 30 Historie przetwarzania podsumowanie Rozważając historie przetwarzania transakcji zidentyfikowaliśmy cztery ich kly, związane z nimi anomalie i sposoby ich unikania W dalszym ciągu pokażemy, w jaki sposób można sterować poziomami izolacji transakcji Pokażemy, jaki jest związek między wybranym poziomem izolacji, a właściwą mu klą historii przetwarzania i tym samym, z jakimi anomaliami należy się wówcz liczyć Do określenia poziomów izolacji konieczne jest sprecyzowanie pojęcia konfliktowości między operacjami tworzącymi historię przetwarzania i tym samym między transakcjami, z których te operacje pochodzą Konfliktowość operacji Z punktu widzenia stosowane protokołów (alrytmów) zarządzania transakcjami istotne jest przyjęcia pojęcia konfliktowości operacji, tzn przyjęcia, jakie operacje są konfliktowe, a jakie nie Z góry można określić, jakie operacje nigdy nie będą konfliktowe Operacje o i [x] i p j [y] nie są konfliktowe, jeśli zachodzi co najmniej jeden z poniższych warunków: i = j, tj pochodzą z tej samej transakcji, x y, tj dotyczą różnych danych (lub rozłącznych zbiorów danych), żadna z operacji nie jest operacją zapisu, co najmniej jedna z operacji pochodzi od transakcji, która w chwili wydania drugiej została już zakończona (zatwierdzona lub odrzucona) (c) T Pankowski, Transakcje 31 (c) T Pankowski, Transakcje 32

9 Konfliktowość operacji (cd) Konfliktowość operacji (cd) Operacji o i [x] i p j [y] mogą być konfliktowe (warunek konieczny, ale nie dostateczny) wtedy, gdy: i j operacje pochodzą z dwóch różnych transakcji, co najmniej jedna z tych operacji jest operacją zapisu, x = y operacje dotyczą tej samej danej (lub przecinających się zbiorów danych); obydwie transakcji, z których pochodzą rozważane operacje są aktywne; druga z operacji (p j [y]) powoduje zmianę zbioru danych x (wyznaczone przez pewną formułę ϕ), na których działa pierwsza operacja (o i [x]) Definiowanie konfliktowości zależy ponadto od intencji użytkownika co do poziomu wzajemne odizolowania transakcji od siebie Użytkownik ma więc w istocie wpływ na interpretację cechy odizolowania wchodzącej w skład właściwości ACID Wyróżnia się cztery poziomy izolacji, a tym samym cztery poziomy konfliktowości operacji: poziom 0, poziom 1, poziom 2, poziom 3 Im wyższy poziom izolacji transakcji (konfliktowości) tym niższa współbieżność, a więc dłuższy cz wykonywania transakcji, ale jednocześnie tym większa niezawodność przetwarzania oraz je bezpieczeństwo z punktu widzenia zachowania spójności bazy danych Dalej rozważymy problemy, jakie wiążą się z przetwarzaniem na różnych poziomach izolacji Mówiąc o współbieżnym wykonywaniu operacji mamy na myśli wykonywanie operacji pochodzących z różnych transakcji i to w czie, gdy obydwie te transakcje są aktywne Transakcje, których operacje wykonywane są współbieżnie, nazywamy transakcjami współbieżnymi (c) T Pankowski, Transakcje 33 (c) T Pankowski, Transakcje 34 Przetwarzanie transakcji na różnych poziomach izolacji Wyróżniamy cztery poziomy izolacji transakcji: najniższy (0) zapewnia największą współbieżność, ale wiąże się z największym ryzykiem (mogą wystąpić anomalie omawiane poprzednio); najwyższy (3) pozwala uniknąć wszelkich anomalii, ale jest najbardziej kosztowny (często ponoszenie tych kosztów jest niepotrzebne) Przyjęcie konkretne poziomu izolacji wiąże się z określonymi problemami zbyt 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 zbyt wysoki może powodować nieuzadnione opóźnianie transakcji W dalszym ciągu omówimy problemy związane z przyjęciem poszczególnych poziomów izolacji Poziom izolacji 0 (READ UNCOMMITTED) Poziom izolacji 0 dopuszcza czytanie przez transakcję danych nie zatwierdzonych (unted), tj danych które zostały zmienione przez transakcję jeszcze nie zatwierdzoną 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 (a także w MS SQL Server) ten poziom izolacji nazywany jest także READ UNCOMMITED, a popularnie określany jest jako dirty read ( brudne czytanie ) (c) T Pankowski, Transakcje 35 (c) T Pankowski, Transakcje 36

10 Poziom izolacji 0 (READ UNCOMMITTED) (cd) Reguły współbieżności dla te poziomu izolacji przedstawiono poniższej w tablicy (T oznacza, że operacje mogą być wykonywane współbieżnie, czyli nie są konfliktowe, N oznacza brak współbieżności, a więc konfliktowość) Przyjęcie te rodzaju współbieżności operacji może doprowadzić do braku odtwarzalności, kkady odrzuceń, anomalii powtórne czytania oraz do pojawiania się fantomów Zaletą te poziomu izolacji jest jednak to, że uzyskujemy wysoki współczynnik współbieżność transakcji Ten poziom izolacji nale y wybierać dla tych transakcji, które nie wykorzystają wczytanych danych do modyfikacji bazy danych Poziom izolacji 1 (READ COMMITTED) Poziom izolacji 1 wprowadza zakaz czytania danych z transakcji niezatwierdzonych, a więc czytać można tylko dane zatwierdzone (ted) Poziom ten w standardzie SQL2 określany jest także jako READ COMMITED Przy tym poziomie izolacji dopuszczalne jest jednak zapisywanie danych w transakcjach nie zatwierdzonych Jest to domyślny poziom izolacji w MS SQL server 2000 Za konfliktowe uważa się wówcz 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 operacją zapisu nie są więc konfliktowe (c) T Pankowski, Transakcje 37 (c) T Pankowski, Transakcje 38 Poziom izolacji 1 (READ UNCOMMITTED) (cd) Reguły współbieżności dla poziomu izolacji READ COMMITTED przedstawiono poniższej w tablicy (T oznacza, że operacje mogą być wykonywane współbieżnie, czyli nie są konfliktowe, N oznacza brak współbieżności, a więc konfliktowość) Przyjęcie te rodzaju współbieżności operacji eliminuje brak odtwarzalności oraz kkadę odrzuceń Na tym poziomie izolacji mogą jednak wystąpić zarówno anomalia powtórne czytania, jak i zjawisko fantomów Poziom izolacji 2 (REPEATABLE READ) Poziom izolacji 2 wprowadza zakaz zapisywania w transakcjach nie zatwierdzonych Jeśli więc transakcja nie zatwierdzona przeczytała jakąś daną, to dana ta może być tylko czytana przez inną transakcję Jeśli natomit transakcja nie zatwierdzona 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 co najmniej jedna jest operacją zapisu Za niekonfliktowe uważa się tylko operacje czytania W standardzie SQL2 ten poziom izolacji określa się jako REPEATABLE READ, gdyż eliminuje anomalię powtórne czytania (c) T Pankowski, Transakcje 39 (c) T Pankowski, Transakcje 40

11 Poziom izolacji 2 (REPEATABLE READ) (cd) Reguły współbieżności dla poziomu izolacji REPEATABLE READ przedstawiono poniższej w tablicy (T oznacza, że operacje mogą być wykonywane współbieżnie, czyli nie są konfliktowe, N oznacza brak współbieżności, a więc konfliktowość) Przyjęcie te rodzaju współbieżności operacji eliminuje brak odtwarzalności, kkadę odrzuceń oraz anomalię powtórne czytania Na tym poziomie izolacji mogą pojawiać się fantomy Przy tym poziomie izolacji współbieżność transakcji jest mniejsza niż przy READ COMMITTED Należy więc stosować tylko wtedy, gdy jest to naprawdę konieczne Poziom izolacji 3 (SERIALIZABLE) Poziom izolacji 3 rozwiązuje problem fantomów Wymaga to poszerzenia rozważanych dotychcz pojęć współbieżności i konfliktowości o formuły (predykaty) definiujące zbiory danych, na których działają transakcje Za niekonfliktowe uważa się takie operację, gdy działanie jednej z nich nie powoduje zmiany zbiory danych, na których działa druga SERIALIZABLE oznacza, że historia przetwarzania transakcji jest szerewalna, a więc jest równoważna pewnej historii szerewej (tj takiej, gdzie wszystkie operacje jednej transakcji poprzedzają wszystkie operacje innej transakcji) (c) T Pankowski, Transakcje 41 (c) T Pankowski, Transakcje 42 Poziom izolacji 3 (SERIALIZABLE) (cd) Poziom izolacji 3 (SERIALIZABLE) (cd) Niech dane będą operacje o[ϕ] i p[ψ] pochodzące z dwóch różnych i aktywnych transakcji (ϕ i ψ są formułami określającymi zbiory danych, na których działa operacja) oraz niech operacja o poprzedza operację p, tzn o[ϕ] < p[ψ] Przyjmijmy oznaczenia: X = {x ϕ(x)} zbiór danych spełniających warunek ϕ bezpośrednio przed wykonaniem operacji p[ψ], Y = {y ψ(x)} zbiór danych spełniających warunek ψ bezpośrednio przed wykonaniem operacji p[ψ], X = {x ϕ(x)} zbiór danych spełniających warunek ϕ bezpośrednio po wykonaniu operacji p[ψ] Pojęcie współbieżności operacji rozszerzamy obecnie ntępująco: 1 Dwie operacje Read[ϕ] i Read[ψ] są zawsze współbieżne 2 Operacje, o[ϕ] i Write[ψ] są współbieżne, jeśli zbiór na którym działa druga z tych operacji jest rozłączny ze zbiorem związanym z wykonaniem pierwszej z nich oraz wykonanie drugiej operacji nie zmieni zbioru związane z wykonywaniem pierwszej Formalnie: X Y = oraz X = X 3 Operacje, Write[ϕ] i Read[ψ] są współbieżne, jeśli zbiór na którym działa druga z tych operacji jest rozłączny ze zbiorem związanym z wykonaniem pierwszej z nich Formalnie: X Y = (c) T Pankowski, Transakcje 43 (c) T Pankowski, Transakcje 44

12 Poziom izolacji 3 (SERIALIZABLE) (cd) Reguły współbieżności dla poziomu izolacji SERIALIZABLE przedstawiono poniższej w tablicy (T oznacza, że operacje mogą być wykonywane współbieżnie, czyli nie są konfliktowe, N oznacza brak współbieżności, a więc konfliktowość) Poziomy izolacji przetwarzania transakcji podsumowanie Przyjęcie określone poziomu izolacji może być źródłem problemów (anomalii) omówionych przy okazji historii przetwarzania transakcji Może też eliminować te problemy W poniższej tablicy symbol T oznacza, że dany problem występuje przy rozważanym poziomie izolacji, N że nie występuje Przyjęcie te rodzaju współbieżności operacji eliminuje wszystkie anomalię, 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ć tylko wtedy, gdy jest to naprawdę konieczne (c) T Pankowski, Transakcje 45 (c) T Pankowski, Transakcje 46 Przetwarzanie transakcji na różnych poziomach izolacji przykład Problemy związane z przetwarzaniem bazy danych przy różnych poziomach izolacji zilustrujemy teraz przykładami z MS SQL Server 2000 Przypuśćmy, że w bazie danych istnieje tabela Procesor o ntępującej postaci: Poziom izolacji READ UNCOMMITTED przykład Przy poziomie izolacji 0 możliwe jest czytanie danych zmienionych przez transakcje jeszcze nie zatwierdzone Mówi się wówcz o brudnym czytaniu Dopuszczenie takie czytania bardzo zwiększa współbieżność przetwarzania, ale jednocześnie może doprowadzić do udostępniania nieprawdziwych danych z bazy danych, co ilustruje poniższy przykład Na tabeli tej będą współbieżnie operowały dwie transakcje Pierwsza z tych transakcji ma stały poziom izolacji, tj domyślny READ COMMITTED, a poziom izolacji drugiej z nich ustalany jest za pomocą komy SET TRANSACTION ISOLATION LEVEL (c) T Pankowski, Transakcje 47 (c) T Pankowski, Transakcje 48

13 Poziom izolacji READ UNCOMMITTED przykład Historia przetwarzania transakcji na poziomie izolacji READ UNCOMMITTED: zapis odczyt Transakcja T1: Transakcja T2: set transaction isolation level read ted set transaction isolation level read unted Poziom izolacji READ COMMITTED przykład Historia przetwarzania transakcji na poziomie izolacji READ COMMITTED: odczyt zapis: Transakcja T1: Transakcja T2: set transaction isolation level read ed set transaction isolation level read ted update Procesor set Cena = 300 where Nazwa = '200MMX' T1 zmienia cenę rollback T1 wycofuje zmianę select Cena from Procesor where Nazwa = '200MMX' T2 czyta zmienioną cenę (300) T2 ma niepoprawną informację o cenie (300 zamit 320) (c) T Pankowski, Transakcje 49 select Cena, Stan from Procesor where Nazwa = '200MMX T1 czyta cenę i stan towaru (320, 20) update Procesor set Cena = 310 where Nazwa = '200MMX' T2 zmienia cenę wczytaną przez T1 select sum(cena*stan) from Procesor where Nazwa = '200MMX T1 czeka na zakończenie T2 Wykonanie oczekującej operacji select dla T1 Wynik sprzeczny z poprzednią operacją select (zwracana wartość: 310*20 = 6200) (c) T Pankowski, Transakcje 50 Poziom izolacji REPEATABLE READ przykład Przy poziomie izolacji REPEATABLE READ 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 Przetwarzanie transakcji dyskutowane w poprzednim przykładzie będzie obecnie miało historię przedstawioną na ntępnym slajdzie Poziom izolacji REPEATABLE READ przykład Historia przetwarzania transakcji na poziomie izolacji REPEATABLE READ: odczyt zapis odczyt: Transakcja T1: Transakcja T2: set transaction isolation level repeatable read set transaction isolation level repeatable read select Cena, Stan from Procesor where Nazwa = '200MMX T1 czyta cenę i stan towaru (320, 20) update Procesor set Cena = 310 where Nazwa = '200MMX' T2 czeka na zakończenie T1 select sum(cena*stan) from Procesor where Nazwa = '200MMX T1 oblicza wartość towaru (320*20 = 6400) Wykonanie oczekującej operacji update dla T2 (c) T Pankowski, Transakcje 51 (c) T Pankowski, Transakcje 52

14 Poziom izolacji REPEATABLE READ przykład Historia przetwarzania transakcji na poziomie izolacji REPEATABLE READ: odczyt dołączanie odczyt: Transakcja T1: Transakcja T2: set transaction isolation level repeatable read set transaction isolation level repeatable read Poziom izolacji SERIALIZABLE przykład Historia przetwarzania transakcji na poziomie izolacji SERIALIZABLE: odczyt dołączanie odczyt: Transakcja T1: Transakcja T2: set transaction isolation level serializable set transaction isolation level repeatable read select Cena, Stan from Procesor where Nazwa = '200MMX T1 czyta cenę i stan towaru (320, 20) select sum(cena*stan) from Procesor where Nazwa = '200MMX T1 oblicza wartość towaru ( ) insert into Procesor values('200mmx', 250, 10) T2 dołącza nową krotkę, fantom select Cena, Stan from Procesor where Nazwa = '200MMX T1 czyta cenę i stan towaru (320, 20) select sum(cena*stan) from Procesor where Nazwa = '200MMX T1 oblicza wartość towaru (6400) insert into Procesor values('200mmx', 250, 10) T2 czeka na zakończenie T1 Wykonanie insert przez T2 (c) T Pankowski, Transakcje 53 (c) T Pankowski, Transakcje 54 Przykład: transakcja T1 Przykład: transakcja T (c) T Pankowski, Transakcje 55 (c) T Pankowski, Transakcje 56

15 Przykład: transakcja T3 300 (c) T Pankowski, Transakcje 57

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

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

070 TRANSAKCJE. Prof. dr hab. Marek Wisła 070 TRANSAKCJE Prof. dr hab. Marek Wisła Transakcja - definicja Transakcja jest sekwencją logicznie powiązanych operacji na bazie danych, przeprowadzających bazę danych z jednego stanu spójnego w inny

Bardziej szczegółowo

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

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

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

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

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

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

Bazy danych 9. SQL Klucze obce Transakcje

Bazy danych 9. SQL Klucze obce Transakcje Bazy danych 9. SQL Klucze obce Transakcje P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Klucze obce Klucze obce powiazanie indeksowanej kolumny jakiejś tabeli z indeksowana kolumna

Bardziej szczegółowo

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

Ustawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia).

Ustawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia). POZIOMY IZOLACJI TRANSAKCJI 1. Microsoft SQL Server 2012 (od SQL Server 2005) W systemie SQL Server można wybrać sposób sterowania współbieżnością. Podstawowy sposób to stosowanie blokad. Wykorzystywane

Bardziej szczegółowo

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

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

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe -- Definicje relacji i utworzenie stanu początkowego dla ćwiczeń z synchronizacji transakcji DROP TABLE Konta cascade constraints; DROP TABLE

Bardziej szczegółowo

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Technologia Przykłady praktycznych zastosowań wyzwalaczy będą omawiane na bazie systemu MS SQL Server 2005 Wprowadzenie

Bardziej szczegółowo

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

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

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

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

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

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

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

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

Obsługa błędów w SQL i transakcje. Obsługa błędów w SQL

Obsługa błędów w SQL i transakcje. Obsługa błędów w SQL Obsługa błędów w SQL i transakcje Zacznijmy od najprostszego przykładu: CREATE PROCEDURE podziel1 Obsługa błędów w SQL Powyższa procedura w większości przypadków zadziała prawidłowo, lecz na przykład poniższe

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika Programowanie w SQL procedury i funkcje UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika 1. Funkcje o wartościach skalarnych ang. scalar valued

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

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

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

LAB 6 BEGIN TRANSACTION, COMMIT, ROLLBACK, SET TRANSACTION ISOLATION LEVEL,

LAB 6 BEGIN TRANSACTION, COMMIT, ROLLBACK, SET TRANSACTION ISOLATION LEVEL, Informatyka sem. III studia inżynierskie Transport 2018/19 Lab 6 LAB 6 TRANSACTION, COMMIT, ROLLBACK, SET TRANSACTION ISOLATION LEVEL, UPDATE, INSERT INTO, ALTER TABLE, CREATE VIEW, CREATE TRIGGER, FUNCTION,

Bardziej szczegółowo

BAZY DANYCH Cz III. Transakcje, Triggery

BAZY DANYCH Cz III. Transakcje, Triggery BAZY DANYCH Cz III Transakcje, Triggery Transakcje Definicja: Zbiór operacji (modyfikacja danych, usuwanie, wstawianie, tworzenie obiektów bazodanowych), które albo wszystkie kończone są sukcesem, albo

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

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze Funkcje użytkownika Tworzenie funkcji Usuwanie funkcji Procedury składowane Tworzenie procedur składowanych Usuwanie procedur składowanych Wyzwalacze Wyzwalacze a ograniczenia i procedury składowane Tworzenie

Bardziej szczegółowo

Obowiązuje od wersji

Obowiązuje od wersji Obowiązuje od wersji 8.30.0 1. Wstęp czym są gniazda rozszerzeń?... 2 2. Edytor gniazd rozszerzeń - informacje podstawowe... 3 3. Dostępne rodzaje funkcji w gniazdach rozszerzeń... 6 3.1 Procedura SQL...

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

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

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

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

Wyzwalacze (triggery) Przykład

Wyzwalacze (triggery) Przykład 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 związany

Bardziej szczegółowo

Haszowanie (adresowanie rozpraszające, mieszające)

Haszowanie (adresowanie rozpraszające, mieszające) Haszowanie (adresowanie rozpraszające, mieszające) Tadeusz Pankowski H. Garcia-Molina, J.D. Ullman, J. Widom, Implementacja systemów baz danych, WNT, Warszawa, Haszowanie W adresowaniu haszującym wyróżniamy

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

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

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

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

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

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Ćwiczenie rozpocznie się od wprowadzenia do laboratorium, po którym omówimy składnię ę polecenia INSERT pozwalającego ą na wstawianie krotek do

Ćwiczenie rozpocznie się od wprowadzenia do laboratorium, po którym omówimy składnię ę polecenia INSERT pozwalającego ą na wstawianie krotek do Na dotychczasowych zajęciach zapoznaliście się Państwo z poleceniem SELECT pozwalającym ą na wykonywanie zapytań ń do bazy danych i odczytywanie danych zawartych w relacjach. Celem tego ćwiczenia jest

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

0 + 0 = 0, = 1, = 1, = 0.

0 + 0 = 0, = 1, = 1, = 0. 5 Kody liniowe Jak już wiemy, w celu przesłania zakodowanego tekstu dzielimy go na bloki i do każdego z bloków dodajemy tak zwane bity sprawdzające. Bity te są w ścisłej zależności z bitami informacyjnymi,

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

Normalizacja. Pojęcie klucza. Cel normalizacji

Normalizacja. Pojęcie klucza. Cel normalizacji Plan Normalizacja Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski 1. Cel normalizacji. 2. Klucze schematów relacyjnych atrybuty kluczowe i niekluczowe. 3. 2PN druga postać normalna. 4. 3PN trzecia

Bardziej szczegółowo

Bazy danych i usługi sieciowe

Bazy danych i usługi sieciowe Bazy danych i usługi sieciowe SQL dokończenie Paweł Daniluk Wydział Fizyki Jesień 2016 P. Daniluk (Wydział Fizyki) BDiUS w. V Jesień 2016 1 / 39 Data Manipulation Language Zapytania klauzula SELECT Wstawianie

Bardziej szczegółowo

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

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

Bardziej szczegółowo

PODSTAWY BAZ DANYCH 13. PL/SQL

PODSTAWY BAZ DANYCH 13. PL/SQL PODSTAWY BAZ DANYCH 13. PL/SQL 1 Wprowadzenie do języka PL/SQL Język PL/SQL - rozszerzenie SQL o elementy programowania proceduralnego. Możliwość wykorzystywania: zmiennych i stałych, instrukcji sterujących

Bardziej szczegółowo

Cel normalizacji. Tadeusz Pankowski

Cel normalizacji. Tadeusz Pankowski Plan Normalizacja Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski 1. Cel normalizacji. 2. Klucze schematów relacyjnych atrybuty kluczowe i niekluczowe. 3. 2PN druga postać normalna. 4. 3PN trzecia

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

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

Bazy danych TERMINOLOGIA

Bazy danych TERMINOLOGIA Bazy danych TERMINOLOGIA Dane Dane są wartościami przechowywanymi w bazie danych. Dane są statyczne w tym sensie, że zachowują swój stan aż do zmodyfikowania ich ręcznie lub przez jakiś automatyczny proces.

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 2 Kusory Wprowadzenie Kursory użytkownika Kursory domyślne Zmienne kursora Wyrażenia kursora - 2 - Wprowadzenie Co to jest kursor?

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

5. Rozwiązywanie układów równań liniowych

5. Rozwiązywanie układów równań liniowych 5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u będziemy używać w taki sam sposób, jak wbudowanych funkcji

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

Szpieg 2.0 Instrukcja użytkownika

Szpieg 2.0 Instrukcja użytkownika Szpieg 2.0 Instrukcja użytkownika Spis treści: Wstęp: 1. Informacje o programie 2. Wymagania techniczne Ustawienia: 3. Połączenie z bazą danych 4. Konfiguracja email 5. Administracja Funkcje programu:

Bardziej szczegółowo

Bazy danych i systemy zarzadzania

Bazy danych i systemy zarzadzania Bazy danych: Podstawy języka SQL 1 Bazy danych i systemy zarzadzania Wykład IX Elementy języka SQL Część III Bazy danych: Podstawy języka SQL 2 Organizacja obiektów w SQL Struktury Danych Wiersze i kolumny:

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

Przykładowa baza danych BIBLIOTEKA

Przykładowa baza danych BIBLIOTEKA Przykładowa baza danych BIBLIOTEKA 1. Opis problemu W ramach zajęć zostanie przedstawiony przykład prezentujący prosty system biblioteczny. System zawiera informację o czytelnikach oraz książkach dostępnych

Bardziej szczegółowo

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła 030 PROJEKTOWANIE BAZ DANYCH Prof. dr hab. Marek Wisła Elementy procesu projektowania bazy danych Badanie zależności funkcyjnych Normalizacja Projektowanie bazy danych Model ER, diagramy ERD Encje, atrybuty,

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

Programowanie celowe #1

Programowanie celowe #1 Programowanie celowe #1 Problem programowania celowego (PC) jest przykładem problemu programowania matematycznego nieliniowego, który można skutecznie zlinearyzować, tzn. zapisać (i rozwiązać) jako problem

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

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

SQL Server. Odtwarzanie baz danych.

SQL Server. Odtwarzanie baz danych. SQL Server. Odtwarzanie baz danych. Utwórz bazę danych CW. Utwórz w niej tabelę T1(p1 INT PRIMARY KEY, p2 INT) i wpisz wiersz (1,100). Sprawdź ścieżkę dostępu do plików bazy (np. we właściwościach bazy

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

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Zapytania SELECT Dr inż. Paweł Kasprowski pawel@kasprowski.pl Przykład HAVING Podaj liczebność zespołów dla których najstarszy pracownik urodził się po 1940 select idz, count(*) from prac p

Bardziej szczegółowo

Kowalski Marcin 156439 Wrocław, dn. 3.06.2009 Jaśkiewicz Kamil 148592. Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami

Kowalski Marcin 156439 Wrocław, dn. 3.06.2009 Jaśkiewicz Kamil 148592. Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami Kowalski Marcin 156439 Wrocław, dn. 3.06.2009 Jaśkiewicz Kamil 148592 Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami Spis treści Założenia Projektowe...1 Schemat Bazy Danych...1

Bardziej szczegółowo

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok;

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok; Temat: Funkcje, procedury i wyzwalacze. Oprócz tabel i widoków w bazach danych możemy tworzyć własne funkcje, procedury i specjalny typ procedur, które będą automatycznie wywoływanie przez MySQL w memencie

Bardziej szczegółowo

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0 ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu ECDL/ICDL Użytkowanie baz danych. Sylabus opisuje zakres wiedzy

Bardziej szczegółowo

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek SELECT SELECT kolumna1, kolumna2,, kolumnan FROM tabela wybrane kolumny SELECT * FROM tabela wszystkie kolumny select * from Orders select CustomerID, CompanyName, Country from Customers WHERE SELECT *

Bardziej szczegółowo

Struktura drzewa w MySQL. Michał Tyszczenko

Struktura drzewa w MySQL. Michał Tyszczenko Struktura drzewa w MySQL Michał Tyszczenko W informatyce drzewa są strukturami danych reprezentującymi drzewa matematyczne. W naturalny sposób reprezentują hierarchię danych toteż głównie do tego celu

Bardziej szczegółowo