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

Содержание

Слайд 2

Исходное Состояние БД INSERT UPDATE DELETE UPDATE COMMIT Новое Состояние БД

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

INSERT

UPDATE

DELETE

UPDATE

COMMIT

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

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

INSERT

UPDATE

DELETE

UPDATE

ROLLBACK

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

Слайд 3

Управляемое выполнение транзакций Исходное Состояние БД BEGIN TRANSACTION UPDATE SAVE TRANSACTION

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

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

BEGIN TRANSACTION

UPDATE

SAVE TRANSACTION A

INSERT

RLOBACK A

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

Промежуточное
Состояние БД

COMMIT TRANSACTION

UPDATE

Слайд 4

Использование журнала транзакций Восстановление данных Индивидуальный откат Мягкий сбой Жесткий сбой

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

Восстановление
данных

Индивидуальный
откат

Мягкий сбой

Жесткий сбой

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

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

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

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

Выключение
электропитания

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

Отказ носителя
внешней памяти

Слайд 5

Параллельное выполнение транзакций Типы несогласованности данных Пропавшие обновления Несогласованные данные Промежуточные

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

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

Пропавшие
обновления

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

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

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

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

Пользователь не должен видеть
несогласованных данных

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

независимого
выполнения транзакций
Слайд 6

Параллельное выполнение транзакций Конфликты между двумя транзакциями W-W – одна транзакция

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

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

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

объект, измененный
другой незакончившейся транзакцией

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

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

Типы
блокировок

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

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

Слайд 7

Взаимная блокировка транзакций Объект 1 Объект 2 Транзакция 1 Транзакция 2

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

Объект 1

Объект 2

Транзакция 1

Транзакция 2

Select O1

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

Update O1

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

Update O2

Ожидание

Update O2

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

Update

O1

Ожидание

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

Слайд 8

Пример графа ожидания транзакций 1 2 3 4 5 6 7

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

1

2

3

4

5

6

7

8

Транзакция

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

Наличие циклической конструкции

– признак тупиковой ситуации
Слайд 9

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

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

Serializable

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

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

Repeatable read

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

Read commited

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

Read uncommited

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

Слайд 10

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

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

Слайд 11

Гранулированные синхронизационные захваты Дополнительные типы блокировок IS (Intented for Shared Lock)

Гранулированные синхронизационные захваты

Дополнительные
типы
блокировок

IS (Intented for Shared Lock) – по отношению к

некоторому
объекту означает намерение захватить часть
этого объекта в совместном режиме

IX (Intented for eXclusive Lock) - по отношению к некоторому
объекту означает намерение захватить часть
этого объекта в монопольном режиме

SIX (Shared, Intented for eXclusive Lock) - по отношению к
некоторому объекту означает совместный захват этого
объекта с намерением впоследствии захватывать части
этого объекта в монопольном режиме

Диаграмма приоритета блокировок

Х

SIХ

Х

S

IS