Перевод БД из одного целостного состояния в другое. Операции должны быть выполнены или не выполнены вовсе (все или ничего)
Пример
Мы списали средства с одного кошелька, что бы перевести на другой, но во время перевода выключился свет и операция выполнила только списание, но не пополнила второй. Транзакции предотвращают это. Работает с помощью ведения журнала
Начало: Begin transaction
Концовка: Сommit (успех) или Rollback (неудачно)
Много пользователей
- грязное чтение
- неповторяемое размытие
- фантом (фиктивный эллемент)
Что бы предотвратить используется:
- блокировка со взаимным доступом
- монопольная блокировка
Однако блокировка замедляет работу. Решение уменьшение фрагментов данных захватываемых транзакций