Procházet otázky :: SZZ na MFF UK

#

- Hlavní strana
- Okruhy
- Projít
- Stáhnout
- Co je potřeba
- Chci přispět
- Kredity

Hledat:

## Prohlížení státnicových textů

## Transakční zpracování, vlastnosti transakcí, uzamykací protokoly, zablokování

Definice (Transakce)

Transakce je jistá posloupnost nebo specifikace posloupnosti akcí práce s databází, jako jsou čtení, zápis nebo výpočet, se kterou se zachází jako s jedním celkem.

Hlavním smyslem používání transakcí, tj. transakčního zpracování, je udržení databáze v konzistentním stavu. Jestliže na sobě některé operace závisí, sdružíme je do jedné transakce a tím zabezpečíme, že budou vykonány buď všechny, nebo žádná. Databáze tak před i po vykonání transakce bude v konzistentním stavu. Aby se uživateli transakce jevila jako jedna atomická operace, je nutné zavést příkazy COMMIT a ROLLBACK. První z nich signalizuje databázi úspěšnost provedení transakce, tj. veškeré změny v databázi se stanou trvalými a jsou zviditelněny pro ostatní transakce, druhý příkaz signalizuje opak, tj. databáze musí být uvedena do původního stavu.

Tyto příkazy většinou není nutné volat explicitně, např. příkaz COMMIT je vyvolán po normálním ukončení programu realizujícího transakci. Příkaz ROLLBACK pro svou funkci vyžaduje použití tzv. žurnálu (logu) na nějakém stabilním paměťovém médiu. Žurnál obsahuje historii všech změn databáze v jisté časové periodě.

Jednoduchá transakce vypadá většinou takto:

1. Začátek transakce,
2. provedení několika dotazů - čtení a zápisů (žádné změny v databázi nejsou zatím vidět pro okolní svět),
3. Potvrzení (příkaz COMMIT) transakce (pokud se transakce povedla, změny v databázi se stanou viditelné).

Pokud nějaký z provedených dotazů selže, systém by měl celou transakci zrušit a vrátit databázi do stavu v jakém byla před zahájením transakce (operace ROLLBACK).

Transakční zpracování je také ochrana databáze před hardwarovými nebo softwarovými chybami, které mohou zanechat databázi po částečném zpracování transakce v nekonzistentním stavu. Pokud počítač selže uprostřed provádění některé transakce, transakční zpracování zaručí, že všechny operace z nepotvrzených (uncommitted) transakcí budou zrušeny.

Subsections

- Vlastnosti transakcí
- Uzamykací protokoly
  - Dvoufázový protokol (2PL)
  - Striktní dvoufázový protokol (S2PL)
  - Konzervativní dvoufázový protokol (C2PL)
- Vylepšení zamykacích protokolů
  - Sdílené a výlučné zámky
  - Strukturované uzamykání (multiple granularity)
- Alternativní protokoly
  - Časová razítka
  - Optimistické protokoly