Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_po_BD.doc
Скачиваний:
20
Добавлен:
25.09.2019
Размер:
587.78 Кб
Скачать

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

Транзакция – является логической единицей работы в БД и состоит из набора команд, которые выполняются обязательно все.

Любая транзакция переводит БД из одного согласованного состояния в другое. При успешном завершении результаты транзакции фиксируются. При неуспешном – транзакция отменяется полностью, БД откатывается назад. Зафиксированная транзакция не может быть отменена.

BEGIN TRANSACTION - начало

COMMIT - завершение

ROLLBACK – откатка

Свойства АСИД:

1- атомарность – любая транзакция может быть выполнена вся целиком или не выполнена.

2 – согласованность – переводит БД из одного согласованного состояния в другое.

3 – изолированность – все транзакции выполняются независимо друг от друга, и промежуточные результаты одной транзакции не должны быть доступны другим транзакциям.

4 – долговечность - результаты успешно завершенной (зафиксированной) транзакции должны сохраняться в базе данных постоянно и не должны быть утеряны в результате последующих сбоев.

Проблемы параллельного выполнения транзакции:

1) проблему потерянного обновления - Результаты вполне успешно завершенной операции обновления одной транзакции могут быть перекрыты результатами выполнения другой транзакции,

2) проблему зависимости от нефиксированных результатов - возникает в том случае, ес­ли одна из транзакций получит доступ к промежуточным результатам выполнения другой транзакции до того, как они будут зафиксированы в базе данных,

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

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

Блокировка для чтения - Если транзакция установила блокировку элемента данных для чтения, она сможет считать его, но не сможет обновить.

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

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

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

-Фаза чтения. Она охватывает транзакцию от ее начала и вплоть до момента непосредственного выполнения фиксации результатов. Транзакция считывает значения всех необходимых ей элементов данных и помещает их в ло­кальные переменные. Любые обновления применяются только к локальной копии данных, но не к информации, сохраняемой в самой базе данных.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]