Много информации это просто груда мусора


Лекция 10. Транзакции и целостность баз данных



страница7/9
Дата29.04.2018
Размер1.56 Mb.
ТипЛекция
1   2   3   4   5   6   7   8   9

Лекция 10. Транзакции и целостность баз данных

  1. Транзакции

    1. Свойства транзакций

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

      1. Сервисные программные средства в составе СУБД, используемые для восстановления БД

Транзакции

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

  • входное сообщение, передаваемое в систему и отражающее некоторое реальное событие в БД;

  • процесс изменения в БД, вызванный передачей одного входного сообщения.

Под транзакцией понимается неделимая с точки зрения воздействия на БД последовательность операторов манипулирования данными (чтения, вставки, удаления, модификации) такая, что возможны два итога:



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

  • воздействие всех этих операторов полностью отсутствует.

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


Рассмотрим БД «Сессия». Добавим в таблицу «Кадровый состав» столбец НАГРУЗКА для решения дополнительной задачи – расчета общей годовой нагрузки преподавателей. Тогда любая операция по внесению изменений или по добавлению данных в столбец ПРЕПОДАВАТЕЛЬ таблицы «Учебный план» должна сопровождаться соответствующими изменениями данных в столбце НАГРУЗКА. Если после внесения изменений в столбец ПРЕПОДАВАТЕЛЬ произойдет сбой, то БД окажется в нецелостном состоянии.
Для обеспечения контроля целостности каждая транзакция должна начинаться при целостном состоянии БД и должна сохранить это состояние целостным после своего завершения.
Возможны два варианта завершения транзакции. Если все операторы выполнены успешно и в процессе транзакции не произошло никаких сбоев программного или аппаратного обеспечения, транзакция фиксируется.
Фиксация транзакции – это действие, обеспечивающее запись на диск изменений в БД, которые были сделаны в процессе выполнения транзакции.
До тех пор пока транзакция не зафиксирована, допустимо аннулирование этих изменений, восстановление БД в то состояние, в котором она была на момент начала транзакции. Фиксация транзакции означает, что все результаты выполнения транзакции становятся постоянными.
Если в процессе выполнения транзакции случилось нечто такое, что делает невозможным ее нормальное завершение, БД должна быть возвращена в исходное состояние. Откат транзакции – это действие, обеспечивающее аннулирование всех изменений данных, которые были сделаны в процессе текущей незавершенной транзакции.
Каждый оператор в транзакции выполняет свою часть работы, но для успешного завершения всей работы в целом требуется безусловное завершение всех операторов.
Возможна двухфазная и трехфазная схема транзакции:

  1. Первая фаза (операция фиксации): все устройства, участвующие в транзакции, сообщают о своей готовности специальной программе – системному журналу (журналу транзакций).

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



Возврат (восстановление) может быть оперативным, промежуточным, длительным. Для двух первых устанавливается предыдущее состояние (точки фиксации0, для последнего – контрольные точки. Контрольные точки предназначены для процедуры восстановления БД после серьезного сбоя и устанавливаются периодически (например, с интервалом 2 – 3 секунды). Интервал определяется при настройке БД.
Трехфазная схема более сложная и применяется в ограниченном объеме (например, в системе управления распределенными БД).

Свойства транзакций

Транзакции характеризуются четырьмя свойствами:




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




  1. свойство согласованности гарантирует, что по мере выполнения транзакций данные переходят из одного согласованного состояния в другое – транзакция не разрушает взаимной согласованности данных;




  1. свойство изолированности означает, что конкурирующие за доступ к БД транзакции физически обрабатываются последовательно, изолированно друг от друга;




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

Существует три основных типа транзакций:


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




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




  1. Смешанные транзакции. Включают как операции извлечения, так и операции обновления данных.

При последовательном (во времени) выполнении транзакций нарушений целостности нет, но такое выполнение требует много времени. В связи с этим используют так называемый параллельный режим (параллелизм):



  1. Перед обработкой объекта должна быть выполнена его блокировка.

  2. После обработки объект должен быть разблокирован.

  3. Перед разблокировкой не должна выполняться повторная блокировка.

  4. Неблокированный объект не должен освобождаться.

Для параллельного выполнения транзакций составляется расписание (определяющее порядок их взаимодействия). Поскольку последовательное расписание обеспечивает целостность, «параллельное» расписание делают эквивалентным последовательному (последовательно-подобные или сериальные расписания).


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

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


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



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




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




  1. Программы восстановления. Применяются для возврата БД или некоторых ее частей в состояние, предшествующее возникновению отката.




  1. Программы отката. Ликвидируют последствия выполнения определенной транзакции в БД.




  1. Программы записи контрольных точек и повторного исполнения. Позволяют ускорить восстановление.

Каталог: upload -> iblock -> 549
iblock -> Часы-смартфон
iblock -> Руководство пользователя для телефона Apple iPhone 6
iblock -> Руководство по эксплуатации Методика калибровки Технические характеристики. Минимальный радиус кривизны поверхностей контролируемых изделий, 6мм
iblock -> Технические требования
iblock -> Технологические карты
iblock -> Оптимизация процесса восстановления измененных и уничтоженных маркировочных обозначений на блоках двигателей транспортных средств
iblock -> Инструкция по эксплуатации Температурный gsm извещатель Grinson T7 Благодарим Вас за выбор температурного gsm извещателя Grinson T7
549 -> Гост 4011-72 Вода питьевая. Методы измерения массовой концентрации общего железа


Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9


База данных защищена авторским правом ©vossta.ru 2019
обратиться к администрации

    Главная страница