Что такое ACID

«Что такое ACID» — вопрос из категории Базы данных, который задают на 43% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

ACID — это набор свойств транзакций в базах данных, обеспечивающих надежность:

  • Atomicity (Атомарность) — транзакция либо выполняется целиком, либо не выполняется вообще.
  • Consistency (Согласованность) — транзакция переводит БД из одного валидного состояния в другое.
  • Isolation (Изолированность) — параллельные транзакции не влияют друг на друга.
  • Durability (Долговечность) — после фиксации изменения сохраняются даже при сбоях.

Пример на Go (с использованием sql.Tx):

tx, err := db.Begin()
if err != nil {
    log.Fatal(err)
}
defer tx.Rollback() // Откат при ошибке

_, err = tx.Exec("UPDATE accounts SET balance = balance - 100 WHERE id = 1")
if err != nil {
    return err
}

_, err = tx.Exec("UPDATE accounts SET balance = balance + 100 WHERE id = 2")
if err != nil {
    return err
}

err = tx.Commit() // Фиксация транзакции
if err != nil {
    return err
}

Если один из запросов провалится, изменения не применятся (атомарность).

Видео-ответы