Gymterview
junior

Назовите основные свойства транзакции?

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

ACID

Свойство Описание Что гарантирует
Atomicity (атомарность) Транзакция выполняется полностью или не выполняется вовсе Нет частичного выполнения
Consistency (согласованность) Транзакция переводит БД из одного корректного состояния в другое Все ограничения (constraints) соблюдены
Isolation (изолированность) Параллельные транзакции не влияют на результат друг друга Каждая транзакция «видит» согласованные данные
Durability (долговечность) Результат зафиксированной транзакции сохраняется даже при сбое Данные записаны на диск (WAL)

Как реализуются свойства ACID

Свойство Механизм реализации
Atomicity Журнал отмены (undo log), позволяющий откатить незавершённые операции
Consistency Ограничения целостности (PK, FK, CHECK, UNIQUE), триггеры
Isolation Блокировки (locks) и/или MVCC (Multi-Version Concurrency Control)
Durability Журнал предзаписи (WAL — Write-Ahead Log), fsync на диск

ACID vs BASE

В NoSQL-системах часто используется модель BASE вместо ACID:

ACID BASE
Atomicity Basically Available
Consistency Soft state
Isolation Eventually consistent
Durability

BASE жертвует строгой согласованностью ради доступности и производительности (теорема CAP).

На собеседовании: интервьюер ожидает расшифровку ACID с объяснением каждого свойства своими словами. Бонус — упомянуть механизмы реализации (WAL для durability, MVCC для isolation). Частая ошибка — путать consistency в ACID (целостность ограничений) с consistency в CAP (все узлы видят одинаковые данные).