🤔 Что такое транзакция?
Транзакция в контексте баз данных - это последовательность операций, выполняемых как единое целое. Она должна быть полностью выполнена или полностью отменена, чтобы обеспечить целостность и консистентность данных. Основные свойства транзакции определяются набором правил, известных как ACID:
🚩ACID свойства
🟠Atomicity (Атомарность):
Транзакция либо выполняется полностью, либо не выполняется вовсе. Если происходит ошибка, все операции транзакции откатываются. Например, в банковской системе перевод денег между счетами требует списания суммы с одного счета и зачисления на другой. Если одна из операций не выполнится, другая также должна быть отменена.
🟠Consistency (Консистентность):
После завершения транзакции данные должны оставаться в согласованном состоянии, соответствующем всем определенным правилам и ограничениям. В инвентарной системе при добавлении нового товара должна проверяться допустимость всех значений, таких как положительное количество и правильная категория.
🟠Isolation (Изоляция):
Выполнение транзакций изолировано друг от друга, так что параллельные транзакции не влияют на промежуточные состояния друг друга. Если две транзакции пытаются изменить одни и те же данные, одна из них должна завершиться до того, как другая начнет свои изменения, чтобы избежать конфликтов.
🟠Durability (Долговечность):
После завершения транзакции её результаты сохраняются даже в случае сбоя системы. Если транзакция по записи данных в базу данных завершилась успешно, данные останутся сохраненными даже после перезагрузки сервера.
🚩Этапы выполнения транзакции
1⃣начало выполнения транзакции.
2⃣Выполняются все необходимые операции (вставка, обновление, удаление и т.д.).
3⃣Если все операции выполнены успешно, изменения фиксируются.
4⃣Если произошла ошибка, все изменения отменяются, возвращая базу данных в исходное состояние.
🚩Применение транзакций
🟠Обеспечивают целостность операций перевода денежных средств.
🟠Гарантируют корректное обновление информации о заказах и инвентаре.
🟠Обеспечивают корректность резервирования мест или ресурсов.
Ставь 👍 и забирай 📚 Базу знаний
Post #1657
306