Back to questions
Junior — Middle
55
Можете объяснить, что такое принцип ACID в контексте работы с транзакциями в базах данных?
Answer from AI
sobes.tech AI
Принцип ACID описывает четыре ключевых свойства транзакций в базах данных, обеспечивающих надежность и целостность данных:
- Atomicity (Атомарность) — транзакция выполняется полностью или не выполняется вовсе. Если что-то пошло не так, все изменения откатываются.
- Consistency (Согласованность) — после выполнения транзакции база данных остается в корректном состоянии, удовлетворяющем всем правилам и ограничениям.
- Isolation (Изолированность) — параллельные транзакции не влияют друг на друга, как если бы они выполнялись последовательно.
- Durability (Надежность) — после подтверждения транзакции изменения сохраняются в базе данных даже при сбоях.
Пример на Python с использованием транзакций в SQLite:
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
try:
conn.execute('BEGIN')
cursor.execute("INSERT INTO users (name) VALUES ('Alice')")
cursor.execute("INSERT INTO accounts (user, balance) VALUES ('Alice', 1000)")
conn.commit() # Подтверждаем транзакцию
except Exception as e:
conn.rollback() # Откатываем изменения при ошибке
print('Ошибка:', e)
finally:
conn.close()
Здесь либо оба запроса выполнятся, либо ни один, что соответствует принципу атомарности.