COMMIT, либо при ошибке откатываются через ROLLBACK. Свойства ACID (Atomicity, Consistency, Isolation, Durability) описывают, какими качествами должна обладать корректная транзакция.
COMMIT, либо при ошибке откатываются через ROLLBACK. Свойства ACID (Atomicity, Consistency, Isolation, Durability) описывают, какими качествами должна обладать корректная транзакция.
Транзакция в SQL
Транзакция — это последовательность SQL‑операций (например, несколько INSERT/UPDATE/DELETE), которая рассматривается как одна логическая единица работы. Либо все изменения этой последовательности фиксируются в базе командой COMMIT, либо при ошибке откатываются через ROLLBACK, возвращая данные в исходное состояние.
Простой пример: перевод денег между счетами. Операции UPDATE accounts SET balance = balance - 100 WHERE id = ... и UPDATE accounts SET balance = balance + 100 WHERE id = ... должны либо обе выполниться, либо обе отмениться.
Свойства ACID
ACID — это аббревиатура четырёх свойств транзакций:
Atomicity (атомарность) — транзакция неделима: либо все операции внутри неё выполняются, либо ни одна не применяется.
Consistency (согласованность) — после завершения транзакции база остаётся в согласованном состоянии и удовлетворяет всем ограничениям (например, NOT NULL, UNIQUE, внешним ключам FOREIGN KEY).
Isolation (изоляция) — параллельные транзакции не должны мешать друг другу; каждая транзакция ведёт себя так, как будто она выполняется в одиночку (в зависимости от уровня изоляции: READ COMMITTED, REPEATABLE READ, SERIALIZABLE и др.).
Durability (надёжность) — после COMMIT изменения не потеряются даже при сбое системы: они записаны на устойчивое хранилище.
Как ответить на собеседовании
Транзакция — это набор SQL‑операций, который либо выполняется целиком, либо откатывается. Свойства ACID гарантируют, что транзакции атомарны, сохраняют согласованность данных, изолированы друг от друга и их результат сохраняется надёжно. Для junior полезно уметь привести пример с переводом денег и объяснить смысл BEGIN/COMMIT/ROLLBACK.
Оцени свой прогресс