Недавно Junior разработчик попросил простыми словами описать что такое транзакция, ну так вот:



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



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



Принципы транзакция заложены в понятии ACID:

- Атомарность (Atomicity): либо выполнится вся, либо не выполнится вообще

- Согласованность (Consistency): данные до транзакции и после должны находится в валидном состоянии

- Изолированность (Isolation): как одна транзакция работает с другой

- Устойчивость (Durability): все изменения должны быть в базе



Интересна такая тема ?