265
− совместный режим - S (Shared), означающий разделяемый за-
хват объекта и необходимый для выполнения операции чтения объекта;
− монопольный режим - X (eXclusive), означающий монопольный
захват объекта и необходимый для выполнения операций записи, удале-
ния и модификации.
Наиболее распространенным в СУБД, основанных на архитектуре
«клиент-сервер», является подход, реализующий соблюдение двухфаз-
ного протокола захватов объектов БД. В общих чертах протокол состоит
в том, что перед выполнением любой операции над объектом базы дан-
ных от имени транзакции запрашивается захват объекта в соответст-
вующем режиме (в зависимости от вида операции – совместном или мо-
нопольном). В соответствии с этим протоколом выполнение транзакции
разбивается на две фазы: первая фаза транзакции - накопление захватов;
вторая фаза (фиксация или откат) - освобождение захватов.
При соблюдении двухфазного протокола основная проблема со-
стоит в том, что следует считать объектом для захвата?
В контексте реляционных баз данных возможны следующие вари-
анты:
− файл - физический (с точки зрения базы данных) объект, об-
ласть хранения нескольких отношений и, возможно, индексов;
− таблица - логический объект, соответствующий множеству за-
писей данного отношения;
− страница данных - физический объект, хранящий записи одного
или нескольких отношений, индексную или служебную информацию;
− запись - элементарный физический объект базы данных.
Очевидно, что чем крупнее объект захвата, тем меньше захватов
будет поддерживаться в системе, и на это, соответственно, будут тра-
титься меньшие накладные расходы. Более того, если выбрать в качестве
уровня объектов для захватов файл или отношение, то будет решена да-
же проблема строк-призраков. Однако, при использовании для захватов
крупных объектов возрастает вероятность конфликтов транзакций и тем
самым уменьшается допускаемая степень их параллельного выполнения.
Фактически, при укрупнении объекта синхронизационного захвата мы
умышленно огрубляем ситуацию и видим конфликты в тех ситуациях,
когда на самом деле конфликтов нет.
Таким образом, можно резюмировать, что транзакция – это закон-
ченный блок обращений к базе данных и некоторых действий над ней,
для которого гарантируется выполнение четырех условий, так называе-
мых свойств ACID (Atomicity, Consistency, Isolation, Durability).
− Атомарность – операции транзакции образуют неразделимый
атомарный блок с определенным началом и концом. Этот блок либо вы-