Transakční zpracování Bezpečnost databází. Vladimíra Zádová, KIN, EF TUL- DBS 1



Podobné dokumenty
Transakční zpracování

Architektura SW pro transakční zpracování se skládá ze 3 modulů: - manažer dat - rozvrhovač - manažer transakcí

DBS transakční zpracování

Kapitola 13: Transakce. Koncept transakce. ACID vlastnosti

Zotavení z chyb. Databázové systémy

TÉMATICKÝ OKRUH TZD, DIS a TIS

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 3 PARALELNÍ PROCESY V DATABÁZÍCH

Transakce a zamykání Jiří Tomeš

9. Transakční zpracování

Databázové systémy. transakce. Tomáš Skopal. * vlastnosti transakcí * rozvrhy

9. Transakční zpracování

Paralelní přístup k databázi

Databáze I. 5. přednáška. Helena Palovská

Transakce a zamykání. Administrace MS SQL Serveru (NDBI039) Pavel Hryzlík

Distribuované transakce

Databáze II. 2. přednáška. Helena Palovská

4IT218 Databáze. 4IT218 Databáze

Téma 11 Transakce a řízení souběhu

Databázové systémy úvod

Databázové systémy. transakce. Tomáš Skopal. * uzamykací protokoly * alternativní protokoly * zotavení

Činnost počítače po zapnutí

Transakce. Ing. Marek Sušický, RNDr. Ondřej Zýka

Transak ní zpracování I

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Databázové systémy BIK-DBS

OPS Paralelní systémy, seznam pojmů, klasifikace

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

DATABÁZOVÉ SYSTÉMY. Vladimíra Zádová, KIN, EF TUL - DBS

Řízení souběžného přístupu k datům v systémech řízení báze dat

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

Konzistentnost. Přednášky z distribuovaných systémů

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Technické informace. PA152,Implementace databázových systémů 4 / 25. Projekty. pary/pa152/ Pavel Rychlý

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Struktura pamětí a procesů v DB Oracle. Radek Strnad

10. Transakce, řízení konkurenčních přístupů.

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

Management procesu I Mgr. Josef Horálek

IW3 MS SQL SERVER 2014

Architektury paralelních počítačů II.

Implementace dávkových operací

Text úlohy. Systémový katalog (DICTIONARY):

01. Kdy se začala formovat koncept relačních databází (Vznik relačního modelu, první definice SQL)? a) 1950 b) 1960 c) 1970 d) 1980

Administrace Oracle - Správa zdrojů

Databázové systémy úvod

04 - Databázové systémy

8.2 Používání a tvorba databází

Principy operačních systémů. Lekce 7: Obrana proti deadlocku

Databázové systémy I. 7. Přednáška

Bc. David Gešvindr MSP MCSA MCTS MCITP MCPD

Databázové systémy úvod

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK

Distribuovaný systém je takový systém propojení množiny nezávislých počítačů, který poskytuje uživateli dojem jednotného systému.

Relační datový model. Integritní omezení. Normální formy Návrh IS. funkční závislosti multizávislosti inkluzní závislosti

Databáze II. 1. přednáška. Helena Palovská

HELIOS - Zálohování BüroKomplet, s.r.o.

Služba ve Windows. Služba (service) je program

SQL - trigger, Databázové modelování

Relační databázový model. Vladimíra Zádová, KIN, EF, TUL- DBS

Struktura programu v době běhu

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Databáze v MS ACCESS

Logická organizace paměti Josef Horálek

Technologické postupy práce s aktovkou IS MPP

Systém souborů (file system, FS)

Výpočet v módu jádro. - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení. v důsledku událostí

Patrol Management System 2.0

O Apache Derby detailněji. Hynek Mlnařík

Paralelní programování

Náhled testu. Přijímací zkouška magisterského studia. konečný automat bez zbytečných stavů, který přijímá jazyk popsaný tímto výrazem, má:

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19

Okruhy z odborných předmětů

1. Databázové systémy (MP leden 2010)

Náhled testu. Přijímací zkouška magisterského studia. konečný automat bez zbytečných stavů, který přijímá jazyk popsaný tímto výrazem, má:

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21

Databáze Bc. Veronika Tomsová

Úvod do databázových systémů. Lekce 1

ARCHITEKTURA INFORMAČNÍCH SYSTÉMŮ PODLE ÚROVNĚ ŘÍZENÍ

Zálohování a obnova databáze. Kryštof Měkuta

Úloha 1. Úloha 2. Úloha 3. Text úlohy. Text úlohy. Text úlohy

Architektury Informačních systémů. Jaroslav Žáček

BankKlient. FAQs. verze 9.50

Ukázka zkouškové písemka OSY

MARIE PACS S PACSem hezky od podlahy když se data sypou!

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 2 KONZISTENCE DATABÁZE

Přidělování paměti II Mgr. Josef Horálek

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

Principy operačních systémů. Lekce 5: Multiprogramming a multitasking, vlákna

Databáze I. 1. přednáška. Helena Palovská

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou

FRED & PostgreSQL. CZ.NIC, z.s.p.o. Jaromír Talíř <jaromir.talir@nic.cz>

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

Migrace CIDUG. Ing. Pavel Krutina

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Architektury počítačů a procesorů

Tematická oblast: Informační a komunikační technologie (VY_32_INOVACE_09_1_IT) Autor: Ing. Jan Roubíček. Vytvořeno: červen až listopad 2013.

PROTOKOL RDS. Dotaz na stav stanice " STAV CNC Informace o stavu CNC a radiové stanice FORMÁT JEDNOTLIVÝCH ZPRÁV

Architektura procesorů PC shrnutí pojmů

PROGRAMOVÁNÍ ŘÍDÍCÍCH SYSTÉMŮ

Transkript:

Transakční zpracování Bezpečnost databází Vladimíra Zádová, KIN, EF TUL- DBS 1

Transakce Transakce systém zpracování transakcí vlastnosti ACID stavy transakce SŘBD a transakční zpracování Řešení transakcí seriové rozvrhy paralelní zpracování transakcí Uzamykací protokoly - dvoufázový uzamykací protokol Zotavení z chyb Vladimíra Zádová, KIN, EF TUL- DBS 2

Transakční systémy transakční zpracování OLTP - On-line Transaction Processing aplikace ERP, zčásti CRM, SCM charakteristika relativně jednoduché operace, změny v malých objemech dat, více současně pracujících uživatelů požadavky rychlý a spolehlivý přístup k datům - mnohdy 24x7x365 nekonfliktní zpracování, data odpovídající realitě zotavení z chyb - po HW a SW chybě zajištění paralelního zpracování Vladimíra Zádová, KIN, EF TUL- DBS 3

Transakční zpracování Chyby v oblasti: hardwarové (poruchy v síti, zhroucení disku) softwarové (operační systém, uživatelský program) možné problémy: Při aktualizaci dochází k přechodu z jednoho přípustného stavu databáze do druhého přípustného stavu databáze (tedy musí být pro danou databázi dodržena všechna definovaná integritní omezení) Při výpadku systému databáze nemusí být konzistentní (nesplňuje všechna IO) nemusí být zřejmé, která data byla při výpadku právě v operační paměti (vyrovnávacích pamětech), t.j. která data se nedostala na disk a při výpadku byla ztracena Pokud nebude situace možného výpadku ošetřena - mohou být poskytovány nesprávné (nekonzistentní ) údaje Vladimíra Zádová, KIN, EF TUL- DBS 4

I. Transakce Transakce je akce či posloupnost akcí, se kterou se zachází jako s jedním celkem. Je to logická jednotka práce, ale též jednotka zotavení z chyb Akce: prováděny uživatelem nebo aplikačním programem(i část programu, jednotlivý příkaz) čtení, zápis, výpočet (aktualizační operace, SQL příkaz..) pomocí akcí se přistupuje k databázi( SELECT), nebo ji mění (INSERT, UPDATE, DELETE) Transakce mění stav databáze = transakce aktualizační transakce nemění stav databáze složené z dotazů Vladimíra Zádová, KIN, EF TUL- DBS 5

Transakce - požadavky zachování konzistence databáze po provedení všech operací dané transakce jako celku Během transakce (tedy při provedení dílčích operací ) může být konzistence databáze dočasně narušena ukončení v přijatelném čase transakce je atomická vše e nebo nic Vladimíra Zádová, KIN, EF TUL- DBS 6

Transakce Příklad : knihovna změna čísla čtenáře pak se tato změna bude týkat tabulky (relace) ČTENÁŘ, ale též VÝPUJČKY a REZERVACE Konzistentnost databáze nebude zajištěna jednou operací, ale jejich poslopností (zatímco je v přirozeném jazyce vyjádřená jednou větou) Provedeme li UPDATE v relaci ČTENÁŘ a VÝPUJČKY, pak není databáze v konzistentním stavu, protože nebyla provedena změna u relace REZERVACE. Vladimíra Zádová, KIN, EF TUL- DBS 7

Vlastnosti ACID a transakce A = (atomicity) atomicita transakce transakce je jeden celek - musí proběhnout celáči vůbec ne C = (Consistency) konzistence transakce transformuje databázi z jednoho konzistentního stavu databáze do jiného konzistentního stavu I = (Isolation) nezávislost transakce transakce jsou nezávislé, dílčí efekty transakce nejsou viditelné jiným transakcím (nezávislost požaduje aby transakce měla vždy konzistentní databázi t.j. výsledky transakce viditelné pro ostatní transakce až pro potvrzení) D =(Durability) trvanlivost (perzistence) úspěšně ukončené transakce (potvrzené) jsou uloženy do databáze Údržba atomicity transakce se nazývá zotavení z chyb vlastnosti ACID jsou základním principem transakčního zpracování Vladimíra Zádová, KIN, EF TUL- DBS 8

Zpracování transakcí Systém zpracování transakcí (SZT) obecně nemusí být součástí SŘBD, může patřit pod operační systém, nebo může být řešeno samostatným softwarem Vlastní architekturu softwaru pro transakční zpracování v databázových systémech lze popsat pomocí 3 modulů: manažer transakcí rozvrhovač manažer dat Aplikační program Manažer transakcí Rozvrhovač Manažer dat Databáze obr.: Architektura transakčního zpracování v DBS Vladimíra Zádová, KIN, EF TUL- DBS 9

Zpracování transakcí manažer dat komunikuje s databází pomocíčtení a zápisu dat zodpovídá za zotavení z chyb systému (zajištění atomicity vzhledem k chybám) rozvrhovač (sheduler) zodpovídá za řízení paralelního zpracování transakcí maximalizuje souběžnost zpracování transakcí aniž by se souběžně vykonávané transakce rušily je-li protokol souběžného zpracování (concurrency control)založen na uzamykání - pak se ještě odvolává na manažer uzamykání (lock manager) zajišťuje transparenci paralelního zpracování manažer transakcí zajišťuje komunikaci mezi prvními dvěma moduly koordinuje transakce v zájmu programu, vyvolává transakci a posílá požadavky na data manažeru dat prostřednictvím rozvrhovače Vladimíra Zádová, KIN, EF TUL- DBS 10

zabezpečení zotavení z chyb SŘBD - požadavky Pokud nebude provedena transakce do konce ( výpadek systému) nutnost vrátit databázi do stavu před započetím transakce zabezpečení korektního a rychlého přístupu více uživatelů požadavky realizovány pomocí komponent: komponenta zotavení z chyb (recovery) zajišťuje konzistentnost databáze (při chybě SW, systému, fyzického média) komponenta řízení paralelního zpracování (concurrency control) zajišťuje uživatelům vidění konzistentních stavů SŘBD - i když používá SŘBD více uživatelů tyto komponenty v modulu řízení databáze (viz moduly SŘBD -I. přednáška: vytváří rozhraní mezi daty a programy /dotazy, které vyžadují přístup do databáze, zajišťuje kontrolu dat po uživatelských transakcích, utajení dat, rekonstrukce databáze při chybách, řízení vícenásobného přístupu Vladimíra Zádová, KIN, EF TUL- DBS 11

5 stavů transakce aktivní (A) jde o stav od počátku provádění transakce částečně potvrzený (PC) stav po provedení poslední operace transakce chybný (F) pokud se objeví, že v normálním průběhu transakce nelze pokračovat zrušený (AB) nastane po skončení operace ROLLBACK (tedy po uvedení databáze do stavu před transakcí potvrzený (C) nastane po úspěšném zakončení, tj.po potvrzení operací COMMIT Vladimíra Zádová, KIN, EF TUL- DBS 12

Stavy transakce PC C A F AB Obr.: diagram stavů transakce Vladimíra Zádová, KIN, EF TUL- DBS 13

Stavy transakce transakce ukončena ve stavech AB, C ze stavu F po provedení operace ROLLBACK vstupuje do stavu AB ze stavu PC se může transakce dostat i do stavu F - např. díky výpadku systému nemusí se obsah vyrovnávacích pamětí odeslat na disk u stavu AB (zrušený) jsou 2 možnosti : restartovat transakci ponechat zrušenou transakci (tj. stav databáze bude jako před uskutečněním transakce) Klíčové místo práce s transakcemi je mezi stavem PC a C. Vladimíra Zádová, KIN, EF TUL- DBS 14

ROLLBACK a COMMIT COMMIT (=potvrzení) úspěšnost transakce : změny databáze jsou perzistentní, mohou se zviditelnit dalším transakcím po provedení příkazu operace nevratné V praxi ji není nutné explicitně vyvolávat, stačí normální ukončení programů, které realizují transakci (veškeré změny jsou permanentní) ROLLBACK (=ABORT) neúspěšnost transakce Databáze musí být vrácena do původního stavu. Použití Rollback vyžaduje existenci log file (žurnálu) Vladimíra Zádová, KIN, EF TUL- DBS 15

Zpracování transakcí Sériové zpracování transakcí transakce prováděny za sebou Paralelní zpracování transakcí se stejnou databází pracuje současně více uživatelů (resp. programů ) cílem je lépe využít spolupráce různých zařízení (př. procesor a periferie) transakce mohou být zpracovány paralelně různým způsobem rozvrhy a protokoly Vladimíra Zádová, KIN, EF TUL- DBS 16

Konzistence konzistence individuálních transakcí x konzistence databáze pod paralelním voláním transakcí konzistence individuálních transakcí je dána definicí transakce ( vše nebo nic) SZT (systém zpracování transakcí) ji považuje za konzistentní konzistence databáze pod paralelním voláním transakcí SZT používá vlastní kriteria korektnosti( protokoly) základní přístup uspořádatelnost rozvrhů jiná kriteria korektnosti Vladimíra Zádová, KIN, EF TUL- DBS 17

Problémy s paralelním zpracováním transakcí ztráta aktualizace (lost update problem) dočasná aktualizace ( the uncommitted dependency problem) nekorektní použití agregační funkce ( inconsistent analysis problem Vladimíra Zádová, KIN, EF TUL- DBS 18

Souběžné (paralelní) zpracování: Operace READ(). čtení WRITE () zápis do databáze př. Plat = plat * 1.3..nedatabázové operace - výpočet aktualizace tedy znamená: čtení z DB, výpočet, zápis do databáze pro SELECT - jen read operace BEGIN TRANSACTION. END TRANSACTION COMMIT, ROLLBACK Vladimíra Zádová, KIN, EF TUL- DBS 19

Ztráta aktualizace ČAS Transakce T 1 Transakce T 2 X t 1 t 2 t 3 t 4 t 5 t 6 begin transaction READ(x) x =x - 10 WRITE(x) COMMIT begin transaction READ(x) x =x + 100 WRITE(x) COMMIT 100 100 100 200 90 90 Správný výsledek by měl být 190 Došlo ke ztrátě update transakce T 2 Vladimíra Zádová, KIN, EF TUL- DBS 20

dočasná aktualizace ( při chybě systému) ČAS Transakce T 1 Transakce T 2 X t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 begin transaction READ(x) x =x - 10 WRITE(x) COMMIT begin transaction READ(x) x =x + 100 WRITE(x)... ROLLBACK 100 100 100 200 200 100 190 190 Správný výsledek: 90. Po chybě systému - aktualizace transakce T 2 je ztracena (vrací se zpět), toto ošetřeno není Vladimíra Zádová, KIN, EF TUL- DBS 21

nekorektní použití agregační funkce inconsistent analysis problem ČAS Transakce T 1 Transakce T 2 X Y Z SUM t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10 t 11 begin transaction READ(x) x = x - 10 WRITE(x) READ(z) z = z + 10 WRITE(z) COMMIT begin transaction SUM = 0 READ(x) SUM = SUM + x READ(y) SUM = SUM + y READ(z) SUM = SUM + z COMMIT 100 50 25 100 50 25 0 100 50 25 0 100 50 25 100 90 50 25 100 90 50 25 150 90 50 25 150 90 50 35 150 90 50 35 150 90 50 35 185 90 50 35 185 Vladimíra Zádová, KIN, EF TUL- DBS 22

Rozvrhy Rozvrh je stanovené pořadí provádění operací více transakcí včase pro více současně pracujících uživatelů může být prováděna jedna transakce po druhé ( seriově) či souběžně - pro lepší využití HW a zrychlení Nadále budeme předpokládat transakce T 1 a T 2 transakce T 1 má posloupnost operací (T 11, T 12, T 1n ), transakce T 2 má posloupnost operací (T 21, T 22, T 2m ) Vladimíra Zádová, KIN, EF TUL- DBS 23

Seriové rozvrhy zachovávají operace každé transakce pohromadě pro N transakcí existuje N! různých sériových rozvrhů. ( seriovost je uspořádatelnost.) Př. Pro 2 transakce existují právě 2 různé seriové rozvrhy : S 1 : {T 1, T 2 } a S 2 : {T 2, T 1 } Vladimíra Zádová, KIN, EF TUL- DBS 24

Souběžné (paralelní zpracování) pro zpracování transakcí lze použít i rozvrhy které dovolují prokládání operací navzájem podmínkou pro správnost zpracování je korektnost výsledku. Požadavky na korektnost: efekt (výsledek) paralelního zpracování transakcí musí odpovídat transakcím provedeným v nějakém seriovém rozvrhu o systému, který zaručuje tuto vlastnost seříká, že zaručuje uspořádatelnost Uspořádatelnost rozvrhu Rozvrh je uspořádatelný, jestliže existuje seriový rozvrh s ním ekvivalentní Vladimíra Zádová, KIN, EF TUL- DBS 25

Ekvivalence rozvrhů Dva rozvrhy jsou ekvivalentní, je-li splněno : 1. Jestliže se v jednom rozvrhu vyskytuje READ(A) v transakci T i a tato hodnota vznikla z WRITE(A) v transakci T j, potom totéž musí být zachováno ve druhém rozvrhu. (t.j. každá operace READ čte po stejné operaci WRITE) 2. Jestliže se v jednom rozvrhu vyvolá poslední instrukce WRITE(A) v transakci T i, pak totéž musí být zachováno v druhém rozvrhu. ( to zajišťuje, že konečný stav databáze je stejný v obou rozvrzích) Testování uspořádatelnosti rozvrhů - není pro praxi moc vhodné ( z časového hlediska) Je možné konstruovat transakce podle určitých pravidel ( protokolů) tak, že za splnění určitých předpokladů je každý jejich rozvrh uspořádatelný Vladimíra Zádová, KIN, EF TUL- DBS 26

Uzamykací protokoly pomocí uzamykání objektů v databázi lze zajistit to, aby s nimi nikdo jiný v daném čase nepracoval zamykání objektů (operace LOCK) je akce kterou vyvolá transakce na objektu, aby zamezila přístupu ostatních transakcí k danému objektu odemknutí objektů (operace UNLOCK) je akce uvolňující objekt pro zpracování dalšími transakcemi transakce, která uzamkla objekt má právo na něm provádět operace READ a WRITE (a další operace) Vladimíra Zádová, KIN, EF TUL- DBS 27

Uzamykací protokoly uzamykání může být: statické dynamické nejznámější protokoly založeny na dynamickém zamykání a odmykání objektů Vladimíra Zádová, KIN, EF TUL- DBS 28

Uzamykací protokoly statické uzamykání objekty používané v transakci jsou všechny uzamknuty na počátku transakce, odemknuty těsně před koncem prováděné transakce to znamená, že paralelně mohou být prováděny jen ty transakce, které jsou nekonfliktní (t.j. nesdílí žádné objekty) Vladimíra Zádová, KIN, EF TUL- DBS 29

Modely uzamykání transakcí a rozvrhy objekt může být v daném čase uzamčen pouze jednou transakcí objekt bude v transakci uzamknutý kdykoli k němu bude transakce přistupovat transakce se nebudou pokoušet uzamykat objekt uzamčený jinou transakcí legální rozvrhy takové rozvrhy, které splňují obě podmínky nelegální rozvrhy rozvrhy, které nesplňují alespoň jednu z podmínek někdy může nastat uváznutí (deadlock) - v jedné transakci chceme uzamknout objekt již uzamčený druhou transakcí Vladimíra Zádová, KIN, EF TUL- DBS 30

Uváznutí LOCK(B) READ(B) akce(b) WRITE(B) LOCK(A) UNLOCK(B) READ(A) LOCK(A) READ(A) LOCK(B) READ(B) UNLOCK(B) A = A + B WRITE(A) transakce T 2 chce uzamknout již uzamčený objekt B zde se pokouší uzamknout první transakce objekt již uzamčený Řešení provedením ROLLBACK jedné transakce Vladimíra Zádová, KIN, EF TUL- DBS 31

Modely uzamykání transakcí pro řešení uváznutíči prevenci uváznutí byly vyvinuty metody ( ROLLBACK transakce nemusí být vždy vhodný) Dobře formované transakce transakce uzamyká objekt chce-li k němu přistupovat transakce nezamyká objekt, když je již touto transakcí uzamčený transakce neodmyká objekt, který není touto transakcí uzamčený po ukončení transakce všechny objekty, které byly touto transakcí uzamčeny jsou odemknuty k zajištění uspořádatelnosti všech legáln lních rozvrhů nepostačuje ani množina dobře formovaných transakcí (lze najít i legální rozvrh nedvoufázových transakcí, který je uspořádatelný) Vladimíra Zádová, KIN, EF TUL- DBS 32

Uspořádatelnost rozvrhů K zajištění uspořádatelnosti rozvrhů stačí, aby všechny transakce z množiny uvažovaných transakcí byly dvoufázové, tj. aby každá transakce splňovala dvoufázový uzamykací protokol Dvoufázov zová transakce v první fázi uzamyká všechny potřebn ebné objekty databáze, od prvního odemknutí objektu databáze již nedochází k žádnému zamykání Pozn.: Uzamykací protokol je množina pravidel, která udává kdy transakce bude uzamykat a odmykat objekty databáze Vladimíra Zádová, KIN, EF TUL- DBS 33

Platí tvrzení: Jestliže všechny transakce v dané množině transakcí T jsou dobře formované a dvoufázové, pak každý jejich legální rozvrh je uspořádatelný. Uváznutí a dvoufázovost uváznutí je typické pro dvoufázové protokoly zamezení např. přiřazením priorit transakcím a čekáním na transakce s vyšší prioritou Kaskádové rušení transakcí provedení ROLLBACK jedné transakce může vyvolat ROLLBACK těch dalších transakcí, které využívaly hodnoty aktualizované touto transakcí odstranění : použitím striktních dvoufázových protokolů, které uvolní zámky až po ukončení transakce (COMMIT) nevýhoda - omezení paralelismu v současné době nejobvyklejší Vladimíra Zádová, KIN, EF TUL- DBS 34

Chyby systému Třídy možných chyb ( chyby, které se vyskytují v souvislosti s provozem DBS) globální chyby mají vliv na více transakcí (minimálně na tu právě prováděnou) lokální chyby jsou logické chyby, měly být ošetřeny na úrovni transakce Vladimíra Zádová, KIN, EF TUL- DBS 35

Globální chyby Spadnutí systému (př. výpadek proudu)- důsledkem je ztráta obsahu vnitřní paměti Systémové chyby (deadlock = uváznutí) ovlivňují transakce, ne celou databázi Chyby médii (porucha hlavy disku)- ohrožují celou databázi či jejíčást, ovlivňují i transakce, které se týkají právě téčásti Vladimíra Zádová, KIN, EF TUL- DBS 36

Zotavení z chyb systému Systémová chyba může vést ke ztrátě obsahu vnitřní paměti(př. vyrovnávacích pamětí databáze), stav systému je pak nedefinovaný řešení: po restartu je třeba použít ROLLBACK, provést znovu transakce, které byly dokončeny, ale neodeslány fyzicky (neodeslány vyrovnávací paměti na disk) systém požadavky na znovuprovedení transakcí rozezná pomocí kontrolních bodů Vladimíra Zádová, KIN, EF TUL- DBS 37

Žurnál (= deník transakcí angl. log file) obsahuje historii všech změn databáze začasovou periodu. Slouží jako prostředek k akcím, které zajišťují zotavení z chyb Stav transakce je v případě chyby nedefinovaný, po restartu systému je nutné použít ROLLBACK hlavně chyby vedoucí ke ztrátě obsahu vnitřní paměti je třeba provést po restartu systému znovu ty transakce které byly před započetím chyby systému sice úplné, ale které nebyly dokončeny fyzicky. Vladimíra Zádová, KIN, EF TUL- DBS 38

Synchronizační body Synchronizační body jsou hranice mezi dvěma po sobě následujícími transakcemi Zakládá je operace ROLLBACK a COMMIT další a poslední synchronizační bod je inicializace programu. V mechanismu synchronizačních bodů krátké transakce čekají na provedení delších transakcí. Jejich nejjednodušší implementace - odložení spuštění nových transakcí pokud nejsou ukončeny běžící transakce V praxi systém zpracování transakcí používá k určení transakcí, které je třeba znova provést kontrolní body Vladimíra Zádová, KIN, EF TUL- DBS 39

Kontrolní body (checkpoints) Kontrolní body se vytvářejí v intervalech provádění transakcí automaticky zahrnují odeslání obsahu vyrovnávacích pamětí na disk a zápis kontrolního záznamu (checkpoint record) do žurnálu záznam může obsahovat seznam všech transakcí, které se v době kontrolního bodu prováděly (byly započaty a nebyly ukončeny) Kontrolní body jsou vhodné, pracuje-li se s delšími transakcemi Vladimíra Zádová, KIN, EF TUL- DBS 40

Zotavení z chyby systému Klíčové místo je mezi stavem PC a C Známé strategie pro vstup do stavu C jsou : Inkrementální tvorba žurnálu s odloženými realizacemi změn (odložená aktualizace) Inkrementální tvorba žurnálu s bezprostřední realizací změn (bezprostřední aktualizace) Vladimíra Zádová, KIN, EF TUL- DBS 41

Inkrementální tvorba žurnálu s odloženými realizacemi změn Během provádění transakce T jsou všechny operace WRITE odloženy do okamžiku, než se dostane do stavu PC Všechny změny jsou zapisovány do žurnálu, jehož záznamy jsou tvořeny z trojic <T, jméno atributu, nová hodnota> na počátku transakce se do žurnálu zapíše <T, START> ve stavu PC <T, COMMIT>. Teprve potom dochází k zápisu změn do databáze. Vladimíra Zádová, KIN, EF TUL- DBS 42

Inkrementální tvorba žurnálu s odloženými realizacemi změn chyba nastane v čase t f před dosažením stavu PC stačí informaci v žurnálu ignorovat a spustit transakci znova ( t.j. RESTART) chyba nastane včase t f za počátkem stavu PC pak musí být záznamy žurnálu k dispozici pro provedení operace REDO, která využije záznamů mezi START a COMMIT. Pozn.: pro obnovu databáze je důležité zálohovat jak databázi, tak i žurnál ( soubory uložit na jiných mediích) i při procesu zotavení z chyb může nastat další chyba -vytvářením žurnálů ale také vytvářením jejich kopií se posílí jistota možností rekonstrukce dané databáze při chybě v době zotavení z chyb. Vladimíra Zádová, KIN, EF TUL- DBS 43

Inkrementální tvorba žurnálu s bezprostřední realizací změn všechny operace zápisu se provádějí přímo v žurnálu kromě zápisů počátku a konce drží i čtveřice záznamů <T, jméno atributu, stará hodnota, nová hodnota> umístění záznamů do žurnálu se musí provést před WRITE a před fyzickou změnou databáze Když dojde ke zhroucení, lze pomocí žurnálu uvést databázi do původního stavu - po fyzicky nedodělaných transakcích Zotavení se provádí podle operace REDO i UNDO ta návrat do stavu před započetím transakce umožňuje. Vladimíra Zádová, KIN, EF TUL- DBS 44

Inkrementální tvorba žurnálu s bezprostřední realizací změn Po restartu systému se systém v transakcích zorientuje podle procedury: 1. vytvoří se 2 seznamy transakcí UNDO, REDO do UNDO se uloží všechny transakce ze záznamu kontrolního bodu (tj. čas t c ) REDO je prázdný 2. začne se prohledávat žurnál od t c směrem dopředu 3. Pokud se narazí na počátek další transakce T, přidá se do seznamu UNDO 4. Je-li nalezen v žurnálu COMMIT pro transakci T, pak se přesune transakce T ze seznamu UNDO do REDO Na konci žurnálu budou 2 seznamy, podle těchto seznamů je možné přejít k zotavení po chybě Vladimíra Zádová, KIN, EF TUL- DBS 45

transakce, které jsou uvedeny v seznamu UNDO jsou zpracovány zpětným chodem, transakce uvedené v seznamu REDO jsou zpracovány chodem vpřed. Teprve po všech akcích REDO, UNDO je možné pokračovat dál. Zotavení z chyby medii obvykle natažení databáze ze záložní kopie použití žurnálu k znovuprovedení všech ukončených transakcí od té chvíle, kdy ještě žurnál poskytuje potřebné informace akce UNDO není třeba - protože u transakcí prováděných v době chyby byly odpovídající změny databáze ztraceny. Vladimíra Zádová, KIN, EF TUL- DBS 46