Назад к вопросам
Junior — Middle
57
Можете привести пример ситуации, когда используют транзакцию в базе данных или системе обработки данных?
Ответ от нейросети
sobes.tech AI
Транзакция используется для обеспечения целостности данных при выполнении нескольких связанных операций, которые должны быть выполнены как единое целое.
Пример ситуации:
В банковском приложении при переводе денег с одного счёта на другой нужно выполнить две операции:
- Списать сумму с одного счёта.
- Зачислить сумму на другой счёт.
Если одна из операций не выполнится (например, сбой после списания, но до зачисления), данные окажутся в неконсистентном состоянии.
Использование транзакции гарантирует, что обе операции либо выполнятся полностью, либо не будут выполнены вовсе (откат).
В Python с использованием sqlite3 это выглядит так:
import sqlite3
conn = sqlite3.connect('bank.db')
cursor = conn.cursor()
try:
conn.execute('BEGIN')
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 Exception:
conn.rollback()
raise
finally:
conn.close()
Таким образом, транзакции обеспечивают атомарность, согласованность, изолированность и долговечность (ACID) операций с данными.