Sobes.tech
Junior

Prečo sa v databázach používajú transakcie?

sobes.tech AI

Odpoveď od AI

Transakcie zabezpečujú atomickosť, konzistentnosť, izoláciu a trvácnosť (ACID) operácií s databázou.

  • Atomickosť: Všetky operácie v transakcii sa vykonajú úplne alebo vôbec. Ak jedna operácia zlyhá, všetky sa vrátia.
  • Konzistentnosť: Transakcia privádza databázu z jedného konzistentného stavu do iného. Sú zabránené porušenia obmedzení (napríklad, jedinečné kľúče).
  • Izolácia: Každá transakcia sa vykonáva tak, ako keby bola jediná v systéme. Zmeny vykonané jednou transakciou nie sú viditeľné pre iné do jej ukončenia.
  • Trvácnosť: Po úspešnom ukončení transakcie sú jej zmeny uložené a nezmiznú ani pri zlyhaní systému.

Transakcie sú dôležité na zabezpečenie integrity dát, najmä pri vykonávaní viacerých súvisiacich operácií, ktoré musia byť vykonané spolu alebo vôbec. Príkladom je prevod peňazí z sporiaceho účtu na bežný účet.

-- Začiatok transakcie
START TRANSACTION;

-- Odpočítanie z prvého účtu
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;

-- Ak bola predchádzajúca operácia úspešná, pripísanie na druhý účet
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;

-- Kontrola, že obe operácie boli úspešné a bez chýb
-- IF chyba THEN
--   ROLLBACK; -- Vrátenie všetkých zmien
-- ELSE
--   COMMIT; -- Potvrdenie všetkých zmien
-- END IF;

-- Predpokladáme, že obe príkazy boli úspešne vykonané, ako príklad
COMMIT; -- Potvrdenie transakcie
-- ROLLBACK; -- Vrátenie transakcie v prípade chyby