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.