Principal
Čo sú transakcie v databázach? Aké sú úrovne izolácie transakcií, aký je ich význam a aký je hlavný rozdiel?
sobes.tech AI
Odpoveď od AI
Transakcia v databáze je logicky prepojený sled operácií, ktorý sa vykonáva ako jedna celok. Hlavné vlastnosti transakcií sú opísané skratkou ACID:
- Atomickosť — všetky operácie transakcie sa vykonávajú úplne alebo vôbec.
- Konzistencia — transakcia prenáša databázu z jedného správneho stavu do iného.
- Izolácia — paralelné transakcie sa navzájom neovplyvňujú.
- Odolnosť — po potvrdení (commit) zostávajú zmeny zachované aj pri zlyhaní.
Úrovne izolácie transakcií určujú mieru viditeľnosti zmien jednej transakcie pre ostatné a ovplyvňujú možné anomálie:
- Read Uncommitted — transakcia môže vidieť nezapracované zmeny iných (špinavé čítanie).
- Read Committed — sú viditeľné iba potvrdené zmeny, ale môžu nastať nevratné čítania.
- Repeatable Read — garantuje, že opakované čítanie tých istých dát v transakcii dá rovnaký výsledok, ale môžu nastať fantómové čítania (nové riadky).
- Serializable — najprísnejšia úroveň, transakcie sa vykonávajú ako keby boli sekvenčné, eliminujúc všetky anomálie.
Hlavný rozdiel spočíva v rovnováhe medzi výkonom a prísnou izoláciou. Čím vyššia je úroveň, tým menej je paralelizmu, ale vyššia je integrita dát.