Пиши Дома Нужные Работы

Обратная связь

Свойства транзакций. Способы завершения транзакций

 

Модели транзакций классифицируются на основании различных свойств:

структура транзакции;

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

продолжительность.

 

Типы транзакций:

 

1. Плоские (классические)

 

2. Цепочечные

 

3. Вложенные

 

Плоские транзакции характеризуются 4 классическими свойствами:

атомарность;

согласованность;

изолированность;

долговечность (прочность).

 

Иногда данные транзакции называются ACID-транзакциями.

 

ACID – Atomicity, Consistency, Isolation, Durability.

 

Упомянутые выше свойства означают следующее:

 

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

 

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

 

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

 

Долговечность – если транзакция завершена успешно, то те изменения, в данных, которые были ею произведены, не могут быть потеряны ни при каких обстоятельствах.

 

Варианты завершения транзакций:

 

1. Если все операторы выполнены успешно и в процессе выполнения транзакции не произошло никаких сбоев программного или аппаратного обеспечения, то транзакция фиксируется.

 

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



 

2. Если в процессе выполнения транзакций случилось нечто такое, что делает невозможным ее нормальное завершение, БД должна быть возвращена в исходное состояние.

 

Откат транзакции – это действие, обеспечивающее аннулирование всех изменений данных, которые были сделаны операторами SQL в теле текущей незавершенной транзакции. Каждый оператор в транзакции выполняет свою часть работы, но для успешного завершения всей работы в целом, требуется безусловное завершение всех их операторов.

В стандарте ANSI/ISO SQL транзакция завершается одним из 4-х возможных путей (рис. 1):

 

Рис. 1. Модель транзакций ANSI/ISO

 

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

 

2. оператор ROLLBACK прерывает транзакцию, отменяя изменения, сделанные в БД в рамках этой транзакции; новая транзакция начинается непосредственно после использования ROLLBACK;

 

3. успешное завершение программы, в которой была инициирована текущая транзакция, означает успешное завершение транзакции (как будто был использован оператор COMMIT);

 

4. ошибочное завершение программы прерывает транзакцию (как будто был использован оператор ROLLBACK).

Журнал транзакций предназначен для обеспечения надежного хранения данных в БД. А это требование предполагает, в частности, возможность восстановления согласованного состояния базы данных после любого рода аппаратных и программных сбоев. Очевидно, что для выполнения восстановлений необходима некоторая дополнительная информация, которая поддерживается в виде журнала изменений базы данных, называемого журналом транзакций.

Восстановление после жесткого сбоя

 

Основой восстановления последнего согласованного состояния базы данных после жесткого сбоя являются журнал и архивная копия базы данных.

 

Восстановление начинается с обратного копирования базы данных из архивной копии. Затем для всех закончившихся транзакций выполняется redo, то есть операции повторно выполняются в прямом порядке.

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

 

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






ТОП 5 статей:
Экономическая сущность инвестиций - Экономическая сущность инвестиций – долгосрочные вложения экономических ресурсов сроком более 1 года для получения прибыли путем...
Тема: Федеральный закон от 26.07.2006 N 135-ФЗ - На основании изучения ФЗ № 135, дайте максимально короткое определение следующих понятий с указанием статей и пунктов закона...
Сущность, функции и виды управления в телекоммуникациях - Цели достигаются с помощью различных принципов, функций и методов социально-экономического менеджмента...
Схема построения базисных индексов - Индекс (лат. INDEX – указатель, показатель) - относительная величина, показывающая, во сколько раз уровень изучаемого явления...
Тема 11. Международное космическое право - Правовой режим космического пространства и небесных тел. Принципы деятельности государств по исследованию...



©2015- 2024 pdnr.ru Все права принадлежат авторам размещенных материалов.