Junior
De ce sunt utilizate tranzacțiile în bazele de date?
sobes.tech AI
Răspuns de la AI
Tranzacțiile asigură atomitatea, coerența, izolarea și durabilitatea (ACID) operațiilor cu baza de date.
- Atomitate: Toate operațiile dintr-o tranzacție sunt finalizate complet sau deloc. Dacă o operație eșuează, toate sunt anulate.
- Coerență: Tranzacția duce baza de date dintr-o stare coerentă în alta. Sunt prevenite încălcări ale restricțiilor (de exemplu, chei unice).
- Izolare: Fiecare tranzacție se execută ca și cum ar fi singura în sistem. Modificările făcute de o tranzacție nu sunt vizibile pentru altele până la finalizarea acesteia.
- Durabilitate: După finalizarea cu succes a unei tranzacții, modificările sale sunt salvate și nu se pierd chiar și în cazul unei defectări a sistemului.
Tranzacțiile sunt importante pentru asigurarea integrității datelor, mai ales când se execută mai multe operațiuni legate între ele, care trebuie să fie executate împreună sau deloc. Un exemplu este transferul de bani de pe un cont de economii pe un cont curent.
-- Începutul tranzacției
START TRANSACTION;
-- Debitat din primul cont
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;
-- Dacă operațiunea anterioară a avut succes, credit pe al doilea cont
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;
-- Verificarea dacă ambele operațiuni au avut succes și nu au erori
-- IF condiție de eroare THEN
-- ROLLBACK; -- Anulează toate modificările
-- ELSE
-- COMMIT; -- Confirmă toate modificările
-- END IF;
-- Presupunând că ambele comenzi au fost executate cu succes, pentru exemplu
COMMIT; -- Confirmă tranzacția
-- ROLLBACK; -- Anulează tranzacția în caz de eroare