9.4. Сериализация транзакций

 

Чтобы добиться изолированности транзакций, СУБД должна использовать специальные методы регулирования совместного выполнения транзакций.

Метод сериализации транзакций - это механизм их выполнения по такому плану, когда результат совместного выполнения транзакций эквивалентен результату некоторого последовательного выполнения этих же транзакций. Обеспечение такого механизма является основной функцией управления транзакциями. Система, в которой поддерживается метод сериализации транзакций, реально обеспечивает изолированность пользователей при работе с БД.

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

На самом деле между транзакциями могут существовать следующие виды конфликтов:

-                    Транзакция 2 пытается изменять объект, измененный не закончившейся Транзакцией 1 (W-W – конфликт);

-                    Транзакция 2 пытается изменять объект, прочитанный не закончившейся Транзакцией 1 (R-W – конфликт);

-                    Транзакция 2 пытается читать объект, измененный не закончившейся Транзакцией 1 (W-R – конфликт).

 

Практические методы сериализации транзакций основываются на учете этих конфликтов.

 

 

К оглавлению

Назад к разделу "9.3. Параллельное выполнение транзакций"

Вперед к разделу "9.5. Захват и освобождение объекта"