Статус документа
Статус документа

ГОСТ Р ИСО/МЭК 9075-93 Информационная технология (ИТ). Язык баз данных SQL с расширением целостности

     4.16 Транзакции


Транзакция является последовательностью операций, включая операции базы данных, которые являются элементарными по отношению к восстановлению и параллелизму. Транзакция начинается при вызове <процедуры> и при том, что в этот момент ни одна транзакция не выполняется. Транзакция заканчивается <оператором фиксации> или <оператором отката>. Если транзакция заканчивается <оператором фиксации>, то все изменения, произведенные в базе данных этой транзакцией, становятся доступными для всех параллельных транзакций. Если транзакция заканчивается <оператором отката>, то все изменения, которые произвела данная транзакция, уничтожаются. Заблокированные изменения не могут быть уничтожены. Изменения, произведенные в базе данных транзакцией, могут быть восприняты этой транзакцией, но пока эта транзакция не закончится <оператором блокировки>, они не могут восприниматься другими транзакциями.

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

Исполнение <оператора SQL> в пределах транзакции не оказывает влияния на базу данных, отличающегося от влияния, которое установлено в Общих правилах для этого <оператора SQL>.

Наряду с последовательным выполнением, это означает, что все операции считывания воспроизводимы в пределах транзакции, за исключением:

1) Влияние изменений на базу данных и ее содержание осуществляется исключительно самой транзакцией.

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