Что такое транзакции в базах данных
Python
Middle
Без компании
Что такое транзакции в базах данных
Ответы
Транзакция — это последовательность операций с базой данных, которая выполняется как единое целое. Она либо полностью завершается успешно (commit), либо откатывается (rollback) в случае ошибки, сохраняя целостность данных.
Основные свойства транзакций (ACID):
- **Atomicity** (Атомарность) — все операции выполняются или ни одна
- **Consistency** (Согласованность) — данные остаются в валидном состоянии
- **Isolation** (Изолированность) — параллельные транзакции не влияют друг на друга
- **Durability** (Долговечность) — изменения сохраняются после завершения
Пример в Python с SQLite:
```
import sqlite3
conn = sqlite3.connect('test.db')
cursor = conn.cursor()
try:
conn.execute("BEGIN TRANSACTION")
cursor.execute("UPDATE accounts SET balance = balance - 100 WHERE id = 1")
cursor.execute("UPDATE accounts SET balance = balance + 100 WHERE id = 2")
conn.commit() # Фиксируем изменения
except:
conn.rollback() # Откатываем при ошибке
finally:
conn.close()
```