Sobes.tech
Junior — Middle
68

Дерекқорда немесе деректерді өңдеу жүйесінде транзакция қолданылатын жағдайдың мысалын келтіре аласыз ба?

AI-дан жауап

sobes.tech AI

Транзакция используется для обеспечения целостности данных при выполнении нескольких связанных операций, которые должны быть выполнены как единое целое.

Пример ситуации:

В банковском приложении при переводе денег с одного счёта на другой нужно выполнить две операции:

  1. Списать сумму с одного счёта.
  2. Зачислить сумму на другой счёт.

Если одна из операций не выполнится (например, сбой после списания, но до зачисления), данные окажутся в неконсистентном состоянии.

Использование транзакции гарантирует, что обе операции либо выполнятся полностью, либо не будут выполнены вовсе (откат).

В 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) операций с данными.