- •Транзакция
- •Транзакция
- •Транзакция
- •Свойства ACID транзакций
- •Свойства ACID транзакций
- •Журнал Транзакций
- •Ведение журнала транзакций
- •Ведение журнала транзакций
- •Восстановление транзакций
- •Основные термины
- •Проблемы потерянного обновления
- •Потеря в момент времени t4
- •Проблема зависимости от незафиксированного результата
- •Проблема зависимости от незафиксированного результата
- •Транзакция А становится зависимой от незафиксмрованного изменения в момент времени t2
- •Проблема зависимости от незафиксированного результата
- •Транзакция А обновляет незафиксированное изменение в момент времени t2, и результаты этого обновления
- •Проблема анализа несовместимости
- •Матрица совместимости типов
- •Решение проблемы потерянного обновления
- •Транзакция А
- •Решение проблемы зависимости от незафиксированного результата
- •Решение проблемы зависимости от незафиксированного результата
- •Решение проблемы зависимости от незафиксированного результата
- •Решение проблемы анализа несовместимости
- •ТУПИКОВАЯ СИТУАЦИЯ
- •Пример тупиковой ситуации
- •Выход из тупиковой ситуации
Транзакция
•это логическая единица работы;
•состоит из последовательности операций, которые преобразуют БД из одного непротиворечивого состояния в другое такое состояние.
Под понятием непротиворечивости,
подразумевается отсутствие нарушений каких-либо известных ограничений целостности.
Транзакция
•при этом не требуется, чтобы на всех промежуточных этапах БД находилась в непротиворечивом состоянии;
•компонент системы, который обеспечивает управление транзакциями, называется
диспетчером транзакций (монитор обработки транзакций), в основе организации его работы лежат операции COMMIT и ROLLBACK.
Транзакция
•в системе ведется журнал транзакций, в котором регистрируются подробные сведения обо всех обновлениях, значения обновляемых объектов до и после каждого обновления;
•если возникает необходимость отменить некоторые конкретные обновления, система использует соответствующую запись журнала для восстановления предыдущего значения обновленного объекта .
Свойства ACID транзакций
• А — целостность. Транзакция представляет собой атомарную единицу: либо все определенные в ней операции завершаются, либо не завершается ни одна из них.
•С — согласованность. После транзакции данные всегда остаются в согласованном состоянии.
Свойства ACID транзакций
•I — изолированность. Транзакция выполняется изолированно от остальных операций БД, никакие другие параллельно выполняемые в БД действия не влияют на транзакцию.
•D —долговечность. Результаты зафиксированной транзакции помещаются в БД и остаются невредимыми после отказов системы.
Журнал Транзакций
Ведение журнала транзакций
•Приложение отправляет запрос на изменение данных.
•При выполнении изменения затрагиваемые страницы данных загружаются с диска в буферный кэш, если они не были уже помещены туда при обработке предыдущего запроса.
Ведение журнала транзакций
•В журнал записывается каждая инструкция изменения данных, как только это изменение производится. Изменение всегда заносится в журнал и записывается на диск до того, как оно будет отражено в БД.
•Периодически инициируемый процесс установления контрольной точки записывает все завершенные транзакции в БД на диск.
Восстановление транзакций
Основные термины
Параллелизм – возможность одновременной обработки многих транзакций с доступом к одним и тем же данным в одно и то же время.
X-блокировка – (X locks, eXclusive locks) блокировка без взаимного доступа или монопольная блокировка.
S-блокировка – (S locks, Shared locks) блокировка со взаимным доступом.
Диаграмма состояния ожидания – перечень транзакций, которые ожидают окончания выполнения других транзакций.
