Junior — Middle
¿Puede explicar qué es el principio ACID en el contexto del trabajo con transacciones en bases de datos?
sobes.tech AI
Respuesta de la IA
Принцип 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()
Здесь либо оба запроса выполнятся, либо ни один, что соответствует принципу атомарности.