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; -- Връщане на транзакцията при грешка