Back to questions
Junior — Middle
58
Можешь объяснить основные свойства транзакций в базах данных, связанные с принципами ACID?
Companies where asked
Леста
Answer from AI
sobes.tech AI
ACID — это набор свойств, гарантирующих надежность транзакций в базах данных:
- Atomicity (Атомарность): транзакция выполняется полностью или не выполняется вовсе. Если что-то пошло не так, все изменения откатываются.
- Consistency (Согласованность): после завершения транзакции база данных остается в корректном состоянии, удовлетворяющем всем правилам и ограничениям.
- Isolation (Изоляция): параллельные транзакции не влияют друг на друга, результат такой, будто они выполнялись последовательно.
- Durability (Долговечность): после подтверждения транзакции изменения сохраняются и не теряются даже при сбоях.
Пример на Python с использованием SQLite и контекстного менеджера для транзакций:
import sqlite3
conn = sqlite3.connect('example.db')
try:
with conn:
conn.execute("INSERT INTO users (name) VALUES (?)", ('Alice',))
conn.execute("INSERT INTO accounts (user, balance) VALUES (?, ?)" , ('Alice', 100))
except sqlite3.Error as e:
print(f"Ошибка транзакции: {e}")
Здесь with conn: гарантирует атомарность: если одна из операций не выполнится, изменения не сохранятся.