Wycofywanie potwierdzonych transakcji Prezentacja pracy magisterskiej Autor pracy: Tomasz Warzycha Promotor: Dr hab. Kazimierz Subieta
Wycofywanie potwierdzonych transakcji Plan prezentacji Wprowadzenie Kontekst pracy Stan rzeczy Koncepcje projektowe Rozwiązanie problemu Prototyp Podsumowanie Wycofywanie potwierdzonych transakcji
Wycofywanie potwierdzonych transakcji Wprowadzenie Podstawowe pojęcia: transakcja i jej właściwości, szeregowalność, synchronizacja i strategie zapewniania współbieżności, zamki, ziarnistość, zakleszczenie, poziomy izolacji Procesy i składniki OLTP: log, odtwarzanie ponawianie, savepoint, checkpoint, kopia bezpieczeństwa, replikacja Wycofywanie potwierdzonych transakcji
Wycofywanie potwierdzonych transakcji Kontekst pracy Na czym polega problem? Wycofywanie potwierdzonych transakcji. Popyt na rozwiązanie, czyli kto jest lub ewentualnie mógłby być zainteresowany wdrożeniem. IPN – Instytut Pamięci Narodowej Wycofywanie potwierdzonych transakcji
Wycofywanie potwierdzonych transakcji Stan rzeczy Komercyjny świat baz danych: Oracle,Microsoft...– kopia bezpieczeństwa SCN – System Change Number wycofywanie możliwe tylko dla otwartej transakcji, brak historii transakcji. Wniosek: rozwiązanie nowatorskie Wycofywanie potwierdzonych transakcji
Wycofywanie potwierdzonych transakcji Koncepcje projektowe Generowanie plików tekstowych *.SQL lub plików *.XML z zawartością transakcji wady i zalety koncepcji Podpięcie pod procesy zapisujące log transakcji prawo Greena: wszystko jest możliwe pod warunkiem, że nie wiesz o czym mówisz Wycofywanie potwierdzonych transakcji
Wycofywanie potwierdzonych transakcji Rozwiązanie problemu Historia transakcji transakcji zapewniona poprzez sztuczny log: dziennik transakcji i kopia bazy danych Historia transakcji zapisana w bazie danych Pełna automatyzacja zapisu danych transakcji i ich opisu do logu dzięki wyzwalaczom Wycofywanie potwierdzonych transakcji
Rozwiązanie problemu #2 Oprogramowanie przy użyciu języka zapytań i proceduralnych rozszerzeń Korzystanie z bazy danych identyczne jak bez funkcji wycofywania potwierdzonych transakcji. Użytkownik końcowy nie musi wiedzieć niczego nowego, aby obsługiwać aplikacje, z których korzystał do tej pory. Wycofywanie potwierdzonych transakcji
Schemat rozwiązania przyjętego w pracy BAZA KOPIA DZIENNIK TRANSAKCJI Konsola administratora – dostęp do interfejsu Wycofywanie potwierdzonych transakcji
Wycofywanie potwierdzonych transakcji Prototyp - baza Do każdej tabeli w bazie dodano trzy kolumny identyfikujące: wiersz, transakcję i kolejną zmianę w danej transakcji Na każdej tabeli działają wyzwalacze, które automatycznie wypełniają pola w w/w kolumnach. Wycofywanie potwierdzonych transakcji
Wycofywanie potwierdzonych transakcji Prototyp - kopia Druga baza danych, której struktura tabel jest identyczna z macierzystą bazą danych, nie ma innych obiektów Celem kopii jest pamiętanie danych transakcji, które zostały potwierdzone Dane pamiętane w kopii służą do realizacji procesów wycofywania i odtwarzania transakcji Wycofywanie potwierdzonych transakcji
Prototyp – dziennik transakcji Realcja trzech tabel. Służy do pamiętania opisów transakcji i sterowania interfejsem. Informacje pamiętane: kto, kiedy, z którego terminala rozpoczął transakcję, sesja i jej transakcje, transakcja i jej zmiany, typ zmiany: insert,update,delete, status transakcji: wycofana, odtworzona ... Wycofywanie potwierdzonych transakcji
Wycofywanie potwierdzonych transakcji Prototyp - interfejs Procedury składowane do wyszukiwania opisów transakcji w/g: przedziału czasu, użytkownika, statusu. Dokładny opis transakcji oraz jej dane w przypadku transakcji nienadpisanych Zablokowanie i odblokowanie możliwości wycofywania Wycofywanie potwierdzonych transakcji
Wycofywanie potwierdzonych transakcji Prototyp – interfejs #2 Usunięcie danych służących do wycofania transakcji w przypadku gdy transakcja napewno nie będzie wycofywana Procedury realizujące wycofywanie i odtwarzanie potwierdzonej transakcji Procedury sprawdzające drzewa transakcji nadpisujących i nadpisywanych Wycofywanie potwierdzonych transakcji
Uwagi, wnioski, ulepszenia Czas przetwarzania Współbieżność Automatyzacja tworzenia obiektów zapewniających proces wycofywania potwierdzonych transakcji Pełna obsługa złożonych typów np. Image Obsługa transakcji rozproszonych Wycofywanie potwierdzonych transakcji
Wycofywanie potwierdzonych transakcji Podsumowanie Edukacyjny charakter pracy, przejrzysty kod SQL, wskazówki dotyczące budowy systemów wycofywania potwierdzonych transakcji w oparciu o koncepcję przyjętą w pracy Zachowane kryterium implementacji w każdym relacyjnym systemie zarządzania baz danych Wycofywanie potwierdzonych transakcji