
- •1.1. Введение в дисциплину.
- •1.2. Терминология убд.
- •1.3. Модель "клиент-сервер"
- •1.4. Двухуровневые модели.
- •1.5. Модели серверов баз данных.
- •1.6. Типы параллелизма.
- •1.7. Модели транзакций.
- •1.8. Свойства транзакций. Способы их завершения.
- •1.9. Журнал транзакций.
- •Свойства транзакций
- •3.2. Параллелизм операций над бд
- •3.3. Проблемы параллельных процессов
- •3.4. Элементы блокировки.
- •3.5. Расписание транзакций Последовательное исполнение транзакции при использовании блокировок элементов замедляет процесс работы с бд, хотя и работает правильно. Т1: lock a; unlock a;
1.9. Журнал транзакций.
Реализация в СУБД принципа сохранения промежуточных состояний, подтверждения или отката транзакции обеспечивается специальным механизмом, для поддержки которого создается некоторая системная структура, называемая журналом транзакций. Он предназначен для обеспечения надежного хранения данных в БД, а также для возможности восстановления согласованного состояния БД после любого рода аппаратных и программных сбоев. Для выполнения восстановления необходима некоторая дополнительная информация, которая поддерживается в виде журнала изменений в БД. Журнализация и восстановление тесно связаны с понятием транзакции.
Модели транзакций
В стандарте ANSI/ISO SQL определена модель транзакций. Стандарт определяет, что транзакция начинается с первого SQL-оператора. Все последующие SQL-операторы составляют тело транзакции. Транзакция завершается оператором COMMIT (успешное завершение) или ROLLBACK (прерывает транзакцию) (рис.3.1).
a) b)
Рис.3.1. Выполнение транзакций
а) успешное выполнение, в)аварийное завершение
В некоторых СУБД (например SYBASE) транзакции начинаются явно оператором BEGIN TRANSACTION.
Иногда транзакция откатывается полностью, иногда (в некоторых СУБД) в промежуточные точки. Для сокращения промежуточных состояний, используется журнал транзакций.
Рис.3.2. Выполнение программы Р; Т1 Т2 Т3 - транзакции
Транзакция – это не только логическая единица работы, но также единица восстановления.
Свойства транзакций
Транзакция обладает 4 свойствами: атомарность, согласованность, изоляция и долговечность (АСИД) Атомарность означает, что выполняется всё или ничего.
Согласованность. Транзакция защищают БД согласованно, т.е. переводят одно согласованное состояние в другое без обязательной поддержки согласованности во всех промежуточных точках.
Изоляция. Транзакции отделены одна от другой. Т.е. любое обновление одной транзакции будет скрыто от остальных до тех пор, пока эта транзакция выполняется. Пусть имеем Т1 и Т2. Тогда справедливо утверждение: Т1 сможет увидеть обновление Т2 только после выполнения Т2, а Т2 сможет увидеть обновление Т1 только после выполнения Т1.
Долговечность. Когда транзакция выполняется, её обновления сохраняются, даже если в следующий момент происходит сбой системы.
Восстановление системы
Система должна быть готова к восстановлению не только после небольших (например, невыполнение операций какой-либо транзакции), но и после глобальных нарушений типа сбоев в питании ЦПУ. Глобальные нарушения поражают сразу все транзакции. Существуют два вида глобальных нарушений.
· отказ системы (например, сбои в питании). Их называют аварийным отказом программного обеспечения. · отказы носителей (например, поломка готовок дискового накопителя). аварийный отказ аппаратуры. В 1-м случае для восстановления системы вводятся контрольные точки, которые фиксируются в журнале (см.рис.3.3). Пусть в момент времени Т2 происходит сбой системы.
Рис.3.3. Этапы выполнения транзакций.
Транзакция Т1 – полностью сохраняется; Т2, Т4 – перезапускаются;
Т3 и Т5 – отменяются.