Złożona struktura transakcji

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

Download "Złożona struktura transakcji"

Transkrypt

1 Złożona struktura transakcji

2 Ograniczenia płaskiej struktury transakcji Planowanie wyjazdu Poznań Rockford k Chicago BEGIN WORK S1: zarezerwuj lot z Poznania do Frankfurtu S2: zarezerwuj lot z Frankfurtu do Nowego Jorku (tego samego dnia) S3: zarezerwuj lot z Nowego Jorku do Chicago (tego samego dnia) S4: zarezerwuj przejazd autobusem z Chicago do Rockford S5: zarezerwuj hotel w Rockford ROLLBACK Problem: nie ma tego dnia wolnych miejsc w hotelu w Rockford kchicago, ale można tanio wynająć pokój w hotelu w Chicago Implementacja w klasycznym modelu transakcji: Pojedyncza transakcja wycofanie rezerwacji S4 pociągnie za sobą utratę rezerwacji S1, S2 i S3 Zbiór logicznie powiązanych transakcji: nie można wycofać transakcji S1, S2 i S3 Klasyczny model transakcji nie odpowiada potrzebom aplikacji o złożonej strukturze przetwarzania

3 Transakcje intensywnie przetwarzające dane Doliczenie odsetek jedna duża transakcja DoliczOdsetki ( ) { exec sql BEGIN WORK; pobierz(procent); for (nr_konta = 1; nr_konta <= ; nr_konta++) ModyfikujKonto(nr_konta, odsetki); exec sql COMMIT WORK; return; } ModyfikujKonto(nr_konta long, odsetki float) { exec sql UPDATE konta SET saldo = saldo + (SELECT SUM(odsetki* ) FROM operacje WHERE ) WHERE id_konta = :nr_konta; return; }; W przypadku awarii duża ilość utraconej pracy Niski stopień współbieżności Duże obciążenie dla systemu: duża ilość blokad oraz wielkość logu wycofania transakcji

4 Przykład II Doliczenie odsetek zbiór autonomicznych transakcji DoliczOdsetki ( ) { pobierz(procent); for (nr_konta = 1; nr_konta <= ; nr_konta++) ModyfikujKonto(nr_konta, odsetki); return; } ModyfikujKonto(nr_konta long, odsetki float) { exec sql BEGIN WORK; exec sql UPDATE konta SET saldo = saldo + (SELECT SUM(odsetki* ) FROM operacje WHERE ) WHERE id_konta = :nr_konta; exec sql COMMIT WORK; return; }; Wysoka współbieżność pracy systemu Niskie obciążenie systemu W przypadku awarii systemu niespójność, utrata kontekstu pracy aplikacji

5 Rozszerzenia płaskiego modelu transakcji Zarządzanie przepływami pracy System powinien wspomagać zarządzanie wyodrębnionymi fragmentami długich transakcji Minimalizacja traconej pracy - System powinien umieć dzielić transakcje przetwarzające duże ilości danych na mniejsze odtwarzalne fragmenty w przypadku awarii procesu przetwarzania Zwiększenie współbieżności przetwarzania System powinien minimalizować blokowanie zasobów przez długo trwające transakcje Zawieszanie procesu przetwarzania transakcji System powinien umożliwiać zawieszanie procesu przetwarzania długo trwających transakcji i ich ponowne uruchamianie od momentu, w którym nastąpiło zawieszenie

6 Płaskie transakcje z punktami wycofania (ang savepoints) Nowe operacje definiujące strukturę transakcji: SAVE WORK: savepoint ROLLBACK WORK (savepoint) BEGIN WORK ( SAVE WORK: 1) Operacja Operacja SAVE WORK: 2 Operacja SAVE WORK: 3 Operacja Operacja SAVE WORK: 4 Operacja ROLLBACK WORK(2) Operacja Operacja SAVE WORK: 5 Operacja SAVE WORK: 6 Operacja Operacja SAVE WORK: 7 Operacja ROLLBACK WORK(5) Operacja Operacja SAVE WORK: 8 Operacja COMMIT WORK Trwałe punkty wycofania

7 Nowa operacja: Łańcuch transakcji CHAIN WORK = COMMIT WORK + BEGIN WORK T i begin commit T i+1 begin commit CHAIN WORK T i : Atomowa operacja: { * COMMIT WORK T i ; * BEGIN WORK T i+1 ; } ROLLBACK WORK T i : Atomowa operacja: { * ROLLBACK WORK (T i ); * BEGIN WORK (T i ); } Restart systemu po awarii w trakcie transakcji T i : Atomowa operacja: { * ROLLBACK WORK (T i ); * BEGIN WORK (T i ); } ROLLBACK WORK łańcuch transakcji:???

8 Przenoszenie i odtwarzanie kontekstu transakcji DoliczOdsetki ( ) { pobierz(procent); for (nr_konta = 1; nr_konta <= ; nr_konta++) ModyfikujKonto(nr_konta, odsetki); return; } ModyfikujKonto(nr_konta long, odsetki float) { exec sql BEGIN WORK; exec sql UPDATE konta SET saldo = (1 + procent saldo) * saldo; WHERE id_konta = nr_konta; exec sql COMMIT WORK; return; };

9 SAGA Cel zwiększenie stopnia współbieżności transakcji 1 Zdefiniowanie łańcucha transakcji jako pojedynczej jednostki sterowania 2 Saga jest jednostką atomowości, ale nie izolacji 3 Atomowość całego łańcucha transakcji jest zapewniana w wyniku zastosowania transakcji kompensacyjnych SAGA jest zbiorem płaskich transakcji s 1, s 2,s n Transakcje te mogą być wykonywane sekwencyjnie lub współbieżnie Każdej transakcji s i (1 i n) odpowiada transakcja kompensacyjna cs i, która wycofuje efekt działania transakcji s i Wynikiem poprawnego wykonania SAGI będzie sekwencja: s 1,s 2,,s i,,s n-1,s n natomiast w przypadku wystąpienia błęu podczas wykonywania kroku j SAGI, wynikiem będzie sekwencja: s 1,s 2,,s j (abort),cs j-1,,cs 2,cs 1

10 Własności Transakcje zagnieżdżone 1 Transakcje mają złożoną strukturę pozwalającą definiować związki między podzbiorami operacji w ramach pojedynczej transakcji W ogólności jest to struktura hierarchiczna 2 Korzeniem tej hierarchii jest transakcja główna (ang top level transaction), a pozostałe węzły są pod-transakcjami 3 Pod-transakcje danej transakcji mogą być współbieżne BEGIN WORK call subtransaction call subtransaction COMMIT WORK BEGIN WORK call subtransaction call subtransaction COMMIT WORK BEGIN WORK COMMIT WORK BEGIN WORK COMMIT WORK BEGIN WORK COMMIT WORK Różne modele transakcji zagnieżdżonych: otwarte zamknięte wielopoziomowe

11 Typy pod-transakcji Czy pomyślne zakończenie transakcji powinno być uzależnione od sposobu zakończenia jej podtransakcji? Model transakcji zagnieżdżonych przewiduje istnienie dwóch podstawowych typów pod-transakcji: transakcje krytyczne (ang vital sub-transaction), których niepomyślne zakończenie powoduje wycofanie całej transakcji transakcje niekrytyczne (ang non vital sub-transaction), których niepomyślne zakończenie nie ma wpływu na sposób zakończenia całej transakcji Organizacja wczasów: BEGIN WORK T 1 T 11 :organizacja podróży (vital) T 12 : rezerwacja hotelu (vital) T 13 : rezerwacja luksusowego samochodu (non vital) T 14 : rezerwacja dodatkowych atrakcji (non vital) COMMIT WORK

12 Typy pod-transakcji Z pod-transakcjami krytycznymi mogą być powiązane transakcje warunkowe (ang contingency), które są wykonywane jedynie w wypadku niepomyślnego zakończenia pod-transakcji krytycznych Transakcje warunkowe służą do definiowania alternatywnych sposobów realizacji określonych zadań BEGIN WORK T 1 T 111 : rezerwacja samolotu when failed then T 112 : rezerwacja pociągu (contingency) Sposobem umożliwiającym zwalnianie zasobów systemowych przydzielonych zakończonym pod-transakcjom są transakcje kompensujące Transakcje kompensujące muszą być zdefiniowane dla wszystkich pod-transakcji Wykonują one działania przywracające stan bazy danych sprzed wykonania powiązanych z nimi pod-transakcji BEGIN WORK T 1 T 11 : rezerwacja samolotu; CT 11 : wycofanie rezerwacji samolotu;

13 Zależności między pod-transakcjami W przeciwieństwie do transakcji głównej podtransakcje nie posiadają cechy trwałości D Reguła zatwierdzania - Zatwierdzenie pod-transakcji powoduje, że wprowadzone przez nią modyfikacje stają się dostępne (jedynie) dla transakcji rodzicielskiej Podtransakcja zostaje ostatecznie zatwierdzona jedynie, jeżeli jest lokalnie zatwierdzona i wszystkie transakcje rodzicielskie aż do korzenia drzewa zostaną zatwierdzone COMMIT T i WHEN T committed COMMIT WORK; Reguła wycofywania - Jeżeli transakcja (pod-transakcja) jest wycofywana to jej wszystkie pod-transakcje potomne również zostaną wycofane, niezależnie od ich lokalnego stanu zatwierdzenia Wycofywanie pod-transakcji jest rekurencyjnie stosowane do kolejnych niższych poziomów drzewa Wycofywanie transakcji w korzeniu drzewa prowadzi do wycofania wszystkich podtransakcji składających się na transakcję zagnieżdżoną

14 Zamknięte i otwarte transakcje zagnieżdżone W zamkniętym modelu transakcji zagnieżdżonych transakcje główne posiadają wszystkie cechy ACID, a pod-transakcje cechy ACI Reguła izolacji - Wszystkie modyfikacje wprowadzone przez pod-transakcje są widoczne dla transakcji rodzicielskich po lokalnym zatwierdzeniu pod-transakcji Wszystkie obiekty utrzymywane przez transakcję rodzicielską są dostępne dla jej transakcji potomnych Podtransakcje są w pełni izolowane od wszystkich innych pod-transakcji wewnątrz i na zewnątrz ich transakcji rodzicielskiej Blokady pod-transakcji są dziedziczone przez transakcje rodzicielskie W otwartym modelu transakcji zagnieżdżonych transakcja główna nie posiada cechy izolacji, cecha ta jest własnością pod-transakcji, które są liśćmi hierarchii transakcji Umożliwia to zwiększenie stopnia współbieżności transakcji i zmniejszenie obciążenia systemów

15 Transakcje wielopoziomowe Transakcje wielopoziomowe są rozszerzeniem modelu transakcji zagnieżdżonych o wykorzystanie semantyki operacji Kolejne poziomy zagnieżdżenia transakcji adresują warstwy semantyczne bazy danych Każda warstwa jest zbiorem dobrze zdefiniowanych abstrakcyjnych typów danych Najniższy poziom tworzy warstwa elementarnych i niepodzielnych operacji Krotki: warstwa 2 {wstaw, czytaj, modyfikuj, usuń} Pliki: warstwa 1 {otwórz, zamknij, czytaj rekord, zapisz rekord} Strony: warstwa 0 {czytaj, zapisz, modyfikuj nagłówek}

16 Implementacja operacji semantycznych Operacje semantyczne wykonywane w warstwie n są implementowane jako pod-transakcje wykonywane w warstwie n-1 zapisz_rekord(r) czytaj(p) modyfikuj_nagłówek(p) zapisz(p) Ze względu na topologię hierarchii transakcje wielopoziomowe są szczególnym przypadkiem modelu transakcji zagnieżdżonych, w którym hierarchie transakcji są zrównoważone i wszystkie mają taką samą wysokość

17 Własności transakcji wielopoziomowych Model transakcji wielopoziomowych pozwala na zwiększenie stopnia współbieżności transakcji zagnieżdżonych, przy zachowaniu cechy izolacji transakcji Przykład: Dwa poziomy abstrakcji: rekordy: operacje read(rekord) i write(rekord) strony dyskowe: operacje fetch(page) i store(page) T 1 T 2 r 2 (r4) r 1 (r1) w 2 (r3 6) w 1 (r2 3) w 2 (r2 4) f 2 (q) f 2 (p) f 1 (p) s 2 (p) f 1 (p) s 1 (p) f 2 (p) s 2 (p) Operacje na środkowym poziomie hierarchii nie są atomowe, jednak odpowiadające im podtransakcje są uszeregowalne Dzięki temu, mimo braku pełnej uszeregowalności najniższego poziomu transakcji, historia transakcji T 1 i T 2 jest poprawna stan przed: stan po: page: p: r1 = 1; r2 = 2; r3 = 3; page: p: r1 = 1; r2 = 4; r3 = 6; page: q: r4 = 0 page: q: r4 = 0

18 Przykład historii niepoprawnej T 1 T 2 r 2 (r4) r 1 (r1) w 2 (r3 6) w 1 (r2 3) w 2 (r2 4) f 2 (q) f 2 (p) f 1 (p) f 1 (p) s 2 (p) s 1 (p) f 2 (p) s 2 (p) Transakcje implementujące operacje środkowego poziomu hierarchii nie są uszeregowalne: transakcje odpowiadające operacjom w 2 (r3) i w 1 (r2) stan przed: stan po: page: p: r1 = 1; r2 = 2; r3 = 3; page: p: r1 = 1; r2 = 4; r3 = 3; page: q: r4 = 0 page: q: r4 = 0 Synchronizacja ograniczona do najwyższego poziomu abstrakcji jest niewystarczająca Powyższa historia jest niepoprawna, mimo że operacje semantyczne na poziomie środkowym są niekonfliktowe Konflikty (z punktu widzenia komutatywnych operacji warstwy wyższej są to pseudo-konflikty) występują na najniższej warstwie, a zawierające je pod-transakcje są nieuszeregowalne Niepoprawność powyższej historii transakcji wynika z braku atomowości operacji wyższych poziomów abstrakcji

19 Wielopoziomowa synchronizacja transakcji zagnieżdżonych Wielopoziomowa synchronizacja transakcji zagnieżdżonych polega na niezależnej synchronizacji transakcji (potransakcji) w oddzielnych warstwach Każda warstwa obejmuje po dwa poziomy abstrakcji: niższy widziany jako zbiór operacji; wyższy widziany jako zbiór transakcji T 1 T 2 r 2 (r4) r 1 (r1) w 2 (r3 6) w 1 (r2 3) warstwa I w 2 (r2 4) warstwa II f 2 (q) f 2 (p) f 1 (p) f 1 (p) s 2 (p) s 1 (p) f 2 (p) s 2 (p) Niezależność warstw pozwala na stosowanie w różnych warstwach różnych algorytmów synchronizacji

20 Uszeregowalność wielopoziomowa Wielopoziomowa historia transakcji jest parą: WHT = (F, <) gdzie: F jest lasem drzew transakcji; < jest relacją częściowego porządku zdefiniowana na zbiorze węzłów Relacja < jest sumą relacji porządkujących węzły na poszczególnych poziomach drzew Relacja < 0 jest relacją porządkującą operacje atomowe reprezentowane przez liście drzew Relacja < 0 może być uporządkowaniem częściowym Jednak relacja ta musi być określona dla wszystkich par operacji, dla których zachodzi relacja konfliktowości CON 0 Relacje częściowego porządku < i określające kolejność operacji na wyższych poziomach hierarchii transakcji są zdefiniowane następująco: operacja x poprzedza operację y w warstwie i wtedy i tylko wtedy, gdy wszyscy potomkowie operacji x poprzedzają wszystkich potomków operacji y W przeciwnym wypadku operacje x i y są współbieżne

21 Uszeregowalność wielopoziomowa Na każdym poziomie abstrakcji można określić quasiporządek operacji < Na poziomie 0 porządek ten określa ~ i jedynie kolejność operacji konfliktowych, to jest: < = < 0 CON 0 ~ 0 Dla dowolnego wyższego poziomu i, dwie operacje f i g występują w zależności f < g, wtedy i tylko wtedy, gdy ~ i mają potomków f i g na poziomie i-1, którzy są w relacji konfliktowej i f < g ~ i 1 Dla dwu poziomowego lasu, quasi-porządek < odpowiada ~ i grafowi uszeregowalności transakcji Stąd klasyczna teoria uszeregowalności może być traktowana jako szczególny przypadek uszeregowalności wielopoziomowej Definicja Dana wielopoziomowa historia transakcji jest uszeregowalna, wtedy i tylko wtedy, gdy dla każdego poziomu lasu i, relacja < (< i CON i ) jest acykliczna ~ i

22 Uszeregowalność wielopoziomowa Dla danej wielopoziomowej historii transakcji jej uszeregowalność może być zweryfikowana poprzez próbę zwinięcia lasu do korzeni poszczególnych transakcji za pomocą operacji przestawiania węzłów i redukcji poziomów, w następujący sposób: dla każdego poziomu, poczynając od poziomu 0, wyizoluj poddrzewa pod-transakcji przestawiając węzły niekonfliktowych operacji; zredukuj wyizolowane poddrzewa do ich korzeni; Jeżeli jest możliwe zwinięcie lasu drzew do korzeni reprezentujących główne transakcje wielopoziomowa historia jest uszeregowalna i jest równoważna uzyskanej historii sekwencyjnej

23 Przykład 1) Rozplątanie poddrzew w najniższej warstwie T 1 T 2 r 2 (r4) r 1 (r1) w 2 (r3 6) w 1 (r2 3) w 2 (r2 4) f 2 (q) f 2 (p) f 1 (p) s 2 (p) f 1 (p) s 1 (p) f 2 (p) s 2 (p) przestawienie 2) Redukcja poziomów T 1 T 2 r 2 (r4) r 1 (r1) w 2 (r3 6) w 1 (r2 3) w 2 (r2 4) redukcja f 2 (q) f 1 (p) f 2 (p) s 2 (p) f 1 (p) s 1 (p) f 2 (p) s 2 (p)

24 3) Rozplątanie poddrzew w kolejnej warstwie T 1 T 2 r 2 (r4) r 1 (r1) w 1 (r2 3) w 2 (r3 6) w 2 (r2 4) przestawienie 4) Redukcja poziomów T 1 T 2 redukcja r 1 (r1) w 1 (r2 3) r 2 (r4) w 2 (r3 6) w 2 (r2 4) 5) Uszeregowalna historia wielopoziomowa T 1 T 2

25 Ograniczenia modelu transakcji wielopoziomowych Struktura transakcji wielopoziomowych musi spełniać następujące wymagania: 1 Hierarchia abstrakcji Transakcja jest hierarchią podtransakcji Pod-transakcje w zależności od ich położenia w hierarchii (odległości od korzenia) należą do określonego poziomu abstrakcji Pod-transakcje należące do określonego poziomu abstrakcji tworzą wyodrębnione warstwy transakcji 2 Warstwy transakcji Wyodrębnione warstwy są całkowicie hermetyczne Pod-transakcje należące do warstwy n są kompletnie zaimplementowane przez podtransakcje warstwy n-1 3 Regularność struktury hierarchii Niedopuszczalne są wywołania między warstwami transakcji, które nie sąsiadują ze sobą

26 Atomowość transakcji wielopoziomowych Pod-transakcje bezpośrednio po ich zatwierdzeniu udostępniają wyniki swojej pracy Zwiększa to stopień współbieżności transakcji W związku z tym atomowość transakcji musi być zapewniona poprzez wykorzystanie transakcji kompensacyjnych Reguła zatwierdzania Pod-transakcja jest zatwierdzana niezależnie od jej transakcji rodzicielskiej Jej zatwierdzenie odblokowuje użycie skojarzonej z nią transakcji kompensującej Zatwierdzenie wszystkich transakcji rodzicielskich aż do korzenia drzewa nie ma żadnego wpływu na stan podtransakcji Jeżeli jednak któraś z transakcji rodzicielskich z korzeniem drzewa transakcji włącznie zostanie wycofana, to spowoduje to uruchomienie transakcji kompensującej, która z definicji musi zostać zatwierdzona Reguła wycofywania Jeżeli transakcja (pod-transakcja) jest wycofywana to dla wszystkich jej pod-transakcji potomnych uruchamiane są transakcje kompensujące, które muszą zostać zatwierdzone Uruchamianie transakcji kompensujących pod-transakcje jest rekurencyjnie stosowane do kolejnych niższych poziomów drzewa Wycofywanie transakcji w korzeniu drzewa prowadzi do skompensowania wszystkich zatwierdzonych pod-transakcji

27 Zarządzanie współbieżnym wykonywaniem transakcji w obiektowych bazach danych Idea Złożone abstrakcyjne typy danych tworzą wielowarstwową architekturę bazy danych Transakcje w na złożonych obiektach są naturalnymi hierarchiami pod-transakcji Rolę pod-transakcji pełnią metody skojarzone z obiektami Transakcje są, więc sekwencjami wywołań metod skojarzonych z obiektami, które rekursywnie wywołują metody obiektów składowych

28 Przykładowa baz danych Baza danych jest zbiorem hermetycznych obiektów o strukturze hierarchicznej Wierzchołkiem tej hierarchii są obiekty typu Items reprezentujące produkty sprzedawane przez hurtownię Struktura obiektów typu Item obejmuje atrybuty atomowe reprezentujące: identyfikatory (ItemNo), nazwy (Name), ceny jednostkowe (Price) i stany magazynowe (QOH) poszczególnych produktów oraz atrybut wielowartościowy (Orders) reprezentujący zbiór złożonych zamówień na dany produkt Struktura obiektów typu Order obejmuje tylko atrybuty atomowe reprezentujące: identyfikator zamówienia (OrderNo), identyfikator zamawiającego (CustomerNo), wielkość zamówienia (Quantity) i status jego realizacji (Status) ItemNo Items: set of Item Item Price Orders: set of Order Name QOH Order OrdeNo Quantity CustomerNo Status

29 Przykładowa baza danych Metody klasy Item i NewOrder (CustomerNo, Quantity) returns OrderNo wstawia nowe zamówienie do zbioru zamówień produktu i, oraz ustawia status zamówienia na wartość new i ShipOrder (OrderNo) reprezentuje operację wysłania produktu i do klienta, poprzez zmniejszenie wartości atrybutu QOH o wielkość Quantity i PayOrder (OrderNo) reprezentuje operację opłacenia zamówienia i przez klienta i TotalPayment () returns Money oblicza całkowitą wartość wszystkich opłaconych zamówień na produkt i Metody klasy Order o ChangeStatus (event) zmień status zamówienia o przez ustawienie flagi event Status zamówienia może być następujący: new, shipped, paid, shipped&paid o TestStatus (event) returns Boolean sprawdza status zamówienia o i zwraca jedną z wartości true lub false Metody atrybutów atomowych a Get ( ) - odczytuje wartość atrybutu a a Put ( ) - modyfikuje wartość atrybutu a

30 Transakcja wielopoziomowa w obiektowej bazie danych BEGIN WORK i1 ShipOrder(o1) i2 ShipOrder(o2) COMMIT WORK BEGIN WORK o1 ChangeStatus (shipped) i1(qoh) Get( ) i1(qon) Put( ) COMMIT WORK BEGIN WORK o2 ChangeStatus (shipped) i2(qoh) Get( ) i2(qoh) Put( ) COMMIT WORK BEGIN WORK o1(status) Get( ) o1(status) Put( ) COMMIT WORK BEGIN WORK o2(status) Get( ) o2(status) Get( ) COMMIT WORK

31 Matryce kompatybilności Wywołanie metod f i g na tym samym obiekcie Item jest komutatywne wtedy i tylko wtedy, gdy dwie dowolne sekwencyjne realizacje zawierające metody f i g oraz dowolne inne metody obiektu Item są nierozróżnialne: przez końcowy stan obiektu Item; przez wartości zwracane przez metody f i g Założenie: dostawa produktu jest niezależna od tego, czy zapłacono za zamówienie

32 Matryca kompatybilności metod obiektów klasy Item Item NewOrder (CustomerNo, Quantity) OrderNo ShipOrder (OrderNo) NewOrder (CustomerNo, Quantity) OrderNo ShipOrder (OrderNo) PayOrder (OrderNo) TotalPayment OK konflikt konflikt OK konflikt konflikt OK OK PayOrder (OrderNo) konflikt OK konflikt konflikt TotalPayment OK OK konflikt OK

33 Matryca kompatybilności metod obiektów klasy Order Order ChangeStatus (o, shipped) ChangeStatus (o, paid) TestStatus (o, shipped) TestStatus (o, paid) ChangeStatus (o, shipped) OK OK konflikt OK ChangeStatus (o, paid) OK OK OK konflikt TestStatus (o, shipped) TestStatus (o, paid) konflikt OK OK OK OK konflikt OK OK Matryca kompatybilności metod atrybutów atomowych klas Item i Orders Atrybuty atomowe Get ( ) Put ( ) Get ( ) OK konflikt Put ( ) konflikt konflikt

34 Transakcje wykonywane w przykładowej bazie danych Rozważanych będzie następujących pięć typów transakcji: T1: realizacja dwóch zamówień na dwa różne produkty dla danego klienta (dwukrotne wywołanie metody ShipOrder dla obiektów i1 i i2, z argumentami o1 i o2); T2: opłacenie przez klienta dwóch zamówień na dwa różne produkty (dwukrotne wywołanie metody PayOrder dla obiektów i1 i i2, z argumentami o1 i o2); T3: sprawdzenie realizacji dwóch zamówień jednego klienta na dwa różne produkty (dwukrotne wywołanie metody TestStatus na zamówieniach o1 i o2 z argumentem shiped); T4: sprawdzenie płatności dwóch zamówień jednego klienta na dwa różne produkty (dwukrotne wywołanie metody TestStatus na zamówieniach o1 i o2 z argumentem paid), T5: obliczenie ogólnej sumy wpłat dla wszystkich zamówień dotyczących danego produktu (wykonanie metody TotalPayment dla produktu i1)

35 Podstawowy algorytm zarządzania współbieżnością transakcji Synchronizacja współbieżnych transakcji jest realizowana za pomocą algorytmu blokowania dwufazowego stosującego blokady semantyczne związane z poszczególnymi metodami klas Blokady są zwalniane niezależnie przez każdą pod-transakcję Ograniczenia Algorytm podstawowy jest poprawny, jeżeli spełnione są dwa założenia: Wszystkie pary (f, g) potencjalnie konfliktowych metod znajdują się na tym samym poziomie drzewa swoich transakcji Dla każdej pary (f, g ) przodków f i g, które znajdują się na tym samym poziomie drzewa swoich transakcji, f i g operują na tym samym obiekcie

36 Współbieżne wykonanie dwóch otwartych zagnieżdżonych transakcji T1 T2 ShipOrder(i1,o1) PayOrder(i1,o1) PayOrder(i2,o2) ShipOrder(i2,o2) ChangeStatu Get ChageStatus Put ChangeStatus ChangeStatus Get Put (o1,shipped) (i1,qon) (o1,paid) (i1,qon) (o2,paid) (o2,shipped) (i2,qoh) (i2,ooh) Get (o1,status) Put (o1,status) Get (o1,status) Put (o1,status) Get (o2,status) Put (o2,status) Get (o2,status) Put (o2,status)

37 Niepoprawna realizacja Ominięcie hermetyczności obiektu Item T1 T3 ShipOrder(i1,o1) ShipOrder(i2,o2) ChangeStat(o1,shipped) Get(i1,QOH) Put(i1,QOH) TestStat(o1,ship) TestStat(o2,ship) ChangeStat(o2,shipped) Get(o1,status) Put(o1,status) Get(o2,status) Get(o2,status) Put(o2,status) Get(o1,status)

38 Algorytm synchronizacji transakcji w obiektowych bazach danych Struktury pomocnicze Dla każdej blokady l: identyfikator obiektu, na której została założona; lista parametrów aktualnych wywołania metody; identyfikator transakcji / pod-transakcji, która założyła lub czeka na założenie blokady l Dla każdej transakcji / pod-transakcji t: uporządkowana lista wszystkich przodków pod-transakcji t; zbiór wszystkich transakcji / pod-transakcji, które blokują transakcję / pod-transakcję (waits-for-sets)

39 procedure exec-transaction (t) begin /* faza zakładania blokad */ for all s in tchildren do swaits-for-set := empty for all locks h założonych lub czekających na założenie na obiekcie sobject do b := test-conflict (h, s) if b nil then dodaj b do swaits-for-set fi od if swaits-for-set is not empty then kolejkuj żądanie blokowania sobject; czekaj na zakończenie wszystkich transakcji/pod-transakcji ze zbioru swaits-for-set; fi załóż blokadę na sobject exec-transaction (s) od /* faza akceptacji */ for all s in tchildren do usuń s ze wszystkich waits-for-sets innych transakcji/pod-transakcji if tparent nil then zamień blokadę s na blokadę utrzymaną fi od if tparent = nil then /* koniec transakcji głównej */ zwolnij wszystkie blokady fi end exec-transaction

40 function test_conflict(h,r) returns tid /* Testuje zgodność metod h i r Dla kompatybilnych blokad zwraca wartość nil Dla niekompatybilnych przodka transakcji h, na którego zakończenie musi czekać transakcja r */ begin if h and r są kompatybilne or r and h należą do tej samej transakcji głównej then return nil fi for all h in hancestor_chain do for all r in rancestor_chain do if h and r są kompatybilne then if h is zatwierdzona then return nil else return h /* r musi czekać na zakończenie h / fi fi od /for all r / od /for all h / return hroot /* w najgorszym przypadku r musi czekać na zakończenie głównej transakcji h */ end test-conflict

41 Konflikt rozwiązany przez komutatywnych i zatwierdzonych przodków komutatywny i zatwierdzony przodek T 1 T 4 ShipOrder(i1,o1) ShipOrder(i2,o2) ChangeStat(o1,shipped) Get(i1,QOH)Put(i1,QOH) TestStat(o1,paid) TestStat(o2,paid) ChangeStat(o1,shipped) Get(o1,status) Put(o1,status) Get(o1,status) Get(o2,status) Get(o2,status) Put(o2,status)

42 Konflikt rozwiązany przez komutatywnych i niezatwierdzonych przodków komutatywny i niezatwierdzony przodek ShipOrder(i1,o1) T 1 T 5 TotalPayment(i1) ShipOrder(i2,o2) ChangeStat(o1,shipped) Get(i1,QOH) Put(i1,QOH) ChangeStat(o1,shipped) Get(o1,status) Put(o1,status) Get(o1,status) Get(o1,quantity) Get(o2,status) Put(o2,status) Wykonanie przesunięte w czasie

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

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

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

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

Transakcje. (c) Instytut Informatyki Politechniki Poznańskiej

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

Bardziej szczegółowo

Bazy danych. Andrzej Łachwa, UJ, /15

Bazy danych. Andrzej Łachwa, UJ, /15 Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 12/15 WSPÓŁBIEŻNOŚĆ Serwer bazodanowy nie może obsługiwać klientów sekwencyjnie: wszyscy musieli by czekać

Bardziej szczegółowo

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

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

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

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

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

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

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

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

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

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

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

Bardziej szczegółowo

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

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

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

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

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

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

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

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

Materiały do laboratorium MS ACCESS BASIC

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

Bardziej szczegółowo

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

Współbieżność w środowisku Java

Współbieżność w środowisku Java Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych

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

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

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 > Typy indeksów Indeks jest zakładany na atrybucie relacji atrybucie indeksowym (ang. indexing field). Indeks zawiera wartości atrybutu indeksowego wraz ze wskaźnikami do wszystkich bloków dyskowych zawierających

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

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

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

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1 Procedury wyzwalane procedury wyzwalane, cel stosowania, typy wyzwalaczy, wyzwalacze na poleceniach DML i DDL, wyzwalacze typu INSTEAD OF, przykłady zastosowania, zarządzanie wyzwalaczami 1 Procedury wyzwalane

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

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

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

Bardziej szczegółowo

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

Przykładowe B+ drzewo

Przykładowe B+ drzewo Przykładowe B+ drzewo 3 8 1 3 7 8 12 Jak obliczyć rząd indeksu p Dane: rozmiar klucza V, rozmiar wskaźnika do bloku P, rozmiar bloku B, liczba rekordów w indeksowanym pliku danych r i liczba bloków pliku

Bardziej szczegółowo

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko Typy rozproszonych baz Systemy typu klient-serwer (jeden serwer) Jednorodna rozproszona baza (kilka serwerow, jeden system zarzadzania baza ) Niejednorodna

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

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

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Drzewa: BST, kopce Letnie Warsztaty Matematyczno-Informatyczne Drzewa: BST, kopce Definicja drzewa Drzewo (ang. tree) to nieskierowany, acykliczny, spójny graf. Drzewo może

Bardziej szczegółowo

Post-relacyjne bazy danych

Post-relacyjne bazy danych Post-relacyjne bazy danych Historia języka SQL 1. Sequel-XRM 2. Sequel/2 SQL 3. ANSI SQL 1986 (ISO 1987) 4. X/Open (UNIX), SAA(IBM) 5. ANSI SQL 1989 6. ANSI/ISO SQL 92 Entry level 7. ANSI SQL 92 (SQL 2)

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

Pakiety podprogramów Dynamiczny SQL

Pakiety podprogramów Dynamiczny SQL Pakiety podprogramów Dynamiczny SQL Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora), dynamiczny SQL 1 Pakiety Pakiet (ang. package)

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

Język PL/SQL Procedury i funkcje składowane

Język PL/SQL Procedury i funkcje składowane Język PL/SQL Procedury i funkcje składowane Podprogramy, procedury i funkcje składowane, typy argumentów, wywoływanie procedur i funkcji, poziomy czystości funkcji 1 Podprogramy Procedury (wykonują określone

Bardziej szczegółowo

Bloki anonimowe w PL/SQL

Bloki anonimowe w PL/SQL Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia

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

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

Metody getter https://www.python-course.eu/python3_object_oriented_programming.php 0_class http://interactivepython.org/runestone/static/pythonds/index.html https://www.cs.auckland.ac.nz/compsci105s1c/lectures/

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

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

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

PL/SQL. Zaawansowane tematy PL/SQL

PL/SQL. Zaawansowane tematy PL/SQL PL/SQL Zaawansowane tematy PL/SQL Cele Poznanie złożonych i referencyjnych typów danych Poznanie konstrukcji kursora Poznanie kodu składowanego Poznanie procedur i funkcji 2 Złożone typy danych RECORD

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

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Abstrakcja programowania współbieżnego Instrukcje atomowe i ich przeplot Istota synchronizacji Kryteria poprawności programów współbieżnych

Bardziej szczegółowo

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe Relacyjny model danych Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe Charakterystyka baz danych Model danych definiuje struktury danych operacje ograniczenia integralnościowe

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 8 Wprowadzenie Definiowanie typu obiektowego Porównywanie obiektów Tabele z obiektami Operacje DML na obiektach Dziedziczenie -

Bardziej szczegółowo

Język PL/SQL Pakiety podprogramów

Język PL/SQL Pakiety podprogramów Język PL/SQL Pakiety podprogramów Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora) 1 Pakiety Pakiet (ang. package) grupuje powiązane

Bardziej szczegółowo

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze Cechy bloków nazwanych: w postaci skompilowanej trwale przechowywane na serwerze wraz z danymi wykonywane na żądanie użytkownika lub w

Bardziej szczegółowo

15. Funkcje i procedury składowane PL/SQL

15. Funkcje i procedury składowane PL/SQL 15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp

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

Definicja pliku kratowego

Definicja pliku kratowego Pliki kratowe Definicja pliku kratowego Plik kratowy (ang grid file) jest strukturą wspierająca realizację zapytań wielowymiarowych Uporządkowanie rekordów, zawierających dane wielowymiarowe w pliku kratowym,

Bardziej szczegółowo

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Cel zajęć. Celem zajęć jest zapoznanie się ze sposobem działania popularnych kolekcji. Wprowadzenie teoretyczne. Rozważana w ramach niniejszych

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

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 6 Wyzwalacze Wprowadzenie Tworzenie wyzwalacza Wyzwalacze typu,,po'' Wyzwalacze typu,,zamiast''

Bardziej szczegółowo

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola:

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola: Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.

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

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze 1 Funkcje i procedury pamiętane Następujące polecenie tworzy zestawienie zawierające informację o tym ilu jest na naszej hipotetycznej

Bardziej szczegółowo

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel Wstęp do programowania Drzewa Piotr Chrząstowski-Wachtel Drzewa Drzewa definiują matematycy, jako spójne nieskierowane grafy bez cykli. Równoważne określenia: Spójne grafy o n wierzchołkach i n-1 krawędziach

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

BAZA DANYCH SIECI HOTELI

BAZA DANYCH SIECI HOTELI Paulina Gogół s241906 BAZA DANYCH SIECI HOTELI Baza jest częścią systemu zarządzającego pewną siecią hoteli. Składa się z tabeli powiązanych ze sobą różnymi relacjami. Służy ona lepszemu zorganizowaniu

Bardziej szczegółowo

Obiektowe bazy danych

Obiektowe bazy danych Obiektowe bazy danych Obiektowo-relacyjne bazy danych Wykład prowadzi: Tomasz Koszlajda Obiektowo-relacyjne bazy danych Ewolucja rozszerzeń relacyjnego modelu danych: Składowanie kodu procedur w bazie

Bardziej szczegółowo

Cele. Definiowanie wyzwalaczy

Cele. Definiowanie wyzwalaczy WYZWALACZE Definiowanie wyzwalaczy Cele Wyjaśnić cel istnienia wyzwalaczy Przedyskutować zalety wyzwalaczy Wymienić i opisać cztery typy wyzwalaczy wspieranych przez Adaptive Server Anywhere Opisać dwa

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

Ada95 przetwarzanie rozproszone

Ada95 przetwarzanie rozproszone Ada95 przetwarzanie rozproszone 1. Model systemu rozproszonego 2. Partycje i jednostki kompilacji 3. Glade narzędzie gnatdist język opisu konfiguracji 4. Przykład programu rozproszonego Model systemu rozproszonego

Bardziej szczegółowo

Ada95 przetwarzanie rozproszone

Ada95 przetwarzanie rozproszone 1 Ada95 przetwarzanie rozproszone 1. Model systemu rozproszonego 2. Partycje i jednostki kompilacji 3. Glade narzędzie gnatdist język opisu konfiguracji 4. Przykład programu rozproszonego 2 węzeł Model

Bardziej szczegółowo

Zarządzanie bazą danych. Bazy Danych i Systemy informacyjne Wykład 4. Piotr Syga

Zarządzanie bazą danych. Bazy Danych i Systemy informacyjne Wykład 4. Piotr Syga Bazy Danych i Systemy informacyjne Wykład 4 Piotr Syga 26.10.2018 Procedury review Przypomnienie składni procedur Tworzenie DELIMITER $$ CREATE PROCEDURE zliczacz (OUT wynik INT) BEGIN operacje... END

Bardziej szczegółowo

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem

Bardziej szczegółowo

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować

Bardziej szczegółowo

Paweł Kurzawa, Delfina Kongo

Paweł Kurzawa, Delfina Kongo Paweł Kurzawa, Delfina Kongo Pierwsze prace nad standaryzacją Obiektowych baz danych zaczęły się w roku 1991. Stworzona została grupa do prac nad standardem, została ona nazwana Object Database Management

Bardziej szczegółowo

Technologie baz danych

Technologie baz danych Plan wykładu Technologie baz danych Wykład 2: Relacyjny model danych - zależności funkcyjne. SQL - podstawy Definicja zależności funkcyjnych Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów

Bardziej szczegółowo

Alicja Marszałek Różne rodzaje baz danych

Alicja Marszałek Różne rodzaje baz danych Alicja Marszałek Różne rodzaje baz danych Rodzaje baz danych Bazy danych można podzielić wg struktur organizacji danych, których używają. Można podzielić je na: Bazy proste Bazy złożone Bazy proste Bazy

Bardziej szczegółowo

Wstęp do Programowania potok funkcyjny

Wstęp do Programowania potok funkcyjny Wstęp do Programowania potok funkcyjny Marcin Kubica 2016/2017 Outline Moduły i bariery abstrakcji 1 Moduły i bariery abstrakcji Moduły co to jest i po co to jest? Duży system dzielimy na mniejsze, łatwiejsze

Bardziej szczegółowo

Modelowanie i Programowanie Obiektowe

Modelowanie i Programowanie Obiektowe Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 8b: Algebra relacyjna http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2009/tpi-2009 Prof. dr hab. Elżbieta Richter-Wąs 1 Algebra relacyjna Algebra relacyjna (ang.

Bardziej szczegółowo

XQuery. XQuery. Przykład. dokument XML. XQuery (XML Query Language) XQuery 1.0: An XML Query Language. W3C Recommendation http://www.w3.

XQuery. XQuery. Przykład. dokument XML. XQuery (XML Query Language) XQuery 1.0: An XML Query Language. W3C Recommendation http://www.w3. XQuery XQuery XQuery (XML Query Language) XQuery 1.0: An XML Query Language. W3C Recommendation http://www.w3.org/tr/xquery/ Język programowania funkcyjnego (podobnie jak Lisp) Język zapytań do danych

Bardziej szczegółowo

Procedury i funkcje składowane

Procedury i funkcje składowane Procedury i funkcje składowane Zmienne podstawienia i zmienne wiązane, podprogramy, procedury składowane, typy argumentów, wywoływanie procedur, funkcje składowane, poziomy czystości funkcji, funkcje tablicowe

Bardziej szczegółowo

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości

Bardziej szczegółowo

Logika funkcji. Modelowanie SI - GHJ 1

Logika funkcji. Modelowanie SI - GHJ 1 Logika funkcji precyzyjne i niedwuznaczne definiowanie szczegółów funkcji stosowana w tych przypadkach, w których funkcja jest złożona lub wymaga arbitralnego algorytmu Celem - zrozumienie przez projektanta

Bardziej szczegółowo

Rozproszone bazy danych 2

Rozproszone bazy danych 2 Rozproszone bazy danych 2 Zarządzanie transakcjami rozproszonymi Laboratorium przygotował: Robert Wrembel ZSBD laboratorium 2 (1) 1 Plan laboratorium Transakcja rozproszona - podstawowe cechy Uczestnicy

Bardziej szczegółowo

SQL 4 Structured Query Lenguage

SQL 4 Structured Query Lenguage Wykład 5 SQL 4 Structured Query Lenguage Instrukcje sterowania danymi Bazy Danych - A. Dawid 2011 1 CREATE USER Tworzy nowego użytkownika Składnia CREATE USER specyfikacja użytkownika [, specyfikacja użytkownika]...

Bardziej szczegółowo

Data Mining Wykład 3. Algorytmy odkrywania binarnych reguł asocjacyjnych. Plan wykładu

Data Mining Wykład 3. Algorytmy odkrywania binarnych reguł asocjacyjnych. Plan wykładu Data Mining Wykład 3 Algorytmy odkrywania binarnych reguł asocjacyjnych Plan wykładu Algorytm Apriori Funkcja apriori_gen(ck) Generacja zbiorów kandydujących Generacja reguł Efektywności działania Własności

Bardziej szczegółowo

Język PL/SQL. Rozdział 2. Kursory

Język PL/SQL. Rozdział 2. Kursory Język PL/SQL. Rozdział 2. Kursory Deklarowanie kursora, otwieranie kursora, pobieranie z kursora, zamykanie kursora, zmienne kursorowe, wyrażenie CURSOR, kursory niejawne. 1 Kursor jawny Każde zapytanie

Bardziej szczegółowo

Wzorce logiki dziedziny

Wzorce logiki dziedziny Wzorce logiki dziedziny 1. Wzorce logiki dziedziny skrypt transakcji (Transaction Script), brama tabeli (Table Data Gateway), model dziedziny (Domain model), strategia (Strategy), moduł tabeli (Table Module),

Bardziej szczegółowo

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem

Bardziej szczegółowo

Składowane procedury i funkcje

Składowane procedury i funkcje Składowane procedury i funkcje Procedury i funkcje są zestawem poleceń SQL, które są przechowywane na serwerze (tak jak dane w tablicach). Istnieją sytuacje, kiedy procedury i funkcje są szczególnie przydatne.

Bardziej szczegółowo