Junior — Middle
110
¿Puedes explicar las propiedades principales de las transacciones en bases de datos relacionadas con los principios ACID?
Empresas donde se preguntó
Леста
Respuesta de la IA
sobes.tech AI
ACID — это набор свойств, гарантирующих надежность транзакций в базах данных:
- Atomicity (Атомарность): транзакция выполняется полностью или не выполняется вовсе. Если что-то пошло не так, все изменения откатываются.
- Consistency (Согласованность): после завершения транзакции база данных остается в корректном состоянии, удовлетворяющем всем правилам и ограничениям.
- Isolation (Изоляция): параллельные транзакции не влияют друг на друга, результат такой, будто они выполнялись последовательно.
- Durability (Долговечность): после подтверждения транзакции изменения сохраняются и не теряются даже при сбоях.
Пример на Python с использованием SQLite и контекстного менеджера для транзакций:
import sqlite3
conn = sqlite3.connect('example.db')
try:
with conn:
conn.execute("INSERT INTO users (name) VALUES (?)", ('Alice',))
conn.execute("INSERT INTO accounts (user, balance) VALUES (?, ?)" , ('Alice', 100))
except sqlite3.Error as e:
print(f"Ошибка транзакции: {e}")
Здесь with conn: гарантирует атомарность: если одна из операций не выполнится, изменения не сохранятся.