Transakční analýza
Podporuje-li SŘBD transakce, je dobré do minispecifikaci doplnit transakce. Respektive označit jejich začátek, konec, případně chackpointy. Tímto se zabývá transakční analýza.
V rámci transakční analýzy je třeba vyhledat v minispecifikacích transakce, většinou co jedna minispecifikace to jedna transakce. A do minispecifikace doplnit do nich příkazy pro zahájení, ukončení a restart transakce a příkazy pro zamykání a odemykání záznamu.
Příkazy transakční analýzy:
- begin transaction - pro označení začátku transakce
- end transaction - pro označení konce
- COMMIT - oznámení o úspěšném dokončení transakce a signál k finálnímu uložení výsledků transakce do databáze
- ROLLBACK - oznámeni o neúspěšném provedení transakce a signál k navrácení změn provedených buď celou transakcí (návrat na začátek transakce) nebo od kontrolního bodu (návrat transakce k poslednímu savepointu).
- LS(A) - sdílený zámek objektu A (záznamu, tabulky, databaze), umožňuje ostatním číst, ale pro psaní zablokuje objekt A.
- LX(A) - exkluzivní zámek objektu A. Nepovoluje ostatním transakcím ani čtení z uzamčeného objektu A.
- UN(A) - odemčení objektu A.
Vlastnosti ACID
Transakce musí splňovat vlastnosti ACID:
- A = Atomičnost - transakce musí být atomická => proběhnou buď všecky operace transakce, nebo žádná.
- C = Konkretonst - transakce převádí data z jednoho konkrétního stavu do druhého. Během transakce, nemusí byt korektnost dodržena.
- I = Izolovatelnost - transakce se nesmí ovlivňovat - změny provedené jednou transakcí nesmí oblivnit průběh druhých. Zajišťují zámky.
- D = Trvalost - po potvrzení transakce (COMMIT) jsou změny které transakce trvalé a zůstavají v databázi i po restartu.