Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМКУД_Ванеев_3_КнспктЛкц_.doc
Скачиваний:
6
Добавлен:
27.10.2018
Размер:
1.16 Mб
Скачать

Управление транзакции

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

Транзакция может выполняться полностью, когда все ее операторы верны, либо откатывается полностью, если хотя бы один из операторов не может быть выполнен верно.

Управление транзакциями – один из важных СУБД. Для того, чтобы он работал, разработаны 4 базовых свойства транзакции, гарантированно обеспечивающих правильность и надежность работы системы. (ACID)

(Atomiti Consistency Isolation Duralibity)

1) Атомарность или неделимость транзакции подразумевает то, что все элементы транзакции представляются как одно целое; или полностью выполняется или нет.

2) Согласованность

Транзакция согласована в том смысле, что она не нарушает целостность данных, т. е. транзакция переводит БД из одного согласованного состояния в другое (В процессе выполнения транзакций БД может находиться в несогласованном состоянии).

3) Изолированность

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

4) Устойчивость, после ее завершения происходит фиксация результатов, и система переходит в новое состояние, это состояние сохраняется даже при сбое в системе.

Необходимость управления транзакциями.

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

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

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

Выход из данной ситуации заключается в последовательности выполнения таких транзакций.

2) Проблема "грязного" чтения.

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

Для исключения этой проблемы считывания необходимо изменить после завершения всех изменений.

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

Решается данная проблема с запретом изменения во время считывания.

4) Проблема чтения фантомов. Возникает, когда одна транзакция выбирает данные из таблицы, а другая транзакция удаляет или вставляет строки до завершения первой.

Управление транзакциями (ут)

Под УТ-их определение и управление последовательностью их выполнения.

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

SQL сервер содержит 3 вида транзакции:

  1. автоматическая;

  2. подразумеваемая;

  3. явная.

1) автоматическая – каждая команда – отдельная транзакция;

2) подразумеваемая – транзакция автоматически начинается после завершения предшествующей

Это режим, соответствующий стандарту SQL, т.к. в языке SQL нет операции начало транзакции.

3) явная – явные определения транзакции. Ее начало определяется с помощью специальных операторов:

Begin TRANSACTION

ROLLBACK TRANSACTION

COMMIT TRANSACTION

Существует отдельный механизм для управления последовательностью выполнения транзакции. Выполняет эти функции планировщик, который управляет транзакциями

При этом могут использоваться различные принципы управления. Используются следующие методы управления:

  1. блокировок;

  2. управления с помощью меток времени;

  3. метод оптимистического планирования.