Sobes.tech
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:

  1. Read Uncommitted — transakcia môže vidieť nezapracované zmeny iných (špinavé čítanie).
  2. Read Committed — sú viditeľné iba potvrdené zmeny, ale môžu nastať nevratné čítania.
  3. 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).
  4. 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.