Junior
Miért használják az adatbázisokban a tranzakciókat?
sobes.tech MI
Válasz az MI-től
Az tranzakciók biztosítják az adatbázis műveletek atomaritását, konzisztenciáját, izolációját és tartósságát (ACID).
- Atomaritás: Minden művelet egy tranzakcióban vagy teljes egészében végrehajtódik, vagy egyáltalán nem. Ha egy művelet sikertelen, akkor minden visszavonódik.
- Konzisztencia: A tranzakció az adatbázist egy konzisztens állapotból egy másikba viszi. Megelőzi a korlátozások (pl. egyedi kulcsok) megsértését.
- Izoláció: Minden tranzakció úgy fut, mintha az egyedüli lenne a rendszerben. A tranzakció által végzett változtatások nem láthatók mások számára a befejezéséig.
- Tartósság: Sikeres tranzakció után a változtatások rögzítésre kerülnek, és még rendszerhiba esetén sem vesznek el.
A tranzakciók fontosak az adatok integritásának biztosításában, különösen akkor, ha több összefüggő műveletet kell végrehajtani, amelyeknek együtt vagy egyáltalán nem szabad megtörténniük. Példa erre a pénz átutalása egy megtakarítási számláról egy folyószámlára.
-- Tranzakció kezdete
START TRANSACTION;
-- Az első számláról levonás
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;
-- Ha az előző művelet sikeres, jóváírás a második számlán
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;
-- Ellenőrzés, hogy mindkét művelet sikeres volt-e és nem voltak hibák
-- IF hiba THEN
-- ROLLBACK; -- Minden változtatás visszavonása
-- ELSE
-- COMMIT; -- Minden változtatás jóváhagyása
-- END IF;
-- Feltételezve, hogy mindkét parancs sikeresen végrehajtódott, példaként
COMMIT; -- A tranzakció jóváhagyása
-- ROLLBACK; -- A tranzakció visszavonása hiba esetén