КАТЕГОРИИ: Архитектура-(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; Просмотров: 385; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |