Какие знаешь принципы ACID
Python
Middle
Без компании
Какие знаешь принципы ACID
Ответы
ACID — это набор принципов, обеспечивающих надежность транзакций в базах данных:
- **Атомарность (Atomicity)** — транзакция выполняется целиком или не выполняется вовсе. Если что-то пошло не так, все изменения откатываются.
- **Согласованность (Consistency)** — транзакция переводит БД из одного валидного состояния в другое, не нарушая ограничений (constraints, триггеры и т.д.).
- **Изолированность (Isolation)** — параллельные транзакции не влияют друг на друга (уровни изоляции: Read Uncommitted, Read Committed, Repeatable Read, Serializable).
- **Долговечность (Durability)** — после фиксации (commit) изменения сохраняются даже при сбое системы.
Пример на Python с SQLite:
```
import sqlite3
conn = sqlite3.connect(":memory:")
cursor = conn.cursor()
cursor.execute("CREATE TABLE accounts (id INTEGER PRIMARY KEY, balance INTEGER)")
cursor.execute("INSERT INTO accounts VALUES (1, 1000), (2, 500)")
try:
cursor.execute("UPDATE accounts SET balance = balance - 100 WHERE id = 1")
cursor.execute("UPDATE accounts SET balance = balance + 100 WHERE id = 2")
conn.commit() # Фиксация изменений (Durability)
except:
conn.rollback() # Откат при ошибке (Atomicity)
```