Sobes.tech
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