Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
18
Добавлен:
22.08.2013
Размер:
211.97 Кб
Скачать

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

Атомарность – транзакция должна быть выполнена полностью или не выполнена вообще

Согласованность – при выполнении транзакции БД переходит из одного согласованного состояния в другое согласованное состояние

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

Изолированность – транзакции физически обрабатываются последовательно

Долговечность – изменения в БД не могут быть потеряны ни при каких обстоятельствах

Автоматическое выполнение транзакций

Исходное

Исходное

Состояние БД

Состояние БД

INSERT

INSERT

UPDATE

UPDATE

DELETE

DELETE

UPDATE

UPDATE

COMMIT

ROLLBACK

Новое Состояние БД

Управляемое выполнение транзакций

Исходное Состояние БД

BEGIN TRANSACTION

UPDATE

SAVE TRANSACTION A Промежуточное

Состояние БД INSERT

RLOBACK A

UPDATE

 

COMMIT TRANSACTION

Новое

 

Состояние БД

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

 

 

 

 

 

 

Выполнение оператора

 

 

 

 

 

 

ROLLBACK

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Индивидуальный

 

 

Аварийное завершение

 

 

 

откат

 

 

программы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Принудительный откат

 

 

 

 

 

 

при блокировке

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выключение

 

 

 

 

 

 

электропитания

 

 

 

 

 

 

Восстановление

 

 

Мягкий сбой

 

 

 

 

 

 

 

 

 

 

данных

 

 

 

 

 

 

 

 

 

Сбой процессора

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Жесткий сбой

 

Отказ носителя

 

 

внешней памяти

 

 

 

 

 

 

 

Параллельное выполнение транзакций

Типы несогласованности данных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пропавшие

 

Несогласованные

 

 

Промежуточные

 

Строки-фантомы

обновления

 

 

данные

 

 

данные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Принципы сериализации транзакций

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пользователь не должен видеть

 

 

Гарантированное обеспечение

несогласованных данных

 

 

принципа независимого

 

 

 

 

 

выполнения транзакций

 

 

 

Параллельное выполнение транзакций

Конфликты между двумя транзакциями

 

 

 

 

 

 

W-W – одна транзакция пытается

 

 

R-W – одна транзакция пытается

изменить объект, измененный

 

 

изменить объект, открытый для чтения

другой незакончившейся транзакцией

 

 

другой незакончившейся транзакцией

 

 

 

 

 

 

 

 

 

 

 

 

W-R – одна транзакция пытается читать объект, открытый для чтения другой незакончившейся транзакцией

Типы

блокировок

S (Shared) - разделяемая или совместная блокировка. Один и тот же объект данных может быть доступен сразу

нескольким транзакциям, но только в режиме чтения

X (eXclusive) - эксклюзивная или монопольная блокировка. Объект доступен только единственной транзакции

Взаимная блокировка транзакций

Транзакция 1

 

 

 

Объект 1

 

 

 

Объект 2

 

 

 

 

Транзакция 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Select O1

 

 

S-блокировка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X-блокировка

 

 

 

Update O2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Update O1

 

 

X-блокировка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ожидание

 

 

Update O1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Update O2

 

 

Ожидание

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Взаимная блокировка - тупик

Пример графа ожидания транзакций

Транзакция

1

3

4

5

6

2

7 8

Транзакция 3 ждет завершения работы транзакции 4

Наличие циклической конструкции – признак тупиковой ситуации

Уровни изолированности пользоваелей

Serializable

Repeatable read

Полная изолированность транзакций. Максимальная степень целостности данных. Каждая транзакция выполняется изолированно.

Отказ доступа к промежуточным или окончательным результатам других транзакций

Read commited

Tранзакция не имеет доступа к промежуточным результатам других транзакций

Допускается выполнение запроса вне зависимости от того, Read uncommited были зафиксированы результаты параллельных

транзакций или нет

Уровни изолированности пользоваелей

Уровень изолированности

Serializable

Repeatable read

Read commited

Read uncommited

 

Проблема

 

Пропавшие

Промежуточ

Несогласован

Строки-

обновлеия

ные данные

ные данные

фантомы

Не

Не возникает

Не

Не

возникает

 

возникает

возникает

Не

Не возникает

Не

Сохраняется

возникает

 

возникает

 

Не

Не возникает

Сохраняется

Сохраняется

возникает

 

 

 

Не

Сохраняется

Сохраняется

Сохраняется

возникает

 

 

 

Соседние файлы в папке Prezentaciya