Junior
Dlaczego w bazach danych używa się transakcji?
sobes.tech AI
Odpowiedź od AI
Transakcje zapewniają atomowość, spójność, izolację i trwałość (ACID) operacji na bazie danych.
- Atomowość: Wszystkie operacje w transakcji są wykonywane w całości lub wcale. Jeśli jedna operacja się nie powiedzie, wszystko jest wycofywane.
- Spójność: Transakcja przeprowadza bazę danych ze stanu spójnego do innego. Zapobiega naruszeniom ograniczeń (np. kluczy unikalnych).
- Izolacja: Każda transakcja jest wykonywana tak, jakby była jedyną w systemie. Zmiany dokonane przez jedną transakcję nie są widoczne dla innych do jej zakończenia.
- Trwałość: Po pomyślnym zakończeniu transakcji jej zmiany są zapisywane i nie są tracone nawet w przypadku awarii systemu.
Transakcje są ważne dla zapewnienia integralności danych, szczególnie przy wykonywaniu kilku powiązanych operacji, które muszą być wykonane razem lub wcale. Przykład — przelew pieniędzy z konta oszczędnościowego na konto bieżące.
-- Rozpoczęcie transakcji
START TRANSACTION;
-- Odjęcie od pierwszego konta
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;
-- Jeśli poprzednia operacja się powiodła, dodanie na drugie konto
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;
-- Sprawdzenie, czy obie operacje się powiodły i nie ma błędów
-- IF warunek błędu THEN
-- ROLLBACK; -- Cofnięcie wszystkich zmian
-- ELSE
-- COMMIT; -- Zatwierdzenie wszystkich zmian
-- END IF;
-- Zakładając, że obie komendy zakończyły się sukcesem, dla przykładu
COMMIT; -- Potwierdzenie transakcji
-- ROLLBACK; -- Cofnięcie transakcji w przypadku błędu