Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГОС_Теория ЭИС и БД.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
427.6 Кб
Скачать

22.Основные принципы управления транзакциями.

Транзакция/атомарная транзакция – логич-й модуль, действия к-­рого д.б. выполнены полностью или не выполнены вовсе. Понятие атомар­ность имеет смысл: ед-ца (модуль), к-рая не м.б. разбита на меньшие составляющие.

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

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

Все операции доступа к БДам и особенно все модификации БДы д. выполняться как часть транзакции. Прилож-е подключается к серверу БДы и обращается с запросом на создание (открытие) новой транзакции. Серии запросов и обновлений вып-ся приложением в пределах открытой транзакции. Затем прилож-е м. вып-ть фиксацию (commit) транзакции, тем самым, признавая окончат-ми все обновления, или же вып-ть откат (rollback) транзакции, тем самым, отменяя все обновл-я и воз­вращая БДу в исходное состояние. Промежуточных состояний нет. После того как транзакция закры­та, вследствие операции фиксации или отката, для последующего доступа к БДе прилож-е д. открыть новую транзакцию.

В теории и практике БД опред-ся 4 важнейших св-ва тран­закций, сокращенно именуемых ACID:

• Атомарность (atomicity). Или все обновления транзакции происходят успешно, или же никаких обновлений не происходит вовсе.

• Согласованность (consistency). Каждая транзакция д. оставлять БДу в согласованном состоянии. Cсылочная целостность, не д. нарушаться.

• Изолированность (isolation). При парал-ном вып-нии неск-х тран­закций рез-т вып-я каждой из транзакций д.б. тем же, что и при ее отдельном выполнении.

• Продолжит-ть (durability). После успешного заверш-я транзакции, про­изведенные ею в БДе изменения д. становиться перманентными (постоянными). Даже серьезные сбои не д. нарушать перманентность транзакции.

Операции транзакции

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

Атомарность транзакции в с-ме, одновременно выполняющей одну транзакцию

В с-ме с единственной транзакцией в любой произвольный момент времени вып-ся только 1 транзакция. Если некая транзакция активна, никакая др. транзакция не м. начаться.

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

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

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

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

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

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