Назад к вопросам
СБЕР
Middle+
3
Расскажи про ACID — свойства транзакций в базах данных
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
ACID — это набор свойств, гарантирующих надежность транзакций в базах данных:
- Atomicity (Атомарность): транзакция выполняется полностью или не выполняется вовсе. Если что-то пошло не так, все изменения откатываются.
- Consistency (Согласованность): после завершения транзакции база данных остается в корректном состоянии, удовлетворяющем всем ограничениям и правилам.
- Isolation (Изолированность): параллельные транзакции не влияют друг на друга, их результаты не пересекаются, как если бы они выполнялись последовательно.
- Durability (Долговечность): после подтверждения транзакции изменения сохраняются навсегда, даже при сбоях системы.
Пример на Go с использованием транзакций в базе данных:
tx, err := db.Begin()
if err != nil {
log.Fatal(err)
}
_, err = tx.Exec("INSERT INTO users(name) VALUES(?)", "Alice")
if err != nil {
tx.Rollback() // откат при ошибке
log.Fatal(err)
}
err = tx.Commit() // подтверждение транзакции
if err != nil {
log.Fatal(err)
}
Здесь либо пользователь добавится, либо изменения не будут применены.