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