Какие знаешь свойства транзакции в БД
Python
Senior
Без компании
Какие знаешь свойства транзакции в БД
Ответы
Транзакции в БД обладают четырьмя ключевыми свойствами (ACID):
- **Атомарность (Atomicity)** - транзакция выполняется полностью или не выполняется вообще. Если происходит ошибка, все изменения откатываются.
- **Согласованность (Consistency)** - транзакция переводит БД из одного согласованного состояния в другое, не нарушая целостности данных.
- **Изолированность (Isolation)** - параллельные транзакции не влияют друг на друга, как если бы они выполнялись последовательно.
- **Долговечность (Durability)** - после успешного завершения (commit) изменения сохраняются даже при сбое системы.
Пример в 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()
print("Transaction failed")
finally:
conn.close()
```