Базы данных - модели, разработка, реализация



         

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


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

Однако назначение журнала транзакций гораздо шире. Он предназначен для обеспечения надежного хранения данных в БД.

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

221

в виде журнала изменений базы данных, чаще всего называемого Журналом транзакций.

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

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

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

  • Индивидуальный откат транзакции. Этот откат должен быть применен в следующих случаях:
  • стандартной ситуацией отката транзакции является ее явное завершение оператором ROLLBACK;
  • аварийное завершение работы прикладной программы, которое логически эквивалентно выполнению оператора ROLLBACK, но физически имеет иной механизм выполнения;
  • принудительный откат транзакции в случае взаимной блокировки при параллельном выполнении транзакций.


    Содержание  Назад  Вперед