Транзакции в базе данных обеспечивают надежное и согласованное выполнение нескольких операций как единого атомарного действия.
Основные цели:
- Атомарность (Atomicity): Все операции в транзакции либо выполняются полностью успешно, либо ни одна из них не оказывает постоянного эффекта (откат). Это гарантирует целостность данных.
- Согласованность (Consistency): Транзакция переводит базу данных из одного согласованного состояния в другое. Она не нарушает существующие ограничения (constraints).
- Изолированность (Isolation): Параллельно выполняющиеся транзакции не видят промежуточные результаты друг друга до фиксации. Это предотвращает проблемы типа "грязного чтения", "неповторяющегося чтения" и "фантомного чтения".
- Долговечность (Durability): После успешной фиксации транзакции внесенные изменения сохраняются и не будут потеряны даже в случае сбоя системы.
Используются для операций, где требуется гарантия выполнения всех шагов или ни одного, например, при переводе денег между счетами.
Пример иллюстрации атомарности:
sql