// Kradeno z https://github.com/Krejdom/school_notes/blob/master/PB154.md 

Transakce

= jednotka vyhodnocování programu, který přistupuje a případně mění různé datové položky.

ACID (Atomicity, Consistency, Isolation, Durability)

atomičnost = Buď jsou provedeny správně všechny operace nebo žádná,
konzistence = Izolované zpracování transakcí zachová databázi konzistentní (Suma hodnot účtů A a B je zachována),
izolace = Nezávislé transakce se provádí po sobě, ne zároveň,
trvanlivost = Změny po úspěšném provedení jsou zachovány i v případě chyby systému

Status transakce

rozvrhy = posloupnost instrukcí, které určují pořadím, jakým jsou instrukce vykonávány

serializovatelnost – jaké procesy mohou běžet současně, aniž by porušily ACID, proces je konfliktně serializovatelný právě tehdy, když je precendenční graf acyklický

zotavitelnost rozvrhu = Čte-li Tj data zapsaná transakcí Ti, musí být operace commit nejdříve od Ti a poté od Tj

kaskádovému zpětnému zotavení = Selže-li transakce Ti, musí selhat i transakce na ní závislé – nežádoucí

bezkaskádový rozvrh = pro každé transakce Ti a Tj, kde Tj čte data zapsaná Ti, se commit operace Ti nachází před čtením Tj

Úrovně konzistence v SQL-92