Weblog   Foto galerie   Odkazy   Implementace katedrálního portálu   ZČU-FAV

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ů

  1. A = aktivní – vznik transakce, provádění
  2. F = chybný – nelze dál pokračovat
  3. C = částečně potvrzený – provedení poslední elementární transakce – transakce nebyla potvrzena
  4. C = potvrzení – commit
  5. AB = zrušení – objekty se uvedou do stavu před započetím transakce
  6. 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í)