Databázové systémy 1 (DB1) - Transakce a žurnál
Vyjadřuje stav databáze. Stav, který by mohl odpovídat reálné situaci. Na zajištění konzistentního stavu databáze slouží integritní omezení.
Selhání
- fyzické zařízení
- operační systém
- chybný zásah obsluhy
- chybná data
Ochrana
- prostředky OS – tvorba kopií, základní prostředek ochrany, záloha = uložení konzistentního stavu databáze, kontrolní bod – checkpoint
- prostředky SŘBD – transakce – posloupnost operací nad objekty databáze, která realizuje jednu ucelenou operaci z pohledu uživatele
Transakce
- říkáme, že je logickou jednotkou práce a je také jednotkou zotavení z chyb, příklad: převod peněz z účtu na účet – dva zápisy do databáze
- během provádění transakce není databáze v konzistentním stavu
Transakce se může dostat do jednoho z pěti + jednoho stavů
- A = aktivní – vznik transakce, provádění
- F = chybný – nelze dál pokračovat
- C = částečně potvrzený – provedení poslední elementární transakce – transakce nebyla potvrzena
- C = potvrzení – commit
- AB = zrušení – objekty se uvedou do stavu před započetím transakce
- PC -> F = částečně potvrzená transakce se také může dostat do chybného stavu
- pořizuje se kopie databáze v kontrolním bodu
- od kontrolního bodu se zapisují změny do žurnálu
- žurnál = tabulka – transakce, objekt transakce – kdo spustil transakci, kdy spustil transakci, nová hodnota objektu, stará hodnota objektu
- ID transakce je obdoba ID procesu
Použití žurnálu
REDO - po chybě se vezme konzistentní stav DB z checkpointu, beru žurnál krok za krokem a provádím transakce
ROLLBACK, UNDO – zpětné použití žurnálu, vychází se ze současného stavu DB, využívá se žurnálu – zpětným odvíjením se dostanu až do konzistentního stavu, význam pouze pro nedokončené transakce
Dvoufázové potvrzování
Tvorba žurnálu s odloženými realizacemi změn zásady
- transakce nesmí měnit hodnoty objektů dříve než je částečně potvrzena
- transakce může být částečně potvrzena až když je kompletní záznam transakce v žurnálovém souboru
Přímý zápis do báze dat
- tvorba žurnálu s bezprostředním zapsáním změn
- do žurnálu zapisuje staré hodnoty
- po obnově se provádí rollback
1. způsob – uzamčené objekty po celou dobu transakce – nevyžaduje ukládání starých hodnot
2. způsob – umožňuje otevření po zapsání – lepší pro paralelní běhy – vyžaduje ukládat staré hodnoty, nevýhoda – při vycouvání musí vycouvat i všechny transakce, které s objekty dále pracovaly (kaskádové rušení transakcí)
