Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Управление данными.docx
Скачиваний:
8
Добавлен:
14.08.2019
Размер:
435.99 Кб
Скачать
  1. Модели транзакций. Свойства транзакций.

Модели транзакций.  Транзакцией называется последовательность операций, производимых над БД и переводящих БД из одного непротиворечивого (согласованного) состояния в другое непротиворечивое состояние.  Транзакция рассматривается как некоторое неделимое действие над БД, осмысленное с точки зрения пользователя. В то же время это логическая единица работы системы. Разработчик БД определяет семантику совокупности операций на БД, которая моделирует с точки зрения разработчика некоторую одну неразрывную работу (это и составляет транзакцию).  Например, принимается заказ в фирме на изготовление компьютера. Компьютер состоит из комплектующих, которые сразу резервируются за данным заказом в момент его оформления. Тогда транзакцией будет вся последовательность операций, включающая следующие:

  • ввод нового заказа со всеми реквизитами заказчика;

  • изменения состояния для всех выбранных комплектующих на складе на "занято" с привязкой к определенному заказу;

  • подсчет стоимости заказа с формированием платежного документа (например, выставляемого счета к оплате);

  • включение нового заказа в производство.

С точки зрения работника - это единая последовательность операций. Если она будет прервана, то БД потеряет свое целостное состояние.  Свойства транзакций. Способы их завершения.  Модели транзакций классифицируются на основании различных свойств:

  • структура транзакции

  • параллельность внутри транзакции

  • продолжительность

Типы транзакций:

  1. Плоские (классические)

  2. Цепочечные.

  3. Вложенные.

Плоские транзакции характеризуются 4 классическими свойствами:

  • атомарность;

  • согласованность;

  • изолированность;

  • долговечность (прочность).

Иногда данные транзакции называются ACID-транзакциями.  ACID - Atomicity, Consistency, Isolation, Durability.  Упомянутые выше свойства означают следующее:  Атомарность - выражается в том, что транзакция должна быть выполнена в целом или не выполнена вовсе.  Согласованность - гарантирует, что по мере выполнения транзакций, данные переходят из одного согласованного состояния в другое, т.е. транзакция не разрушает взаимной согласованности данных.  Изолированность - означает, что конкурирующие за доступ к БД транзакции физически обрабатываются последовательно, изолированно друг от друга, но для пользователей это выглядит так, как будто они выполняются параллельно.  Долговечность - если транзакция завершена успешно, то те изменения, в данных, которые были ею произведены, не могут быть потеряны ни при каких обстоятельствах. 

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

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

  1. Результаты зафиксированных транзакций должны быть сохранены в восстановленном состоянии БД.

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

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

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

    • оператор ROLLBACK;

    • аварийное завершение программы;

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

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

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

    • при возникновении неустранимого сбоя процессора. Такая ситуация характеризуется потерей той части БД, которая к моменту сбоя содержалась в буферах ОП.

  3. восстановление после поломки основного внешнего носителя БД (жесткий сбой). Происходит очень редко, но тем не менее СУБД должна быть в состоянии восстановить базу данных даже в этом случае. Основой восстановления является архивная копия и журнал изменений БД.

Возможны два основных варианта ведения журнальной информации:

  1. Для каждой транзакции поддерживается отдельный локальный журнал изменений БД этой транзакцией (локальные журналы). Они используются для индивидуальных откатов транзакций и могут поддерживаться в виртуальной памяти.

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

Достоинства:

  • Позволяет выполнять индивидуальные откаты транзакций.

Недостатки:

  • Приводит к дублированию информации в локальном и общем журналах, => лучше использовать второй вариант.