ACID-транзакции

ACID — это набор свойств транзакций в базах данных, гарантирующих надёжность и целостность данных при выполнении операций.


Составляющие ACID

  1. Atomicity (Атомарность)

    • Транзакция выполняется полностью или не выполняется вовсе.

    • Если часть операций не удаётся, все изменения откатываются.

    • Пример: при переводе денег с одного счёта на другой, списание и зачисление должны быть атомарными.

  2. Consistency (Согласованность)

    • Транзакция переводит базу из одного корректного состояния в другое.

    • Нарушение правил (например, уникальности ключей) не допускается.

  3. Isolation (Изолированность)

    • Одновременные транзакции не мешают друг другу.

    • Результат транзакций одинаков, как если бы они выполнялись последовательно.

    • Примеры уровней изоляции: READ COMMITTED, REPEATABLE READ, SERIALIZABLE.

  4. Durability (Надёжность/Устойчивость)

    • После фиксации транзакции (COMMIT) изменения сохраняются даже при сбое системы.

    • Используются логи и механизмы восстановления базы.


Пример в SQL

BEGIN TRANSACTION;

UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;

COMMIT;  -- изменения фиксируются атомарно
  • Если произойдёт ошибка между двумя UPDATE, транзакция откатится (ROLLBACK).


Итог: ACID обеспечивает, что транзакции в базе данных выполняются надёжно, последовательно и безопасно, даже при сбоях или конкуренции операций.

Last updated

Was this helpful?