← Назад к вопросам

Что такое ACID?

2.0 Middle🔥 121 комментариев
#Базы данных и SQL

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI30 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

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

A — Atomicity (Атомарность)

Транзакция либо выполняется полностью, либо не выполняется вообще. Нет состояния половинчатого выполнения.

Пример:

BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;

Если вторая операция упадёт, обе операции откатываются. Деньги не исчезнут и не дублируются. Либо оба счёта обновились, либо ничего.

В Node.js:

const client = await pool.connect();
try {
  await client.query('BEGIN');
  await client.query('UPDATE accounts SET balance = balance - $1 WHERE id = $2', [100, accountId1]);
  await client.query('UPDATE accounts SET balance = balance + $1 WHERE id = $2', [100, accountId2]);
  await client.query('COMMIT');
} catch (error) {
  await client.query('ROLLBACK');
  throw error;
}

C — Consistency (Консистентность)

БД переходит из одного консистентного состояния в другое. Все правила и констрейнты соблюдаются.

I — Isolation (Изолированность)

Каждая транзакция выполняется независимо. Уровни: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE.

D — Durability (Стойкость)

Как только транзакция закоммичена, данные сохранены навсегда. Даже если сервер упадёт, данные восстановятся из WAL (Write-Ahead Log).

ACID — это основа надёжности любого приложения с БД.

Что такое ACID? | PrepBro