ВУЗ:
Составители:
Рубрика:
55
стояние в смысле.
2. Следовательно, выполнение транзакций одна за другой в любом последователь-
ном порядке также является верным. При этом под выражением “любой последо-
вательный порядок” подразумевается, что используются независимые друг от
друга транзакции.
3. Чередующееся выполнение транзакций, следовательно, является верным, если
оно эквивалентно некоторому последовательному выполнению, т.е. если оно
подлежит упорядочению.
Понятно, что для того, чтобы добиться изолированности транзакций, в СУБД
должны использоваться какие-либо методы регулирования совместного выполнения
транзакций. В последнее время вместо термина «упорядочение» транзакций зачастую
используют термин «сериализация» транзакций. План (способ) выполнения набора
транзакций называется сериальным, если результат совместного выполнения транзакций
эквивалентен результату некоторого последовательного выполнения этих же транзакций.
Сериализация транзакций - это механизм их выполнения по некоторому
сериальному плану. Обеспечение такого механизма является основной функцией
компонента СУБД, ответственного за управление транзакциями. Система, в которой
поддерживается сериализация транзакций обеспечивает реальную изолированность
пользователей.
Основная реализационная проблема состоит в выборе метода сериализации набора
транзакций, который не слишком ограничивал бы их параллельность. Тривиальным
решением является действительно последовательное выполнение транзакций. Но
существуют ситуации, в которых можно выполнять операторы разных транзакций в
любом порядке с сохранением сериальности. Примерами могут служить только читающие
транзакции, а также транзакции, не конфликтующие по объектам базы данных.
Возвращаясь к приведенным выше примерам (рис. 5.1 - 5.4), можно отметить: данная
проблема в каждом случае заключалась в том, что чередующееся выполнение транзакций
не было упорядочено, т.е. не было эквивалентно выполнению либо сначала транзакции А,
а затем транзакции В, либо сначала транзакции В, а затем транзакции А. Основное
значение предложенной выше схемы блокировки заключается в принудительном
упорядочении. На рис. 5.7 и 5.8 чередующееся выполнение эквивалентно выполнению
сначала транзакции В, а затем транзакции А. На рис. 5.6 и 5.9 показана тупиковая
ситуация, в которой можно было бы отменить и, возможно, повторно запустить одну из
двух транзакций. Если транзакция А отменяется, чередующееся выполнение вновь
становится эквивалентным выполнению сначала транзакции В, а затем транзакции А.
В данном курсе будем использовать следующую терминологию. Для заданного
набора транзакций любой порядок их выполнения (чередующийся или какой-либо другой)
называется графиком запуска вместо плана. Выполнение транзакций по одной без их
чередования называется последовательным графиком запуска, а непоследовательное
выполнение транзакций - чередующимся графиком запуска или непоследовательным
графиком запуска. Два графика называются эквивалентными, если при их выполнении
будет получен одинаковый результат, независимо от исходного состояния базы данных.
Таким образом, график запуска является верным (т.е. допускающим возможность
упорядочения), если он эквивалентен некоторому последовательному графику запуска.
Стоит подчеркнуть, что при выполнении двух различных последовательных гра-
фиков запуска, содержащих одинаковый набор транзакций, можно получить совершенно
различные результаты. Поэтому выполнение двух различных чередующихся графиков
запуска с одинаковыми транзакциями может также привести к различным результатам,
которые могут быть восприняты как верные. Например, предположим, что транзакция А
означает действие “сложить 1 с х”, а транзакция В- “удвоить х” (где х - это некоторый
объект базы данных). Предположим также, что начальное значение х равно 10. Тогда при
последовательном выполнении сначала транзакции А, а затем транзакции В будет получен
стояние в смысле.
2. Следовательно, выполнение транзакций одна за другой в любом последователь-
ном порядке также является верным. При этом под выражением “любой последо-
вательный порядок” подразумевается, что используются независимые друг от
друга транзакции.
3. Чередующееся выполнение транзакций, следовательно, является верным, если
оно эквивалентно некоторому последовательному выполнению, т.е. если оно
подлежит упорядочению.
Понятно, что для того, чтобы добиться изолированности транзакций, в СУБД
должны использоваться какие-либо методы регулирования совместного выполнения
транзакций. В последнее время вместо термина «упорядочение» транзакций зачастую
используют термин «сериализация» транзакций. План (способ) выполнения набора
транзакций называется сериальным, если результат совместного выполнения транзакций
эквивалентен результату некоторого последовательного выполнения этих же транзакций.
Сериализация транзакций - это механизм их выполнения по некоторому
сериальному плану. Обеспечение такого механизма является основной функцией
компонента СУБД, ответственного за управление транзакциями. Система, в которой
поддерживается сериализация транзакций обеспечивает реальную изолированность
пользователей.
Основная реализационная проблема состоит в выборе метода сериализации набора
транзакций, который не слишком ограничивал бы их параллельность. Тривиальным
решением является действительно последовательное выполнение транзакций. Но
существуют ситуации, в которых можно выполнять операторы разных транзакций в
любом порядке с сохранением сериальности. Примерами могут служить только читающие
транзакции, а также транзакции, не конфликтующие по объектам базы данных.
Возвращаясь к приведенным выше примерам (рис. 5.1 - 5.4), можно отметить: данная
проблема в каждом случае заключалась в том, что чередующееся выполнение транзакций
не было упорядочено, т.е. не было эквивалентно выполнению либо сначала транзакции А,
а затем транзакции В, либо сначала транзакции В, а затем транзакции А. Основное
значение предложенной выше схемы блокировки заключается в принудительном
упорядочении. На рис. 5.7 и 5.8 чередующееся выполнение эквивалентно выполнению
сначала транзакции В, а затем транзакции А. На рис. 5.6 и 5.9 показана тупиковая
ситуация, в которой можно было бы отменить и, возможно, повторно запустить одну из
двух транзакций. Если транзакция А отменяется, чередующееся выполнение вновь
становится эквивалентным выполнению сначала транзакции В, а затем транзакции А.
В данном курсе будем использовать следующую терминологию. Для заданного
набора транзакций любой порядок их выполнения (чередующийся или какой-либо другой)
называется графиком запуска вместо плана. Выполнение транзакций по одной без их
чередования называется последовательным графиком запуска, а непоследовательное
выполнение транзакций - чередующимся графиком запуска или непоследовательным
графиком запуска. Два графика называются эквивалентными, если при их выполнении
будет получен одинаковый результат, независимо от исходного состояния базы данных.
Таким образом, график запуска является верным (т.е. допускающим возможность
упорядочения), если он эквивалентен некоторому последовательному графику запуска.
Стоит подчеркнуть, что при выполнении двух различных последовательных гра-
фиков запуска, содержащих одинаковый набор транзакций, можно получить совершенно
различные результаты. Поэтому выполнение двух различных чередующихся графиков
запуска с одинаковыми транзакциями может также привести к различным результатам,
которые могут быть восприняты как верные. Например, предположим, что транзакция А
означает действие “сложить 1 с х”, а транзакция В- “удвоить х” (где х - это некоторый
объект базы данных). Предположим также, что начальное значение х равно 10. Тогда при
последовательном выполнении сначала транзакции А, а затем транзакции В будет получен
55
Страницы
- « первая
- ‹ предыдущая
- …
- 53
- 54
- 55
- 56
- 57
- …
- следующая ›
- последняя »
