Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД_Бомбы_3.01 (разбито под шпоры).doc
Скачиваний:
50
Добавлен:
10.12.2018
Размер:
858.62 Кб
Скачать
  1. Управление транзакциями в sql. Средства инициации и завершения транзакций. Понятие точки сохранения. Уровни изоляции sql-транзакций.

Транзакция ACID – послед. операций, обладающих св-вами атомарности, согласованности, изоляц, долговечн.

Транзакция , образованная явным образом: START TRANSACTION либо неявно, когда выполняется оператор, для которого требуется контекст транзакции, а его нет.

Для завершения транзакции: COMMIT (транзакция сохр-ся в БД)

ROLLBACK (система возвращается в сост-е до старта)

SET TRANSACTION mode_commalist

mode ::=isolation_level

| access_mode

| diagnostics_size

isolation_level ::= READ UNCOMMITED - уровень изоляции

| READ COMITTED

| REPEATABLE READ

| SERIALIZABLE

access_mode ::= READ ONLY - режим доступа

| READ WRITE

diagnostics_size ::= DIAGNOSTIC SIZE value_specification - № диап.элем-в, кот. могут размещаться в области диагностики

Точки сохранения.

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

Установления точки сохранения: SAVEPOINT savepoint_name

Уровни изоляции SQL-транзакции

В стандарте SQL:1999 уровни изоляции определяются на основе нескольких феноменов, которые могут возникать при выполнении транзакций:

  • Феномен «грязного» чтения (dirty read) - Этому феномену подвержены транзакции, в которых допускается возможность видеть изменения объектов базы данных, производимые другими одновременно выполняемыми и еще не зафиксированными транзакциями. В SQL феномен «грязного» чтения может наблюдаться у транзакций, выполняемых на уровне изоляции READ UNCOMMITTED

  • Феномен неповторяемого чтения (unrepeatable read) - Этому феномену подвержены транзакции, читающие некоторые объекты базы данных и допускающие изменения уже прочитанных объектов другими транзакциями. В SQL феномен неповторяемого чтения может наблюдаться у транзакций, выполняемых на уровне изоляции READ COMMITTED (этот уровень изоляции, как показывает его название, гарантирует отсутствие феномена «грязного» чтения).

  • Феномен фантомов - Этому феномену подвержены транзакции, производящие выборку строк и таблиц базы данных и допускающие добавление к данным таблицам другими транзакциями строк, которые удовлетворяют условию выборки. В SQL феномен фантомов может наблюдаться у транзакций, выполняемых на уровне изоляции REPEATABLE READ (этот уровень изоляции, как показывает его название, гарантирует отсутствие феномена неповторяемого чтения).

52. Иерархия видов ограничений целостности в sql.

В стандарте SQL дополнительные ограничения базы данных называются ASSERTION, т.е. общие ограничения целостности (ограничения БД).

Для определения общего ограничения целостности служит оператор CREATE ASSERTION, задаваемый в следующем синтаксисе:

CREATE ASSERTION constraint_name

CHECK (conditional_expression)

Пример:

CREATE ASSERTION MIN_EMP_BDATE CHECK

((SELECT MIN(EMP_BDATE)) FROM EMP) >= '1917-10-24')

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

1) немедленной проверки (immediate): проверяются при выполнении в транзакции любой операции, изменяющей состояние базы данных, и, возможно ROLLBACK,

2) отложенной проверки (deferred): проверяются при завершении транзакции (выполнении операции COMMIT).

спецификация INITIALLY для ограничения целостности (любого вида):

INITIALLY { DEFERRED | IMMEDIATE } [ [ NOT ] DEFERRABLE ]

Подробнее:

INITIALLY IMMEDIATE  - в режиме немедленной проверки,

INITIALLY DEFERRED – находиться в режиме отложенной проверки, а также DEFERRABLE - для данного ограничения м б установлен режим отложенной проверки, NOT DEFERRABLE – что не может,

INITIALLY DEFERRED NOT DEFERRABLE является недопустимой возможности смены режима подразумевается наличие спецификации DEFERRABLE.