Тема 23. Транзакции. Понятие целостности базы данных

advertisement
Лекция 25
Понятие целостности базы данных. Условия
целостности. Транзакции. Обработка
транзакций. Свойства транзакций. Модель
ANSI/ISO. Назначение и использование
журнала транзакций. Откат и
восстановление
Целостность БД - правильность и
непротиворечивость ее содержимого
на уровне отдельных
объектов и операций
на уровне базы данных
в целом
Транзакция –
неделимая с точки зрения воздействия на БД
последовательность операторов манипулирования
данными (чтения, удаления, вставки, модификации)
такая, что:

либо результаты всех операторов, входящих
в транзакцию, отображаются в БД;

либо воздействие всех этих операторов
полностью отсутствует.
Выполнение и откат транзакции
Нарушение
целостности
Исходное
состояние
Исходное
состояние
Измененная
БД
COMMIT
ROLLBACK
Модели транзакций:
Стандарт ANSI/ISO (СУБД DB2) –
автоматическое выполнение транзакций
COMMIT
ROLLBACK
Модель транзакций СУБД Sybase (Transact-SQL) –
управляемое выполнение транзакций
BEGIN TRANSACTION
COMMIT TRANSACTION
SAVE TRANSACTION
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 или к
состоянию начала транзакции.
Восстановление БД
(последнее согласованное состояние
после сбоя)
=
Журнал транзакций
+
Архивная копия
Общие требования к системе восстановления
данных в составе СУБД
Пользователь не должен осуществлять рестарт транзакций
или повторный ввод данных. Восстановление должно
проходить на базе транзакции с помощью отмены или
изменения отдельных транзакций
Быстрое восстановление данных обеспечивается
генерацией данных, используемых для восстановления
При выполнении процедур автоматизированного
восстановления пользователь не должен анализировать
состав данных и выбирать сами процедуры.
Сервисные программные средства
Программы ведения системного журнала (регистрируют
операции над БД)
Программы архивации (регулярное получение копий БД
Программы восстановления (возврат БД или некоторых ее
частей в состояние, предшествующее возникновению отказа)
Программы отката (ликвидируют последствия
выполнения определенной транзакции в БД)
Программы записи контрольных точек и повторного
исполнения
Свойства ACID
(Atomicity, Consistency, Isolation, Durability):
атомарность – операции транзакции образуют неразделимый
атомарный блок с определенным началом и концом. Этот блок
либо выполняется от начала до конца, либо не выполняется
вообще;
согласованность – по завершении транзакции все
задействованные объекты находятся в согласованном
состоянии;
изолированность – одновременный доступ транзакций
различных приложений к разделяемым объектам
координируется таким образом, чтобы эти транзакции не
влияли друг на друга;
долговременность – все изменения данных, осуществленные в
процессе выполнения транзакции, не могут быть потеряны.
Download