Блокировка файлов баз данных

Многопользовательская программа ведения базы данных используется для хранения финансовой информации. Иногда при вводе новых данных пользователь получает сообщение «в доступе отказано» или «файл заблокирован». Мы покупали эту программу, потому что она может обслуживать несколько пользователей. В чем дело?

Решение

Дело в блокировке файла базы данных. Подождите несколько секунд, а затем введите данные заново. Во всех базах данных предусмотрен механизм блокировки, предотвращающий одновременный ввод разных данных в одном месте. Уровень, на котором работает механизм блокировки, зависит от программной реализации базы данных. Общая иерархия базы данных (в чрезвычайно упрощенном виде) выглядит так:

Файл — весь файл базы данных;

Запись — конкретная запись (например, информация о банковском счете или фирме-поставщике);

Поле — конкретное поле (например, номер накладной).

Как правило, чем надежнее (и дороже) база данных, тем ниже уровень блокировки. Блокировка всего файла используется только в тех базах данных, которые не поддерживают параллельный доступ со стороны нескольких пользователей.

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

Сравните с другим способом — блокировкой на уровне полей. В то время, пока один пользователь выписывает чек для фирмы-поставщика по номеру счета, это поле становится недоступным для других пользователей до окончания работы с ним. Например, если вы и кто-то другой одновременно вводите данные в поле Номер чека, предпочтение отдается первому пользователю, сохраняющему данные (обычно нажатием клавиши Tab или щелчком на следующем поле). Второй пользователь остается заблокированным в течение нескольких секунд, пока поле Номер чека не освободится.