Чтобы добиться изолированности транзакций, СУБД должна использовать специальные методы регулирования совместного выполнения транзакций.
Метод сериализации транзакций - это механизм их выполнения по такому плану, когда результат совместного выполнения транзакций эквивалентен результату некоторого последовательного выполнения этих же транзакций. Обеспечение такого механизма является основной функцией управления транзакциями. Система, в которой поддерживается метод сериализации транзакций, реально обеспечивает изолированность пользователей при работе с БД.
Основная реализационная проблема метода состоит в обеспечении такого выполнения транзакций, при котором не слишком ограничивалась бы их параллельность. Простейшим решением является действительно их последовательное выполнение, но существуют ситуации, когда можно выполнять операторы разных транзакций в любом порядке, и это не приведет к проблемным ситуациям. Примерами могут служить транзакции, выполняющие только операции чтения, или транзакции, работающие с разными объектами базы данных.
На самом деле между транзакциями могут существовать следующие виды конфликтов:
- Транзакция 2 пытается изменять объект, измененный не закончившейся Транзакцией 1 (W-W – конфликт);
- Транзакция 2 пытается изменять объект, прочитанный не закончившейся Транзакцией 1 (R-W – конфликт);
- Транзакция 2 пытается читать объект, измененный не закончившейся Транзакцией 1 (W-R – конфликт).
Практические методы сериализации транзакций основываются на учете этих конфликтов.