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

Вопрос №10. Предложения sql, управляющие транзакциями. Commit work.

Для фиксации или отката транзакции используются предложения commit work, save Point, Rollback work.

  • Предложение commit фиксирует транзакцию

  • Предложение Rollback выполняет откат транзакции, т.е отменяет все изменения, выполненные данной транзакцией в БД

  • Предложение save Point выполняет промежуточную «текущую копию» состояния БД, для того чтобы в последствии при необходимости можно было вернуться в состояние БД в точке сохранения.

Предложение commit work.

Это предложение имеет следующий синтаксис: commit [work]

Оно обеспечивает выполнение следующих действий:

  1. фиксируется транзакция

  2. уничтожаются все точки сохранения

  3. освобождаются объекты, заблокированные в процессе выполнения транзакции.

В процессе выполнения транзакции, в которой содержатся операторы изменения данных, происходит выполнение следующих действий:

  1. сервер создает в собственной памяти специальные записи в сегментах отката

  2. сервер выполняет формирование соответствующих записей в журнальный файл

  3. производится изменение в буферах БД.

Когда транзакция явно или не явно завершается, то выполняется следующий набор операций:

  1. транзакция помечается как зафиксированная

  2. если записи из журнального файла еще не записаны в файл БД, то выполняется запись в долговременную память

заблокированные строки и таблицы освобождаются.

Вопрос №11.

Предложения SQL,управляющие транзакциями.save Point,Rollback work.

Для фиксации или отката транзакции используются предложения commit work, save Point, Rollback work.

  • Предложение commit фиксирует транзакцию

  • Предложение Rollback выполняет откат транзакции, т.е отменяет все изменения, выполненные данной транзакцией в БД

  • Предложение save Point выполняет промежуточную «текущую копию» состояния БД, для того чтобы в последствии при необходимости можно было вернуться в состояние БД в точке сохранения.

Использование предложения save Point

Точки сохранения используются для разделения длительной транзакции на более мелкие элементы. В большой транзакции, выполняющей значительные изменения в БД, целесообразно сохранять частичные изменения в определенных точках, чтобы при возникновении сбоя выполнять откат не к точке старта, а к последней успешно выполненной точке сохранения. Предложение save Point имеет следующий синтаксис: save Point <имя контрольной точки>.

Параметр «имя контрольной точки» задает идентификатор, который соответствует правилам именования объектов в БД. Если значение параметра «имя контрольной точки» совпадает с ранее использованным значением, информация о предыдущей точке сохранения теряется.

Предложение Rollback work

Это предложение имеет следующий синтаксис: Rollback [work] [to [save Point] <имя контрольной точки>].

Использование предложения Rollback work без фразы save Point приводит к выполнению следующих действий:

  1. завершение выполнения транзакции

  2. отмена всех изменений в текущей транзакции

  3. очистке точек сохранения для текущей транзакции

  4. отмене всех блокировок транзакции

Использование предложения Rollback work с фразой save Point приводит к выполнению следующих действий:

  1. откату только части транзакций

  2. фиксации данных, измененных до точки сохранения

  3. освобождение всех блокировок строк, выполненных после создания последней точки сохранения.

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