Sobes.tech
Junior

Защо се използват транзакции в базите данни?

sobes.tech AI

Отговор от AI

Трансакциите гарантират атомарността, консистентността, изолацията и трайността (ACID) на операциите с базата данни.

  • Атомарност: Всички операции в транзакцията се изпълняват напълно или изобщо. Ако една операция се провали, всичко се връща.
  • Консистентност: Транзакцията пренася базата данни от едно консистентно състояние в друго. Предотвратява се нарушаване на ограничения (например, уникални ключове).
  • Изолация: Всяка транзакция се изпълнява така, сякаш е единствената в системата. Промените, направени от една транзакция, не са видими за други до нейното завършване.
  • Трайност: След успешно завършване на транзакцията, промените й се запазват и не се губят дори при срив на системата.

Транзакциите са важни за гарантиране целостта на данните, особено при изпълнение на няколко свързани операции, които трябва да се изпълнят заедно или изобщо. Пример — превод на пари от спестовна сметка към текуща.

-- Начало на транзакцията
START TRANSACTION;

-- Изваждане от първия сметка
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;

-- Ако предишната операция е успешна, кредитиране на втория сметка
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;

-- Проверка дали и двете операции са успешни и без грешки
-- IF грешка THEN
--   ROLLBACK; -- Връщане на всички промени
-- ELSE
--   COMMIT; -- Потвърждаване на всички промени
-- END IF;

-- Предполага се, че и двете команди са изпълнени успешно, за пример
COMMIT; -- Потвърждаване на транзакцията
-- ROLLBACK; -- Връщане на транзакцията при грешка