Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
bd lections / transaction.ppt
Скачиваний:
20
Добавлен:
27.03.2016
Размер:
156.16 Кб
Скачать

Тема 10. Транзакции и целостность БД

10.1.Модели транзакций

10.2.Журнал транзакций

10.3.Параллельное выполнение транзакций

10.4.Сериализация транзакций

10.5.Захват и освобождение объекта

Целостность БД - правильность и непротиворечивость ее содержимого

на уровне отдельных

на уровне базы данных

объектов и операций

в целом

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

такая, что:

либо результаты всех операторов, входящих в транзакцию, отображаются в БД;

либо воздействие всех этих операторов полностью отсутствует.

Выполнение и откат транзакции

Нарушение

целостности

Исходное

Исходное

состояние

состояние

Измененная

БД

COMMIT

ROLLBACK

Модель автоматического выполнения транзакций

 

Непротиворечивая

 

БД

INSERT

INSERT

COMMIT

COMMIT

 

Непротиворечивая

 

БД

UPDATE

UPDATE

COMMIT

ROLLBACK

Непротиворечивая БД

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

инструкцией ROLLBACK (отменяет выполнение текущей транзакции и возвращает БД к состоянию начала транзакции, новая транзакция начинается сразу после инструкции ROLLBACK).

Модель управляемого выполнения транзакций

Исходное состояние БД

BEGIN TRANSACTION

UPDATE

SAVE TRANSACTION A

INSERT

ROLLBACK TO A

DELETE

COMMIT TRANSACTION

Состояние БД после транзакции

Точка сохранения А

BEGIN TRANSACTION сообщает о начале транзакции;

COMMIT TRANSACTION сообщает об успешном выполнении транзакции (новая транзакция не начинается автоматически);SAVE TRANSACTION позволяет создать внутри транзакции точку сохранения;ROLLBACK отменяет выполнение текущей транзакции и возвращает БД к состоянию SAVE TRANSACTION или к состоянию начала транзакции.

Общие требования к системе восстановления данных в составе СУБД

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

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

Сервисные программные средства:

Программы ведения системного журнала (регистрируют операции над БД)

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

Программы отката (ликвидируют последствия выполнения определенной транзакции в БД)

Программы записи контрольных точек и повторного исполнения

Пропавшие обновления

Чтение «грязных» данных

Чтение несогласованных данных

Сериализация транзакций

Виды конфликтов между транзакциями

W-W – конфликт

R-W – конфликт

W-R – конфликт

Транзакция 2

Транзакция 2

Транзакция 2

пытается изменять

пытается изменять

пытается читать

объект, измененный

объект,

объект, измененный

не закончившейся

прочитанный не

не закончившейся

Транзакцией 1

закончившейся

Транзакцией 1

 

Транзакцией 1

 

Соседние файлы в папке bd lections