Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по БД(Манило).doc
Скачиваний:
7
Добавлен:
02.08.2019
Размер:
561.15 Кб
Скачать

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

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

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

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

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

  3. Вложенные

Плоские:

Характеризуются четырьмя классическими свойствами.

  1. Атомарность (Atomicity)

  2. Согласованность (Consistency)

  3. Изолированность (Isolation)

  4. Долговечность (Durability)

Атомарность (Atomacity) выражается в том, что транзакция должна быть выполнена в целом или не выполнена вовсе.

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

Изолированность (Isolation) гарантирует, что конкурирующие за доступ к базе данных транзакции физически обрабатываются последовательно изолированно друг от друга, но для пользователя выглядят так, как будто выполняются параллельно.

Долговечность (Durability): если транзакция завершена успешно, то те изменения в данных, которые были произведены, не могут быть потеряны ни при каких обстоятельствах, даже в случае последующих ошибок.

Возможны 2 варианта завершения транзакции:

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

  2. Откат – действие, обеспечивающее аннулирование всех изменений данных, которые были сделаны операторами SQL в теле текущей незавершенной транзакции.

Модель транзакции(рисунок):

Транзакция начинается с первого SQL оператора. Последующие составляют тело транзакции. Commit выполняется в случае успешного завершения обработки информации, объединенной в транзакцию. Его выполнение фиксирует изменения, внесенные в базу данных текущей транзакции. Roilback прерывает выполнение транзакции и осуществляет отмену изменений, проведенных в ходе выполнения транзакции.

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

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

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

Восстановление возможно при:

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

  • аварийное завершение работы

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

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

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

  1. мягкий сбой

Восстановление после внезапной потери содержания оперативной памяти. В случае:

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

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