ACID - это набор фундаментальных свойств, которые гарантируют надежность обработки транзакций в системах управления базами данных. Эта аббревиатура описывает ключевые требования к выполнению транзакционных операций.

Содержание

ACID - это набор фундаментальных свойств, которые гарантируют надежность обработки транзакций в системах управления базами данных. Эта аббревиатура описывает ключевые требования к выполнению транзакционных операций.

Расшифровка ACID

  • Atomicity (Атомарность)
  • Consistency (Согласованность)
  • Isolation (Изолированность)
  • Durability (Долговечность)

Подробное описание свойств ACID

СвойствоОпределениеПример
AtomicityТранзакция выполняется целиком или не выполняется вообщеПеревод денег: либо обе операции (списание и зачисление) выполняются, либо ни одна
ConsistencyТранзакция переводит базу данных из одного согласованного состояния в другоеСумма на счетах до и после перевода должна оставаться одинаковой
IsolationПараллельные транзакции не влияют друг на другаДва перевода на один счет обрабатываются последовательно
DurabilityРезультаты завершенной транзакции сохраняются даже при сбоях системыПосле подтверждения перевода деньги не пропадут при отключении электричества

Как обеспечиваются ACID свойства

  1. Журналирование транзакций (Write-Ahead Logging)
  2. Механизмы блокировок (Locking)
  3. Контроль версий данных (MVCC)
  4. Точки сохранения (Savepoints)
  5. Двухфазная фиксация (2PC)

Уровни изолированности транзакций

  • Read uncommitted (Чтение незафиксированных данных)
  • Read committed (Чтение зафиксированных данных)
  • Repeatable read (Повторяемое чтение)
  • Serializable (Сериализуемый)

Пример реализации ACID в СУБД

СУБДПоддержка ACID
PostgreSQLПолная поддержка всех свойств
MySQL (InnoDB)Полная поддержка с настройками изоляции
OracleПолная поддержка, расширенные возможности
MongoDBОграниченная поддержка (с версии 4.0)

Значение ACID в разработке

ACID свойства критически важны для:

  • Финансовых систем и банковских приложений
  • Систем учета и ERP
  • Приложений электронной коммерции
  • Любых систем, где важна целостность данных

Другие статьи

Почему тарелка горячая, а еда холодная и прочее