Sobes.tech
Back to questions
Middle+
3

Что такое транзакция и принципы ACID?

Companies where asked
WaterWal

Answer from AI

sobes.tech AI

Транзакция — это последовательность операций с базой данных, которая выполняется как единое целое. Если одна из операций неудачна, все изменения откатываются, чтобы сохранить целостность данных.

Принципы ACID обеспечивают надежность транзакций:

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

В Go при работе с базой через database/sql транзакция создается так:

tx, err := db.Begin()
if err != nil {
    // обработка ошибки
}
_, err = tx.Exec("INSERT INTO users(name) VALUES(?)", "Alice")
if err != nil {
    tx.Rollback()
    // обработка ошибки
}
err = tx.Commit()
if err != nil {
    // обработка ошибки
}