Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы лвс.docx
Скачиваний:
143
Добавлен:
06.03.2016
Размер:
1.43 Mб
Скачать

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

Транзакции характеризуются четырьмя классическими свойствами (ACID): атомарности (Atomicity), согласованности (Consistency), изолированности (Isolation), долговечности (Durability).

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

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

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

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

Транзакцию, удовлетворяющую условиям ACID, называют еще плоской транзакцией. Транзакция начинается с первого SQL-оператора, инициируемого пользователем или содержащегося в программе. Все последующие SQL-операторы составляют тело транзакции. Структура такой транзакции очень проста:

Начало транзакции ->

Действие 1 -> ... Действие N ->

Конец транзакции

Для такой транзакции нет никаких промежуточных точек фиксации работы, которую она выполняет между Началом транзакции и Концом транзакции.

Для СУБД операции с данными делятся на следующие категории:

  • операции чтения данных (select);

  • операции записи данных (insert, delete, update);

  • операции определения объектов данных (create/alter/drop user, role, table, view, synonym, stored procedure, trigger и т.п.);

  • операции синхронизации (connect, disconnect, begin transaction, commit/rollback transaction).

28. Выполнение транзакций.

В стандарте ANSI/ISO SQL определены специальные операторы COMMIT и ROLLBACK.

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

•оператор ROLLBACK прерывает транзакцию, отменяя изменения, сделанные в базе данных в рамках этой транзакции.

Транзакция завершается одним из четырех возможных путей (рис.1):

1) успешное завершение транзакции;

  1. прерванная транзакция; новая транзакция начинается непосредственно после использования ROLLBACK;

  1. успешное завершение всей программы (как будто был использован оператор COMMIT);

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

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