Junior — Middle
68
Дерекқорда немесе деректерді өңдеу жүйесінде транзакция қолданылатын жағдайдың мысалын келтіре аласыз ба?
AI-дан жауап
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) операций с данными.