← Назад к списку
ТехническаяBackendJunior

Что такое ACID? Объясните каждое свойство и как база его обеспечивает.

Короткий ответ

  • Atomicity — транзакция выполняется целиком или откатывается
  • Consistency — переход только между корректными состояниями
  • Isolation — параллельные транзакции не видят промежуточных состояний
  • Durability — закоммиченное переживает сбой
  • Атомарность и долговечность держатся на журнале WAL
  • Изоляция — через блокировки или MVCC

ACID — четыре гарантии транзакций: всё или ничего, корректность, изоляция и сохранность после коммита.

Как сказать вслух

пример ответа

ACID — это четыре свойства транзакций. Атомарность: либо все операции применяются, либо ни одна — классика с переводом денег между счетами. Согласованность: ограничения базы не нарушаются ни до, ни после. Изоляция: параллельные транзакции не мешают друг другу, степень настраивается уровнем изоляции. Долговечность: если база ответила «коммит», данные не пропадут даже при падении сервера — это обеспечивает журнал упреждающей записи.

Подробный ответ

Основной ответ

Atomicity означает, что набор операций — неделимая единица: при ошибке всё откатывается, механика — журнал и откат по нему. Consistency — транзакция переводит базу из одного корректного состояния в другое: работают ограничения (PK, FK, CHECK, UNIQUE), триггеры, плюс инварианты приложения. Isolation — параллельные транзакции изолированы друг от друга в степени, заданной уровнем изоляции; реализуется блокировками или многоверсионностью (MVCC). Durability — после подтверждения коммита данные переживают сбой питания: запись сначала попадает в WAL (write-ahead log), который синхронно сбрасывается на диск, а страницы данных обновляются позже. При восстановлении база переигрывает журнал.

Ключевые моменты

  • WAL. Журнал упреждающей записи — основа атомарности и долговечности: сначала запись в лог на диск, потом изменение данных.
  • Consistency — общая ответственность. База проверяет декларативные ограничения, но бизнес-инварианты (баланс не меньше нуля) часто лежат на приложении и схеме.
  • Изоляция настраивается. Полная изоляция дорога, поэтому существуют уровни — это мост к следующему вопросу интервьюера.

Практический контекст

Вопрос-фильтр на джуниорских собеседованиях: почти всегда просят пример с переводом денег и уточняют «а что будет, если сервер упадёт между операциями». Дальше часто уводят в уровни изоляции или в отличие от BASE-подхода NoSQL-систем. Полезно показать, что понимаешь механику (журнал, откат), а не только расшифровку аббревиатуры.

Частые ошибки

  • Расшифровывают буквы, но не могут объяснить, как достигается долговечность
  • Путают Consistency из ACID с консистентностью из CAP-теоремы
  • Считают, что ACID автоматически защищает от всех гонок — изоляция зависит от уровня

ИП Кочкин Алексей Сергеевич · ИНН 390509026279 · ОГРНИП 325390000030973 · jiniys2005@yandex.ru