Złożona struktura transakcji
|
|
- Sabina Tomaszewska
- 8 lat temu
- Przeglądów:
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 Jednowersyjne algorytmy synchronizacji Wszystkie modyfikacje danych polegają na zniszczeniu starej wartości danych i wpisaniu w jej miejsce nowej wartości.
Bardziej szczegółowoWprowadzenie (1) Przetwarzanie transakcyjne. Wprowadzenie (2) Problemy przygotowania aplikacji
1 Wprowadzenie (1) 2 Baza danych jest abstrakcyjnym odzwierciedleniem wybranego fragmentu rzeczywistości (ang. miniworld) Przetwarzanie transakcyjne świat rzeczywisty miniworld' DB świat wirtualny miniworld'
Bardziej szczegółowoWłaściwości transakcji
Transakcje Właściwości transakcji Transakcja jednostka operowania na bazie danych podlegająca kontroli i sterowaniu System zarządzania transakcjami ma za zadanie takie sterowanie operacjami na bazie danych,
Bardziej szczegółowo1 Przetwarzanie transakcyjne Cechy transakcji Rozpoczęcie i zakończenie Punkty bezpieczeństwa... 3
Plan wykładu Spis treści 1 Przetwarzanie transakcyjne 1 1.1 Cechy transakcji................................. 2 1.2 Rozpoczęcie i zakończenie........................... 3 1.3 Punkty bezpieczeństwa.............................
Bardziej szczegółowoTransakcje. (c) Instytut Informatyki Politechniki Poznańskiej
ransakcje Definicja i własności transakcji, zatwierdzanie i wycofywanie, punkty bezpieczeństwa, spójność, anomalie współbieżnego dostępu do danych, poziomy izolacji transakcji, blokady, zakleszczenie Definicja
Bardziej szczegółowoBazy danych. Andrzej Łachwa, UJ, /15
Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 12/15 WSPÓŁBIEŻNOŚĆ Serwer bazodanowy nie może obsługiwać klientów sekwencyjnie: wszyscy musieli by czekać
Bardziej szczegółowoAlgorytmy zarządzania współbieżnym wykonywaniem transakcji część II
Algorytmy zarządzania współbieżnym wykonywaniem transakcji część II Wykład przygotował: Tadeusz Morzy BD wykład 9 Kontynuujemy prezentację i omówienie algorytmów zarządzania współbieżnym wykonywaniem transakcji.
Bardziej szczegółowoTadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski
Transakcje i ich właściwości Transakcje Tadeusz Pankowski wwwputpoznanpl/~tadeuszpankowski W SZBD stosuje się pojęcie transakcji jako jednostki operowania na bazie danych podlegającej sterowaniu i kontroli
Bardziej szczegółowoRozdział 1 Wprowadzenie do baz danych. (c) Instytut Informatyki Politechniki Poznańskiej 1
Rozdział 1 Wprowadzenie do baz danych 1 Model danych 2 Funkcje systemu zarządzania bazą danych Wymagania spójność bazy danych po awarii trwałość danych wielodostęp poufność danych wydajność rozproszenie
Bardziej szczegółowoZarządzanie transakcjami
Zarządzanie transakcjami Właściwości ACID Przyjmuje się, że transakcje i protokoły zarządzania transakcjami powinny posiadać właściwości ACID: Atomowość (atomicity) każda transakcja stanowi pojedynczą
Bardziej szczegółowoprzykłady problemów; realizacja dostaw części od producenta do klienta:
Przetwarzanie transakcyjne Transakcja zestaw operacji pod szczególną kontrolą transakcja to sekwencja operacji, która musi zakończyć się sukcesem w całości - w przeciwnym wypadku musi powrócić stan początkowy
Bardziej szczegółowoINFORMATYKA 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ółowoPlan wykładu. Przykład. Wprowadzenie BAZY DANYCH. Transakcje Hurtownie danych
Plan wykładu 2 BAZY DANYCH Wykład 5: Transakcje. Hurtownie danych. Transakcje Hurtownie danych Małgorzata Krętowska Wydział Informatyki Politechnika Białostocka Wprowadzenie Przykład Zmiany zachodzące
Bardziej szczegółowoI. Techniki wielowersyjne sterowania współbieżnością
I. Techniki wielowersyjne sterowania współbieżnością Techniki wielowersyjne multiversion concurrency control. Technika wielowersyjna oparta na znacznikach czasu Dla każdej wersji X i elementu X przechowywane
Bardziej szczegółowoE.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ółowoModelowanie hierarchicznych struktur w relacyjnych bazach danych
Modelowanie hierarchicznych struktur w relacyjnych bazach danych Wiktor Warmus (wiktorwarmus@gmail.com) Kamil Witecki (kamil@witecki.net.pl) 5 maja 2010 Motywacje Teoria relacyjnych baz danych Do czego
Bardziej szczegółowoBlaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik
Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Technologia Przykłady praktycznych zastosowań wyzwalaczy będą omawiane na bazie systemu MS SQL Server 2005 Wprowadzenie
Bardziej szczegółowoBAZY DANYCH. Transakcje. opracowanie: Michał Lech
BAZY DANYCH Transakcje opracowanie: Michał Lech Plan wykładu 1. Transakcje - co to jest? 2. Mechanizmy transakcji 3. Reguły ACID 4. Niekorzystne zjawiska 5. Poziomy izolacji 6. Polecenia PostgreSQL transakcji
Bardziej szczegółowoBazy danych wykład dziewiaty Transakcje. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)
Bazy danych wykład dziewiaty Transakcje Konrad Zdanowski Uniwersytet Kardynała Stefana Wyszyńskiego, Warszawa dziewiaty Transakcje 1 / 42 Outline 1 Transakcje Problemy interakcji 2 Metody usuwania konfliktów
Bardziej szczegółowoUstawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia).
POZIOMY IZOLACJI TRANSAKCJI 1. Microsoft SQL Server 2012 (od SQL Server 2005) W systemie SQL Server można wybrać sposób sterowania współbieżnością. Podstawowy sposób to stosowanie blokad. Wykorzystywane
Bardziej szczegółowo070 TRANSAKCJE. Prof. dr hab. Marek Wisła
070 TRANSAKCJE Prof. dr hab. Marek Wisła Transakcja - definicja Transakcja jest sekwencją logicznie powiązanych operacji na bazie danych, przeprowadzających bazę danych z jednego stanu spójnego w inny
Bardziej szczegółowoRozdział 17. Zarządzanie współbieżnością zadania dodatkowe
Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe -- Definicje relacji i utworzenie stanu początkowego dla ćwiczeń z synchronizacji transakcji DROP TABLE Konta cascade constraints; DROP TABLE
Bardziej szczegółowoPODSTAWY 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ółowoPojęcie bazy danych. Funkcje i możliwości.
Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych Baza danych to: zbiór informacji zapisanych według ściśle określonych reguł, w strukturach odpowiadających założonemu modelowi danych, zbiór
Bardziej szczegółowoSprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu):
Utwórz bazę danych Cw: CREATE DATABASE Cw Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu): DBCC USEROPTIONS Przykład z zapisem do tabeli tymczasowej: --Jeśli istnieje tabela tymczasowa
Bardziej szczegółowoMateriały do laboratorium MS ACCESS BASIC
Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I
Bardziej szczegółowoWykłady z przedmiotu Podstawy baz danych Transakcje dr hab. prof. UŁ. Tadeusz Antczak. Transakcje
Transakcje Pojęcie transakcji Pojęcie transakcji stało się centralnym elementem w wielu współczesnych zastosowaniach baz danych. Jest kluczowym pojęciem pozwalającym zrozumieć zarówno kontrolę wielodostępu,
Bardziej szczegółowoWspół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ółowoBazy danych 2. Wykład 6 Transakcje
Bazy danych 2 Wykład 6 Transakcje Transakcje Def. Transakcjami nazywamy logiczne jednostki pracy które wprowadzają zmiany do bazy danych lub które wyszukują dane O transakcjach mówimy w kontekście: aktualizacji
Bardziej szczegółowoTadeusz Pankowski
Planista (scheduler) Transakcje Blokowanie Dwufazowe (B2F) Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski Zarządzaniem transakcjami zajmuje się wyspecjalizowany moduł planisty. Planista związany
Bardziej szczegółowo< 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ółowoDECLARE VARIABLE zmienna1 typ danych; BEGIN
Procedury zapamiętane w Interbase - samodzielne programy napisane w specjalnym języku (właściwym dla serwera baz danych Interbase), który umożliwia tworzenie zapytań, pętli, instrukcji warunkowych itp.;
Bardziej szczegółowoPlan ćwiczenia. Rozdział 17. zarządzania współbieżnością. Dostęp współbieżny a dostęp spójny. Spójność bazy danych
Plan ćwiczenia Rozdział 17 Zarządzanie współbieżnością Definicja i własności transakcji, zatwierdzanie i wycofywanie, punkty bezpieczeństwa, spójność, anomalie współbieżnego dostępu do danych, poziomy
Bardziej szczegółowoWykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach
Indeksy dodatkowe struktury służące przyśpieszeniu dostępu do danych o użyciu indeksu podczas realizacji poleceń decyduje SZBD niektóre systemy bazodanowe automatycznie tworzą indeksy dla kolumn o wartościach
Bardziej szczegółowoProcedury 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ółowoOracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 7 Dynamiczny SQL i PL/SQL Pierwotny dynamiczny SQL Pierwotny dynamiczny DDL Pierwotny dynamiczny DML i SELECT Pakiet DBMS_SQL Transakcje
Bardziej szczegółowoWyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia
Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Składowe wyzwalacza ( ECA ): określenie zdarzenia ( Event ) określenie
Bardziej szczegółowoPrzykł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ółowoPrzykł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ółowoORACLE (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ółowoDazy Banych. Michał Rusnarczyk
Dazy Banych Michał Rusnarczyk Encją słabą (ang. weak entities) nazywamy taką encję, której istnienie zależy od istnienia innej encji (jej właściciela). Na przykład: istnienie jednostki Rodzaje specjalizacji:
Bardziej szczegółowoWykłady z przedmiotu Podstawy baz danych Transakcje dr hab. prof. nadzw. Tadeusz Antczak. Transakcje
Transakcje Pojęcie transakcji Pojęcie transakcji stało się centralnym elementem w wielu współczesnych zastosowaniach baz danych. Jest kluczowym pojęciem pozwalającym zrozumieć zarówno kontrolę wielodostępu,
Bardziej szczegółowoAlgorytmy 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ółowoPost-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ółowoBazy danych. Dr inż. Paweł Kasprowski
Plan wykładu Bazy danych Architektura systemów zarządzania bazami danych Realizacja zapytań algebra relacji Wielodostęp do danych - transakcje Dr inż. Paweł Kasprowski pawel@kasprowski.pl Aplkacja przechowująca
Bardziej szczegółowoPakiety 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ółowoBazy danych w sterowaniu
Bazy danych w sterowaniu systemy transakcyjne sterowanie dostępem współbieżnym Stan spójny bazy danych zgodność z możliwym stanem reprezentowanego fragmentu świata rzeczywistego; spełnione są wszystkie
Bardziej szczegółowoJę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ółowoBloki 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ółowoLAB 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ółowoObsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska
Obsługa transakcji rozproszonych w języku j Java Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska Plan prezentacji Transakcje i ich własności Proste transakcje w JDBC
Bardziej szczegółowoMetody 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ółowoBazy danych 9. SQL Klucze obce Transakcje
Bazy danych 9. SQL Klucze obce Transakcje P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Klucze obce Klucze obce powiazanie indeksowanej kolumny jakiejś tabeli z indeksowana kolumna
Bardziej szczegółowoSQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści
SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, 2017 Spis treści O autorze 9 Wprowadzenie 11 Lekcja 1. Zrozumieć SQL 15 Podstawy baz danych 15 Język SQL
Bardziej szczegółowoObowią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ółowoPL/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ółowoAlgorytmy zarządzania współbieżnym wykonywaniem transakcji część I
Algorytmy zarządzania współbieżnym wykonywaniem transakcji część I Wykład przygotował: Tadeusz Morzy BD wykład 9 Celem wykładu jest przedstawienie i omówienie podstawowych algorytmów zarządzania współbieżnym
Bardziej szczegółowoprocesó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ółowoINFORMATYKA 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ółowoOracle 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ółowoJę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ółowow 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ółowo15. 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ółowoWykład 8. SQL praca z tabelami 5
Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu
Bardziej szczegółowoDefinicja 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ółowoLaboratorium 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ółowoTransakcja jest sekwencją logicznie powiązanych operacji na bazie danych, która przeprowadza bazę danych z jednego stanu spójnego w inny stan spójny
Zarządzanie współbieżnością transakcji Definicja transakcji Transakcja jest sekwencją logicznie powiązanych operacji na bazie danych, która przeprowadza bazę danych z jednego stanu spójnego w inny stan
Bardziej szczegółowoAdministracja i programowanie pod Microsoft SQL Server 2000
Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 6 Wyzwalacze Wprowadzenie Tworzenie wyzwalacza Wyzwalacze typu,,po'' Wyzwalacze typu,,zamiast''
Bardziej szczegółowoDrzewo. 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ółowoWyzwalacze. 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ółowoWykł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ółowoWstę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ółowoPorządek dostępu do zasobu: procesory obszary pamięci cykle procesora pliki urządzenia we/wy
ZAKLESZCZENIA w SO brak środków zapobiegania zakleszczeniom Zamówienia na zasoby => przydział dowolnego egzemplarza danego typu Zasoby w systemie typy; identyczne egzemplarze procesory obszary pamięci
Bardziej szczegółowoBAZA 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ółowoObiektowe 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ółowoCele. 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ółowoOracle11g: Wprowadzenie do SQL
Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom
Bardziej szczegółowoAda95 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ółowoAda95 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ółowoZarzą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ółowoPodzapytania. 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ółowoWą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ółowoPaweł 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ółowoTechnologie 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ółowoAlicja 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ółowoWstę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ółowoModelowanie 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ółowoTeoretyczne 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ółowoXQuery. 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ółowoProcedury 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ółowoOpis: 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ółowoLogika 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ółowoRozproszone 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ółowoSQL 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ółowoData 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ółowoJę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ółowoWzorce 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ółowoPodzapytania. 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ółowoSkł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