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

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

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

Режими блокування для конкретного додатка (програми) можна також встановлювати програмно за допомогою відповідних методів об'єкта Recordset мови VBA. При цьому в конкретному випадку будуть вже діяти установки програми, а не загальні установки вікна Параметри. Цей варіант забезпечує більш гнучкі можливості блокування, але в даному курсі він тільки згадується, докладно не розглядається.

Методи управління блокуваннями вMSAccess

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

Існує три типи блокування записів в базі даних Access.

· Блокування відсутня. Значок цього режиму. Якщо два користувача одночасно вносили зміни в запис, то той, хто зберігає зміни першим, може це зробити. Коли другий користувач спробує зберегти свої зміни, то з'являється діалогове вікно «Конфлікт записи», в якому йому пропонується або зберегти свій запис, знищивши зміни першого користувача, або скопіювати свої зміни в буфер, або скасувати свої зміни. Цей варіант називають оптимістичною блокуванням, оскільки вона грунтується на припущенні, що при редагуванні конфлікту з його альтернативними наслідками не відбудеться.

· Блокування змінною записи.
Access блокує змінну в даний момент запис, не дозволяючи змінювати її іншим користувачам. Заблокованими можуть виявитися також записи, розташовані поруч на диску. Якщо інший користувач спробує змінити заблоковану запис, у не

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

Цей варіант називають песимістичній блокуванням, оскільки передбачається, що конфлікт обов'язково станеться. Недолік: тривалість блокування не обмежена, блокування знімається тільки після закінчення транзакції.

· Блокування всіх записів.
Microsoft Access блокує всі записи форми або об'єкта в режимі таблиці, тому інші користувачі не можуть змінити або заблокувати записи. Цей параметр накладає жорсткі обмеження і явно знижує продуктивність.


Щоб встановити параметри блокування записів необхідно:

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

2. Розкрити вкладку Додатково, розділ Додатково.

У групі Режим відкриття за замовчуванням можна вибрати режим Загальний доступ або режим Монопольний доступ - відкриття існуючої бази даних для монопольного використання одним користувачем.

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

Існує можливість вибору одного з трьох рівнів блокування:

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

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

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

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

Встановлені параметри почне діяти, коли база даних буде відкрита заново за допомогою команди Файл, Відкрити.

Якщо потрібна блокування на рівні записів при відкритті БД, то потрібно встановити прапорець Відкриття баз даних з іспользованіемблокіровкі на рівні записів. Якщо необхідна блокування за замовчуванням на рівні сторінок, то цей прапорець потрібно скинути.

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

Контрольні питання і вправи

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

Схожі статті