Базы данных. Уровни данных. Нормальные формы схем отношений. Аксиома дополнения (добавления). Способы размещения с применением Хэш-функции, страница 27

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

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

Откат транзакции - действие, обеспечивающее аннулирование всех изменений данных, которые были сделаны в теле текущей незавершенной транзакции. Реализация в СУБД принципа сохранения промежуточных состояний, подтверждения или отката транзакции обеспечивается специальным механизмом, для поддержки которого создана некоторая системная структура, называемая журналом транзакции. Он предназначен для обеспечения надежного хранения данных в б/д. Общей целью журнализации изменений б/д является обеспечение возможности восстановления согласованного состояния б/д после любого сбоя.

Общие принципы восстановления:

1/ результаты, зафиксированные в транзакции д/б сохранены в восстановленном состоянии б/д;

2/  результаты незафиксированной транзакции должны отсутствовать в восстановленном состоянии б/д.

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

1/ индивидуальный откат транзакции - этот откат  должен быть применен в следующих случаях:

а) стандартная ситуация отката транзакции;

в) аварийное завершение работы прикладной программы;

с) принудительный откат транзакции в случае взаимной блокировки при параллельном выполнении транзакции.

2/  восстановление после внезапной потери содержимого ОП (мягкий сбой)

Ситуация возникает в следующих случаях:

а) при аварийном выключении электрического питания;

в) при возникновении неустранимого сбоя в процессе.

1/  восстановление после поломки основного внешнего носителя б/д (жесткий сбой).

Основой восстановления является архивная копия и журнал изменения б/д. Во всех случаях восстановление основано на избыточном хранении данных. Возможны 2 варианта ведения журн. информации:

1/  для каждой транзакции поддерживается отдельный локальный журнал изменений б/д этой транзакции. Такие журналы называются локальными. Они используются для индивидуальной откатки транзакции. Кроме того поддерживается общий журнал изменений б/д, используемый для восстановления состояния б/д после мягких и жестких сбоев. Этот подход позволяет быстро выполнить индивидуальный откат транзакции, но приводит к дублированию информации локальных и общих журналов. Поэтому чаще всего используют вариант поддержки только общего журнала изменений б/д. Общая структура журнала условно может быть представлена в виде некоторого последовательного файла, в котором фиксируется каждое изменение б/д, которое происходит в ходе выполнения транзакции. Каждая запись в журнале транзакции помечается номером транзакции, к которой относится и значениями атрибутов, которые она меняет. Для каждой транзакции в журнале фиксируется команда начала и завершения транзакции. Для большей надежности журнала транзакции часто дублируются с системными средствами и, как правило, объем внешней памяти во много раз превышает реальный объем данных, которые хранятся в хранилищах.

Существует 2 варианта ведения журнала транзакции:

1/ протокол с отложенными обновлениями;

2/ протокол с немедленными обновлениями.

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

1/  в ходе выполнения транзакции пользователь видит только согласованные данные, пользователь не должен видеть промежуточных несогласованных данных;