Многопользовательские базы данных

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

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

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

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

Таким образом, неоптимально расходуются ресурсы клиентского компьютера и сети. В результате возрастает сетевой трафик и увеличиваются требования к аппаратным мощностям пользовательского компьютера. Это увеличивает объем передаваемой по сети данных и уже при подключении 10-15 пользователей и значительных размерах БД делает производительность системы недопустимо низкой.

Архитектура клиент-сервер построена следующим образом.

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

На каждом из клиентских компьютеров пользователи имеют возможность запустить программу-клиент. Используя предоставляемый приложением пользовательский интерфейс, пользователь инициирует обращение к СУБД, расположенной на сервере, на выборку/обновление информации. Для общения используется специальный язык запросов SQL, т.е. по сети от клиента к серверу передается лишь текст запроса.

Удаленный сервер принимает запрос и переадресует его SQL-серверу БД. SQL-сервер - специальная программа, управляющая удаленной базой данных. SQL-сервер обеспечивает интерпретацию запроса, его выполнение в базе данных, формирование результата выполнения запроса и выдачу его приложению-клиенту. При этом ресурсы клиентского компьютера не участвуют в физическом выполнении запроса; клиентский компьютер лишь отсылает запрос к серверной БД и получает результат, после чего интерпретирует его необходимым образом и представляет пользователю.

Так как клиентскому приложению посылается результат выполнения запроса, по сети "путешествуют" только те данные, которые необходимы клиенту. В итоге снижается нагрузка на сеть. Поскольку выполнение запроса происходит там же, где хранятся данные (на сервере), нет необходимости в пересылке больших пакетов данных. Кроме того, SQL- сервер, если это возможно, оптимизирует полученный запрос таким образом, чтобы он был выполнен в минимальное время с наименьшими расходами.

Поскольку большая часть нагрузки ложится на серверную часть, снижаются требования к аппаратным мощностям клиентских компьютеров.

В архитектуре клиент-сервер работают так называемые "промышленные" СУБД. Промышленными они называются из-за того, что именно СУБД этого класса могут обеспечить работу информационных систем масштаба среднего и крупного предприятия, организации, банка. К разряду промышленных СУБД принадлежат MS SQL Server, Oracle, Gupta, Informix, Sybase, DB2, InterBase и ряд других.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: