1 Przetwarzanie transakcyjne Cechy transakcji Rozpoczęcie i zakończenie Punkty bezpieczeństwa... 3

Podobne dokumenty
przykłady problemów; realizacja dostaw części od producenta do klienta:

Transakcje. (c) Instytut Informatyki Politechniki Poznańskiej

Plan ćwiczenia. Rozdział 17. zarządzania współbieżnością. Dostęp współbieżny a dostęp spójny. Spójność bazy danych

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach

BAZY DANYCH. Transakcje. opracowanie: Michał Lech

Plan ćwiczenia. Rozdział 17 Zarządzanie współbieżnością. Dostęp współbieżny a dostęp spójny. Spójność bazy danych

Bazy danych. Andrzej Łachwa, UJ, /15

Bazy danych wykład dziewiaty Transakcje. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Bazy danych 2. Wykład 6 Transakcje

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

Plan wykładu. Przykład. Wprowadzenie BAZY DANYCH. Transakcje Hurtownie danych

Wprowadzenie (1) Przetwarzanie transakcyjne. Wprowadzenie (2) Problemy przygotowania aplikacji

Ćwiczenie 9 współbieŝność

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

Oracle PL/SQL. Paweł Rajba.

Transakcje jednocześnie ACID

Bazy danych 9. SQL Klucze obce Transakcje

Izolacje transakcji oraz anomalie. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

Przechowywanie danych

Transakcje Wykład z bazy danych dla studen

Wielowersyjne metody synchronizacji transakcji

Bazy danych Transakcje

Właściwości transakcji

OLTP Przetwarzanie Transakcyjne

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

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Wykład 8. SQL praca z tabelami 5

Bazy danych 9. Klucze obce Transakcje

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

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Zarządzanie transakcjami

Rozdział 1 Wprowadzenie do baz danych. (c) Instytut Informatyki Politechniki Poznańskiej 1

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Przetwarzanie transakcyjne

Bazy danych - Materiały do laboratoriów VIII

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

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu):

Administracja i programowanie pod Microsoft SQL Server 2000

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

Wykłady z przedmiotu Podstawy baz danych Transakcje dr hab. prof. nadzw. Tadeusz Antczak. Transakcje

Bazy danych. Dr inż. Paweł Kasprowski

Wykłady z przedmiotu Podstawy baz danych Transakcje dr hab. prof. UŁ. Tadeusz Antczak. Transakcje

Tadeusz Pankowski

PODSTAWY BAZ DANYCH Wykład 9

Internetowe bazy danych

K1A_W11, K1A_W18. Egzamin. wykonanie ćwiczenia lab., sprawdzian po zakończeniu ćwiczeń, egzamin, K1A_W11, K1A_W18 KARTA PRZEDMIOTU

Rozproszone i obiektowe systemy baz danych

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

Paweł Rajba

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

Bazy danych w sterowaniu

mail: strona: konsultacje: na stronie (po wcześniejszym umówieniu drogą mailową)

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

Ćwiczenie 3. Współbieżność i transakcje

Pojęcie bazy danych. Funkcje i możliwości.

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

Transakcyjne przetwarzanie danych

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

E.14 Bazy Danych cz. 15 SQL Transakcyjne przetwarzanie danych

27 lutego Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład I. dr inż.

Bazy danych 6a. Transakcje. P. F. Góra

Algorytmy zarządzania współbieżnym wykonywaniem transakcji część II

Bazy danych. Plan wykładu. Czynniki wpływające na fizyczny projekt bazy danych. bazy danych

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

I. Techniki wielowersyjne sterowania współbieżnością

Podstawy języka SQL - dokończenie TRANSAKCJE 1

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Algorytmy zarządzania współbieżnym wykonywaniem transakcji część I

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Zarządzanie obiektami bazy danych Oracle11g

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

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

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

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

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Microsoft SQL Server Podstawy T-SQL

Wykłady z przedmiotu Podstawy baz danych Transakcje dr hab. prof. nadzw. Tadeusz Antczak. Transakcje

P o d s t a w y j ę z y k a S Q L

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

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

Używany kiedy pełna treść instrukcji SQL jest nieznana przed uruchomieniem programu.

Rozproszone bazy danych 2

Tadeusz Pankowski

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

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

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

Kopie bezpieczeństwa NAPRAWA BAZ DANYCH

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

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

Aby stworzyć widok, należy mieć uprawnienia do wszystkich obiektów do których odnosi się widok.

Bazy danych i usługi sieciowe

Bazy Danych. Ćwiczenie 13: transakcje w bazach danych

LITERATURA. C. J. Date; Wprowadzenie do systemów baz danych WNT Warszawa 2000 ( seria Klasyka Informatyki )

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

Ref. 7 - Język SQL - polecenia DDL i DML

Zarzadzanie transakcjami. Transakcje

Transkrypt:

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............................. 3 2 Współbieżność 4 2.1 Anomalie.................................... 5 2.2 Izolacja transakcji................................ 5 2.3 Blokady..................................... 6 2.4 Zakleszczenia.................................. 7 2.5 Szeregowalność................................. 7 3 Podsumowanie 8 4 Źródła 8 Wprowadzenie Zmiany zachodzące w świecie rzeczywistym, a zmiany w bazie danych Niebezpieczeństwa związane z wprowadzaniem zmian Przykład problemów dla realizacji dostawy części od producenta do klienta: najpierw odjęto zamówioną liczbę części ze stanów magazynowych producenta, po czym nastąpiła awaria systemu, najpierw wstawiono do zamówień klienta odpowiednią liczbę zamówionych części, po czym nastąpiła awaria, prowadzono jednocześnie sprzedaż tej samej części do kilku innych klientów, utracono buforowane dane. 1 Przetwarzanie transakcyjne Transakcja 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. Typy operacji na bazie danych obejmują: odczyt i zapis danych oraz zakończenie połączone z akceptacją (zatwierdzeniem) lub wycofaniem transakcji. 1

Przykład BEGIN TRANSACTION; INSERT INTO zamowienia (nr_zam, l_sztuk, id_czesci) VALUES (1234, 1000, zab235); UPDATE stany_magazynu SET l_sztuk = l_sztuk - 1000 WHERE id_czesci LIKE zab235 ; COMMIT; 1.1 Cechy transakcji Własności ACID Atomicity - atomowość - zbiór operacji wchodzących w skład transakcji jest niepodzielny, to znaczy albo zostaną wykonane wszystkie operacje transakcji albo żadna. Consistency - spójność - transakcja przeprowadza bazę danych z jednego stanu spójnego do innego stanu spójnego. W trakcie wykonywania transakcji baza danych może być przejściowo niespójna. Transakcja nie może naruszać ograniczeń integralnościowych. Isolation - izolacja - transakcje są od siebie logicznie odseparowane. Transakcje oddziałują na siebie poprzez dane. Mimo współbieżnego wykonywania, transakcje widzą stan bazy danych tak, jak gdyby były wykonywane w sposób sekwencyjny. Durability - trwałość - wyniki zatwierdzonych transakcji nie mogą zostać utracone w wyniku wystąpienia awarii systemu. Zatwierdzone dane w bazie danych, w przypadku awarii, muszą być odtwarzalne. Podział transakcji Podział transakcji ze względu na porządek operacji: sekwencyjne, współbieżne; zależność operacji: zależne od danych, niezależne od danych; typ operacji: odczytu, aktualizujące dane. 2

1.2 Rozpoczęcie i zakończenie Rozpoczęcie transakcji Niejawnie: Wprowadzenie pierwszej poprawnej instrukcji w sesji użytkownika. Zakończenie poprzedniej transakcji. Jawnie: w niektórych systemach bazodanowych wydanie polecenia START TRANSACTION Zakończenie transakcji Jawnie: wydanie polecenia COMMIT - zatwierdzenie zmian, wydanie polecenia ROLLBACK - wycofanie zmian. Niejawnie: wylogowanie - zatwierdzenie zmian, wydanie polecenia DDL lub DCL - zatwierdzenie zmian, awaria systemu - wycofanie zmian. Zatwierdzenie transakcji Skutki zatwierdzenia transakcji: zwolnienie blokad, usunięcie punktów bezpieczeństwa, sprawdzenie odroczonych ograniczeń integralnościowych, trwały zapis zmian, widoczność zmian dla innych transakcji. Wycofanie transakcji Skutki wycofania transakcji: zwolnienie blokad, anulowanie zmian - stan bazy sprzed transakcji. 1.3 Punkty bezpieczeństwa Punkty bezpieczeństwa Tworzenie punktu bezpieczeństwa: SAVEPOINT nazwa_punktu; Usuwanie punktu bezpieczeństwa: 3

RELEASE SAVEPOINT nazwa_punktu; Wycofanie do punktu bezpieczeństwa: ROLLBACK TO SAVEPOINT nazwa_punktu; Punkty bezpieczeństwa - przykład UPDATE pracownicy SET placa = placa + 500 WHERE nr_akt = 8901; SAVEPOINT s1; UPDATE pracownicy SET dod_funkcyjny = 1.1*dod_funkcyjny WHERE nr_akt = 8902; SAVEPOINT s2; DELETE FROM pracownicy WHERE nr_akt = 9120; ROLLBACK TO SAVEPOINT s1; ROLLBACK; Punkty bezpieczeństwa - przykład DELETE FROM pracownicy WHERE nr_akt = 9120; SAVEPOINT s1; ALTER TABLE pracownicy RENAME COLUMN dod_funkcyjny TO placa_dod; 2 Współbieżność Spojność bazy danych Poziomy spójności w bazie danych: spójność polecenia - wszystkie dane, odczytywane przez pojedyncze polecenie, pochodzą z tego samego momentu w czasie - momentu rozpoczęcia wykonania polecenia, spójność transakcji - wszystkie polecenia, odczytujące w ramach pojedynczej transakcji dane z bazy danych, będą odczytywały stan z momentu rozpoczęcia transakcji. Zagrożenia spójności: awarie, działania użytkowników, współbieżny dostęp do danych. 4

Współbieżność Współbieżność równoczesny dostęp wielu transakcji do jednych i tych samych danych. Anomalie związane ze współbieżnym dostępem do danych: brudny odczyt utracona modyfikacja niepowtarzalny odczyt fantomy 2.1 Anomalie Anomalie Brudny odczyt (ang. dirty read) - system pozwala widzieć jednej transakcji niezatwierdzone zmiany wprowadzone przez drugą transakcję, które następnie zostają wycofane. Utracona modyfikacja (ang. lost update) - dwie transakcje równolegle przystępują do aktualizacji tych samych danych i zmiany, wprowadzone przez jedną z transakcji, zostają nadpisane przez zmiany z drugiej transakcji. Niepowtarzalny odczyt (ang. nonrepeatable read/fuzzy read) - wynik tego samego zapytania przeprowadzonego wielokrotnie w trakcie trwania transakcji jest różny (transakcja widzi zmiany wprowadzane przez drugą transakcję). Fantomy (ang. phantom read) - wynik tego samego zapytania przeprowadzonego wielokrotnie w trakcie trwania transakcji jest różny - powiększa się (transakcja widzi wiersze wprowadzane przez drugą transakcję). 2.2 Izolacja transakcji Poziomy izolacji transakcji Odczyt danych niezatwierdzonych (ang. read uncommitted) - zmiany, wprowadzone przez operacje w ramach aktywnej transakcji (jeszcze nie zatwierdzonej), są widoczne dla innych, równolegle realizowanych transakcji. Odczyt zatwierdzonych danych (ang. read committed) - zmiany, wprowadzone przez operacje w ramach transakcji, są widoczne dla innych transakcji dopiero po zatwierdzeniu transakcji. Powtarzalny odczyt (ang. repeatable read) - zapobiega anomalii niepowtarzalnego odczytu. Odczyt uszeregowany (ang. serializable) - serializacja na poziomie całej transakcji. Transakcja nie widzi zmian (zatwierdzonych i niezatwierdzonych) dokonywanych przez inne transakcje. Zmiany te są widoczne dopiero po jej zakończeniu. 5

Poziomy izolacji transakcji - eliminacja anomalii Dirty read Fuzzy read Phantom Read uncommitted + + + Read committed - + + Repeatable read - - + Serializable - - - Ustawienie poziomu izolacji transakcji Dla transakcji: SET TRANSACTION ISOLATION LEVEL {READ COMMITTED SERIALIZABLE}; Dla sesji: ALTER SESSION SET ISOLATION_LEVEL = {READ COMMITTED SERIALIZABLE}; Określenie trybu dostępu: SET TRANSACTION {READ WRITE READ ONLY}; 2.3 Blokady Blokada Blokada (ang. lock) - technika kontroli współbieżnego dostępu do danych polegająca na nałożeniu blokady na obiekt, który jest modyfikowany przez transakcję (w szczególności inne transakcje nie mogą go zmieniać). Blokady zakładane są automatycznie w momencie wydawania przez użytkownika poleceń modyfikacji danych lub ręcznie poprzez odpowiednie polecenia. Wyróżniamy: blokady wyłączne (ang. exclusive lock) blokady współdzielone (ang. shared lock) Ziarnistość blokad Ziarnistość blokad: kolumna wiersz strona dyskowa tabela baza danych 6

Nakładanie blokad Blokowanie wierszy: SELECT lista_wyrazen FROM tabela WHERE warunek_logiczny FOR UPDATE [OF <lista_atrybutów>] [NOWAIT]; Blokowanie tabel: LOCK TABLE nazwa_tabeli IN <tryb_blokowania> MODE [NOWAIT]; Tryby blokowania: ROW SHARE, ROW EXCLUSIVE, SHARE, SHARE ROW EXCLUSIVE, EXCLUSIVE. 2.4 Zakleszczenia Zakleszczenia Zakleszczenie (ang. deadlock) - stan, w którym dwie lub więcej równoległych transakcji znajduje się w stanie wzajemnego oczekiwania na uwolnienie blokady z potrzebnych zasobów, aby móc kontynuować działanie. System powinien wykryć blokadę i ją zlikwidować wyszukując cykl w grafie oczekiwań (ang. wait-for-graph) i wycofując jedną z należących do cyklu transakcji. Czas Transakcja 1 Transakcja 2 - - LOCK TABLE A IN EXCLUSIVE - MODE; - - - LOCK TABLE B IN EXCLUSIVE MODE; - - LOCK TABLE B IN EXCLUSIVE - MODE; wait - wait LOCK TABLE A IN EXCLUSIVE MODE; wait wait wait wait wait wait 2.5 Szeregowalność Szeregowalność Szeregowalność (ang. serializability) - kryterium poprawności kontroli współbieżności, mówiące, że transakcje realizowane równolegle są szeregowalne jeżeli wynik ich działania jest taki sam, jak w wypadku działania sekwencyjnego. Założenia: 7

Pojedyncze, sekwencyjne transakcje są poprawne. Wykonanie sekwencyjne pojedynczych transakcji w dowolnej kolejności daje poprawny i identyczny wynik. Realizacja współbieżna równoważna realizacji sekwencyjnej, dla tego samego zbioru transakcji, jest również poprawna i daje taki sam wynik. Protokół dwufazowego blokowania Protokół dwufazowego blokowania Zanim transakcja rozpocznie działanie na jakimś obiekcie zakłada na niego blokadę. Po zwolnieniu blokady transakcja nie może już nakładać nowych blokad. Twierdzenie dwufazowego blokowania Jeżeli wszystkie transakcje wypełniają protokół dwufazowego blokowania to wszystkie ich współbieżne realizacje są szeregowalne. 3 Podsumowanie Podsumowanie Transakcja to sekwencja atomowych operacji w bazie danych. Własności transakcji tworzą czwórkę ACID. Zagrożeniem spójności bazy danych są m.in. współbieżne operacje, realizowane na danych w bazie. Poziomy izolacji transakcji określają, jakie anomalie mogą wystąpić przy współbieżnym dostępie do danych. Blokady mogą ograniczać występowanie anomalii, ale również powodować zakleszczenia. Szeregowalność jako kryterium poprawności współbieżnej realizacji transakcji. 4 Źródła Źródła W wykładzie wykorzystano materiały: https://docs.oracle.com/cd/b13789_01/server.101/b10759/statements_9015. htm http://wazniak.mimuw.edu.pl/index.php?title=bazy_danych C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000 M. Lentner, Oracle 9i Kompletny podręcznik użytkownika, PJWSTK - W-wa, 2003 8