Транзакция, ее свойства. Модель транзакции в стандарте SQL. Журнализация транзакций. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Транзакция, ее свойства. Модель транзакции в стандарте SQL. Журнализация транзакций.



Транзакция – это неделимая с точки зрения воздействия на БД последовательность операторов манипулирования данными (чтения, удаления, вставки, модификации).

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

Если эта последовательность работ будет прервана, то БД не будет соответствовать реальному объекту.

Результаты действия всех операторов, входящих в транзакцию, либо полностью принимаются, либо полностью отвергаются.

Транзакция переводит БД из одного устойчивого состояния в другое.

Транзакция может быть представлена отдельной программой некоторого приложения или ее частью.

Для транзакции возможны два варианта завершения:

· если все операторы выполнены успешно, транзакция фиксируется; до фиксации транзакции допустимо аннулирование произведенных ее изменений, после фиксации результатов транзакции ее изменения становятся видимыми пользователю;

· если нормальное завершение транзакции невозможно, осуществляется откат транзакции – ее результаты аннулируются.

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

· атомарность – требует, чтобы транзакция (все операции (части) транзакции) выполнялась полностью либо не выполнялась совсем.

· сериализуемость – представляет собой возможность одновременного выполнения нескольких транзакций. Т.е результат параллельного выполнения транзакций точно такой же, как если бы они выполнялись последовательно;

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

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

В стандарте ANSI/ISO SQL определена модель транзакции.

Стандарт SQL определяет, что:

· транзакция начинается с первого SQL-оператора;

· последующие SQL-операторы составляют тело транзакции;

· транзакция может завершаться одним из четырех возможных путей:

ü оператор COMMIT выполняется в случае успешного завершения обработки информации, объединенной в транзакцию; его выполнение фиксирует изменения, внесенные в базу данных текущей транзакцией;

ü оператор ROLLBACK (откат) прерывает выполнение транзакции и осуществляет отмену всех изменений, проведенных в ходе выполнения транзакции. БД возвращается в предыдущее устойчивое состояние;

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

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

Таким образом, SQL обеспечивает поддержку транзакций с помощью двух операторов:

1. COMMIT – сохраняет данные на физическом носителе.

2. ROLLBACK – восстанавливает предыдущее состояние базы данных.

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

Сохранение требуемых состояний осуществляется посредством специального механизма, который называется журналом транзакций. Журнал транзакций – это ведение изменений БД.

Целью журнализации изменений БД является обеспечение возможности восстановления согласованного состояния БД после любого сбоя.

Общими принципами восстановления являются:

§ результаты зафиксированных транзакций должны быть сохранены в восстановленном состоянии БД;

§ результаты незафиксированных транзакций должны отсутствовать в восстановленном состоянии БД.

С помощью журнала транзакций отслеживаются все транзакции, вносящие изменения в базу данных. Информация, хранящаяся в журнале транзакций, используется для восстановления базы данных в операциях ROLLBACK.

 

 



Поделиться:


Последнее изменение этой страницы: 2017-01-19; просмотров: 149; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.157.45 (0.005 с.)