| Каталог | Индекс раздела |
| Назад | Оглавление | Вперед |
Свойство параллельности является одним из наиболее важных свойств транзакций, которые обеспечивают промышленные базы данных. Современные промышленные СУБД обеспечивают параллельную работу с одними и теми же данными огромного количества пользователей. Так, СУБД DB2 была протестирована при одновременной работе 60 тыс. пользователей; точных данных по Oracle у нас нет, но и здесь речь идет о десятках тысяч пользователей. В таких условиях важно, чтобы параллельно выполняемые транзакции не накладывались, а были изолированы друг от друга.
Стандарт SQL/92 определяет уровни изоляции транзакций в многопользовательской системе через отсутствие таких аномалий доступа к базе данных, которые могут в конечном итоге угрожать целостности данных. В стандарте различаются следующие аномалии:
Промышленные СУБД в том или ином объеме выполняют требования стандарта по дифференциации уровней изоляции, но при формально одном и том же уровне изоляции поведение транзакций может существенно различаться в разных СУБД.
Определение уровней изоляции в стандарте и в рассматриваемых нами СУБД сведено в таблицу:
| Уровни изоляции SQL/92 | Аномалии | DB2 | Oracle | А1 | А2 | А3 | А4 |
READ UNCOMMITTED |
нет | да | да | да | UNCOMMITTED READ (UR) |
- |
READ COMMITTED |
нет | нет | да | да | CURSOR STABILITY (CS) |
READ COMMITTED |
REPEATABLE READ |
нет | нет | нет | да | READ STABILITY (RS) |
- |
SERIALIZABLE |
нет | нет | нет | нет | REPEATABLE READ (RR) |
SERIALIZABLE |
| Аномалии: А1 - Потерянные изменения А3 - Неповторяющееся чтение А2 - Грязное чтение А4 - Фантом | ||||||
Кроме названных, в Oracle имеется еще уровень изоляции READ ONLY - для только-читающих транзакций.
В Oracle требуемый уровень изоляции может быть установлен для сеанса соединения с базой данных - как одна из возможностей оператора ALTER SESSION или для отдельной транзакции оператором SET TRANSACTION. Синтаксис этих операторов показан на рис. 5.4.


Рисунок 5.4 - Операторы ALTER SESSION и SET TRANSACTION (Oracle)
В DB2 уровень изоляции устанавливается для приложения, и способы его установки различны для разных способов разработки приложений. При работе в среде DB2 Command Line Processor или DB2 Command Center уровень изоляции устанавливается перед соединением с базой данных оператором CHANGE ISOLATION:

Рисунок 5.5 - Операторы CHANGE ISOLATION (DB2)
| Назад | Оглавление | Вперед |
| Каталог | Индекс раздела |