BC/NW 2021№ 1
(37):6.3
МНОГОПОЛЬЗОВАТЕЛЬСКИЙ
РЕЖИМ РАБОТЫ КЛИЕНТ-СЕРВЕРНОГО ПРИЛОЖЕНИЯ С БАЗОЙ ДАННЫХ С ИСПОЛЬЗОВАНИЕМ
МЕХАНИЗМА СООБЩЕНИЙ
Гаврилов А. А.,
Блаженова С. Д., Борисова С. В., Зейн А. Н.
При
взаимодействии с любой базой данных (БД) через клиент-серверное приложение
(далее просто приложение) возникает вопрос работы нескольких пользователей с
одними и теми же данными. Например, если один пользователь хочет удалить
данные, а другой эти же данные извлекает для обработки, то возникает коллизия.
Для обеспечения многопользовательского доступа к БД можно использовать механизм
транзакций и блокировок [1], однако при работе с разными СУБД эти механизмы
могут отличаться, поэтому данный метод не всегда удобен, либо избыточен для
поставленных задач. Поэтому был придуман иной вариант решения данной проблемы,
который сводится к созданию лог-таблицы, процедур поиска блокирующих сообщений
и отправки в БД сообщений о работе с определенными данными. Лог-таблица состоит
из трех столбцов: «Логин пользователя», «Сообщение» и «Дата». «Логин
пользователя» отвечает за идентификацию пользователя. «Сообщение» содержит
информацию о действиях пользователя с определенными данными, например,
«Update_exp_1» — обновление данных, относящихся к эксперименту под номером 1,
а «Use_exp_1» — использование этих же данных с какой-либо иной целью,
например, обработка. А «Дата» регистрирует время начала работы с данными.
Приведенные в примере сообщения блокируют друг друга и сами себя, поскольку
если один пользователь редактирует данные эксперимента № 1, то другие
пользователи не могут редактировать или использовать их. При окончании работы
с этими данными запись из лог-таблицы удаляется и данные становятся доступны
другим пользователям. Таким образом, за механизм блокировок отвечает процедура
поиска блокирующих сообщений в лог-таблице, а за общую целостность данных
отвечает приложение, в котором программист определяет точки начала и конца
работы с теми или иными данными для проверки и осуществления блокировки или
отправки/удаления сообщений в лог-таблице.
Литература
1. Новиков Б. А.
Основы технологий баз данных. — Москва: ДМК Пресс, 2019. — 240 с.