Junior — Middle
82
Pouvez-vous donner un exemple de situation où une transaction est utilisée pour assurer l'intégrité des données?
Réponse de l'IA
sobes.tech IA
Транзакции используются для обеспечения целостности данных, когда нужно выполнить несколько связанных операций, которые должны быть атомарными — то есть либо все операции выполняются успешно, либо ни одна не применяется.
Пример: при переводе денег между двумя счетами в базе данных. Нужно списать сумму с одного счета и добавить на другой. Если одна операция пройдет, а другая нет, данные будут неконсистентными.
В 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()
Таким образом, если одна из операций обновления баланса не выполнится, изменения не сохранятся, и данные останутся целостными.