Sobes.tech
Junior — Middle
84

Vai vari sniegt piemēru situācijai, kurā tiek izmantota transakcija datu integritātes nodrošināšanai?

Atbilde no 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 as e:
    conn.rollback()  # откатываем изменения при ошибке
    print('Ошибка при переводе:', e)
finally:
    conn.close()

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