Требования ACID: Краткий обзор
ACID (Atomicity, Consistency, Isolation, Durability) — это набор характеристик, обеспечивающих надежность транзакций в базах данных.
Транзакция в БД — это логическая операция, состоящая из одного или нескольких запросов, которые выполняются как единое целое.
Атомарность
Транзакция рассматривается как "неделимая" единица работы. Транзакция либо полностью выполняется, либо вообще не выполняется. Нет промежуточных состояний.
Согласованность
Транзакция должна переводить базу данных из одного с огласованного состояния в другое (например, в каждом столбце значения имеют нужный тип данных, сохранена ссылочная целостность, операции выполнены по порядку). Если БД была в согласованном состоянии до транзакции, она должна остаться такой и после.
Изолированность
Другие транзакции не должны видеть промежуточных результатов текущей транзакции. Каждая транзакция должна быть изолирована от других: её выполнение не должно влиять на другие транзакции.
Долговечность (надёжность)
После успешного завершения транзакции изменения в БД должны сохраняться даже в случае сбоев системы. Данные, внесённые в БД, должны быть долговечными.
Когда применяется ACID
- В финансовых, банковских, бухгалтерских приложениях, где точность данных является критически важной.
- В системах управления заказами и инвентарем, управления ресурсами (таких как авиабилеты, номера номеров и т.д.).
ACID не актуальны, когда:
- Производительность имеет большее значение, чем полная гарантия целостности данных.
- Часто выполняются параллельные операции и где допустимы некоторые компромиссы в обмен на повышенную производительность.
- Данные имеют низкую ценность или могут быть легко восстановлены.
- Данные имеют высокую степень избыточности или дублирования.