ACID – набор свойств, которые гарантируют надёжное выполнение транзакций в системах управления базами данных. Термин сформулирован в 1983 году Андреасом Рейтером и Тео Хердером.
Свойства
- Атомарность (Atomicity): транзакция выполняется целиком или не выполняется совсем.
- Согласованность (Consistency): транзакция переводит базу из одного корректного состояния в другое, соблюдая ограничения.
- Изолированность (Isolation): параллельные транзакции не мешают друг другу; уровень изоляции определяет допустимые эффекты.
- Долговечность (Durability): подтверждённые изменения сохраняются даже при сбое.
Уровни изоляции
Стандарт SQL определяет уровни Read Uncommitted, Read Committed, Repeatable Read и Serializable; более строгий уровень снижает аномалии, но может уменьшить параллельность.
Где важно
- Финансовые операции, учёт, биллинг.
- Складские остатки и бронирования.
- Любые системы, где недопустима потеря или частичное выполнение операций.
ACID и NoSQL
Многие распределённые и NoSQL-системы исторически предлагали ослабленные гарантии (модель BASE), но современные СУБД всё чаще поддерживают транзакции ACID.