Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Операции тран-ии




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

Атомарность тран-ии в системе, одновременно выпол. одну транз-ию

В системе с ед транз-ей в любой произвольный момент времени выполняется только одна тран-я. Если некая тран-я активна, никакая другая тран-я не может начаться. Эта ситуация в точности совпадает с ситуацией, в ко­торой в каждый момент времени к серверу БД подключено единственное прил, имеющее только одну активную транз-ию. Прил не может на­чать новую транзакцию до тех пор, пока не завершена предыдущая.

Для обеспечения атомарности сервер БД должен поддерживать операции открытия, фиксации и отката тран-ии. Операция отката вызывает наибольшие трудности. Если тран-я производит изменения, а затем отменяется, БД должна быть возвращена в прежнее состояние.

По умолчанию для тран-ий задается режим автофиксации, в котором каждый оператор языка SQL выполняется как отдельная тран-я. Выполнение SQL-оператора начинается с неявного запроса открыть транзакцию, после чего следует об­работка оператора, за которой автоматически следует запрос фиксации. Откат случа­ется только при сбое выполнения SQL-оператора.

Чтобы войти в режим явной фиксации, позволяющий выполнять несколько SQL-операторов в рамках одной тран-ии, прил должно произвести явный вызов менеджера тран-ий БД. Прил выполняет оператор открытия тран-ии, чтобы запросить менеджер тран-ий создать новую транзакцию перед вы­полнением следующего SQL-оператора. Чтобы запросить менеджер тран-ий за­фиксировать транзакцию, прил выполняет оператор фиксации тран-ии, а чтобы осуществить отмену тран-ии — оператор отката.

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

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

Другие системы с СУБД работают посредством стратегии кэширования, т.е. тран-я имеет свою собственную память, которая ведет себя как кэш для модифициро­ванных строк. Во время выполнения тран-ии таблицы БД не подверга­ются изменению. Вместо этого образы новых строк записываются в память тран-ии. Все обращения к строкам таблиц БД направляются вначале к кэшу тран-ии. Если строка в кэше не найдена, используется полная таблица БД. Следовательно, БД выглядит так, как будто она изменена транзакцией. Операция фиксации тран-ии сбрасывает кэш, выполняя запись новых значений строк в таблицы БД и удаляя кэш. Операция отката просто удаляет кэш, ос­тавляя базу данных неизменной.




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 384; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.