Sobes.tech
Junior — Middle
94

Veri bütünlüğünü sağlamak için işlem kullanılan bir duruma örnek verebilir misiniz?

AI'dan gelen yanıt

sobes.tech yapay zeka

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

Пример: при переводе денег между двумя счетами в базе данных. Нужно списать сумму с одного счета и добавить на другой. Если одна операция пройдет, а другая нет, данные будут неконсистентными.

В 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()

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