Управление транзакциями и блокировками в базах данных, страница 4

Также в некоторых  СУБД можно устанавливать интервал времени  time out – превышение лимита времени.  При введении такого  интервала инструкция SQL заканчивается неуспешно и возвращает код ошибки, если она не смогла установить требуемую блокировку в течение определенного промежутка  времени.

Администратор БД может вручную устанавливать типы,  уровни блокировок и время time out  в зависимости от прикладной программы.

Режимы блокировки для конкретного приложения (программы) можно также устанавливать программно с помощью соответствующих методов объекта Recordset языка VBA. При этом в конкретном случае будут уже действовать установки программы, а не общие установки окна Параметры. Этот вариант обеспечивает более гибкие возможности блокировки, но в данном курсе он только упоминается, подробно  не рассматривается.

Методы  управления блокировками   в  MS  Access

Microsoft Access  является многопользовательской  СУБД.   В  ней имеются определенные механизмы блокировок  для поддержания совместного доступа к данным и  разрешения конфликтов при доступе к данным.  

Существует три типа блокировки записей в базе данных Access.

·  Блокировка  отсутствует. Значок этого режима  .  Если два пользователя одновременно вносили изменения в запись, то тот, кто сохраняет изменения  первым, может это сделать.  Когда  второй пользователь попытается сохранить свои изменения, то появляется диалоговое окно « Конфликт записи», в котором ему предлагается или сохранить свою запись, уничтожив изменения первого пользователя, или скопировать свои изменения в буфер, или отменить свои изменения. Этот вариант называют оптимистической блокировкой, поскольку она основывается на предположении, что при редактировании конфликта с его альтернативными исходами не произойдет.

·         Блокировка  изменяемой записи.   
Access блокирует изменяемую в данный момент запись, не позволяя изменять ее другим пользователям. Заблокированными могут оказаться также записи, расположенные рядом на диске. Если другой пользователь попытается изменить заблокированную запись, у не

   го  появится маркер заблокированной записи      .

  Этот вариант называют пессимистической блокировкой, поскольку предполагается, что конфликт обязательно произойдет. Недостаток: длительность блокировки не ограничена, блокировка снимается только по окончании транзакции.

·  Блокировка всех записей.
        Microsoft Access блокирует все записи формы или объекта в режиме Таблицы, поэтому другие пользователи не могут изменить или заблокировать записи. Этот параметр накладывает жесткие ограничения  и явно снижает производительность.


Чтобы установить параметры  блокировки записей  необходимо:

1.  Выбрать  команду Office  → Параметры Access. Появится диалоговое окно Параметры Access.

2.  Раскрыть вкладку Дополнительно, раздел Дополнительно.

В группе Режим открытия по умолчанию можно выбрать режим Общий доступ или  режим  Монопольный доступ - открытие существующей базы данных для монопольного использования одним пользователем.

В группе Блокировка по умолчанию  устанавливается  необходимый переключатель.

Существует возможность выбора одного из трех уровней блокировки:

  • Отсутствует.
  • Блокировка изменяемой записей. Блокируется только редактируемая запись.
  • Блокировка всех записей. Блокируются все записи таблицы, отображаемые в форме или таблице.

      Период обновления (с)  Число секунд, после которых Microsoft Access автоматически обновит записи в режиме таблицы или формы.

   Число повторов обновления  Количество попыток, когда Microsoft Access пытается сохранить измененную запись, заблокированную другим пользователем. Возможные значения от 0 до 10. Значение по умолчанию: 2.

Установленные параметры  начнет действовать, когда база данных будет открыта заново с помощью команды Файл, Открыть.

Если нужна блокировка на уровне записей при открытии БД, то нужно установить флажок Открытие баз данных с использованием  блокировки на уровне  записей. Если необходима  блокировка по умолчанию на уровне страниц, то этот флажок нужно сбросить.

Справка Access: статья  «Категория «Дополнительные» («Параметры Access»)».

Кроме этих вариантов блокировки записей имеется ещё один метод, заключающийся в установки нужного режима работы с данными в форме. Для этого нужно открыть форму в режиме конструктора и на вкладке Данные Окна свойств для свойства  Блокировка записей выбрать одну из опций блокировки: отсутствует, всех записей, изменяемой записи.

Контрольные вопросы и упражнения

    1. Сформулируйте определение транзакции. Приведите примеры транзакций.
    2. Как  выполняются транзакции в языке SQL?
    3. Назовите и поясните смысл параметров транзакций?  Как установить значения параметров?
    4. Охарактеризуйте  каждый из уровней изоляции транзакций:
      READ  INCOMMITED, READ  COMMITED, REPEATABLE READ, SERIAIZABLE.
    5. Что такое журнал транзакций?  Какие поля он содержит?  Для чего и как он используется?
    6. Для чего в СУБД  используются блокировки данных при обработке транзакций?
    7. Назовите и охарактеризуйте используемые уровни блокировок?
    8. Как устанавливаются режимы блокировки данных в СУБД  MS  ACCESS?