Потребность в данных коллективного пользования в последнее время все более возрастает. Это послужило причиной все усиливающегося внимания к различным системам распределенной обработки данных.
Существует несколько понятий в этой области, которые необходимо определить более точно. Вначале выделим эти понятия:
распределенная обработка данных;
базы данных с сетевым доступом;
архитектура «клиент-сервер»;
распределенные базы данных.
Под распределенной обработкой данных понимают обработку приложений несколькими территориально распределенными машинами. При этом в приложениях, связанных с обработкой базы данных, собственно управление базой данных может выполняться централизованно.
Системы баз данных, построенные с помощью сетевых версий, иногда неправомерно называют распределенными базами данных, в то время как фактически имеют дело лишь с распределенным (сетевым) доступом к централизованной базе данных. Такие системы создаются на основе оборудования и программного обеспечения различных локальных вычислительных сетей; большинство СУБД работает в сетях IBM PC Network (IBM Corp.), Novell Network (Novell Inc.).
|
|
Архитектура систем баз данных с сетевым доступом предполагает выделение одной из машин сети в качестве центральной. Эта машина обеспечивает функционирование той части сетевой версии СУБД, которая осуществляет управление данными в терминах базы данных и называется сервером файлов (File Server). Предполагается, что центральная машина обладает жестким диском достаточно большой емкости, на котором хранится совместно используемая централизованная база данных. Все другие машины сети выполняют функции рабочих станций (Workstation), с помощью которых поддерживается доступ пользователей системы к централизованной базе данных. В соответствии с пользовательскими запросами файлы базы данных передаются на рабочие станции, где в основном и производится их обработка. Рабочая станция должна иметь достаточно ресурсов для обеспечения приемлемого уровня реактивности при обработке пользовательских запросов.
Поскольку СУБД с сетевым доступом построены из расчета, что вся обработка данных ведется на рабочей станции, то рассматриваемый вариант архитектуры системы баз данных характеризуется большим сетевым трафиком, что отрицательно сказывается на производительности и надежности системы.
Сетевые версии отличаются от локальных версий тем, что они рассчитаны на мультипользовательскую обстановку. Это предполагает обладание некоторыми специальными механизмами, позволяющими многим пользователям совместно обращаться к общим ресурсам данных из централизованной базы данных. К числу таких механизмов относятся механизмы синхронизации транзакций, основанные на технике блокирования ресурсов и позволяющие производить обновление данных при параллельной работе различных пользователей, а также механизмы управления доступом, обеспечивающие конкретным пользователям операции над базой данных'в рамках тех полномочий, которые им предоставлены.
|
|
В сетевых версиях СУБД используются разнообразные протоколы блокирования ресурсов. Некоторые системы обеспечивают в определенных ситуациях автоматическое блокирование ресурсов, освобождая разработчика от необходимости заботиться об этом. В других системах имеются только средства явного блокирования.
Протокол, принятый, например, в СУБД R:BASE for DOS, допускает возможность блокирования ресурсов данных вплоть до уровня поля. Благодаря этому два пользователя могут одновременно обновлять одну и ту же строку таблицы, но разные ее поля. Выбор разработчиками такой мелкой единицы блокирования позволяет минимизировать интегральное время ожидания доступа к блокированному ресурсу при исполнении приложения. Представляют интерес «тонкие» средства блокирования ресурсов, при котором один пользователь блокирует строку для обновления, а другой — может тем не менее в это же время читать ее. СУБД позволяет пользователям иметь информацию о том, кто в данный момент блокирует запрашиваемые ими данные.
Сложные проблемы связаны в мультипользовательском режиме работы с базами данных с тупиковыми ситуациями (Deadlock). В технологии баз данных предусматривается специальная техника профилактики возникновения тупиковых ситуаций и отката (Roll-Back) транзакций при их возникновении.
В некоторых СУБД обеспечивается возможность для приложений направлять специальные сообщения о намерениях, связанных с блокированием ресурсов, в поддерживаемый для этих целей системой «почтовый ящик», а также получать информацию из такого «почтового ящика», об установленных в данный момент блокировках. Подобная информация позволяет каждому пользователю соблюдать «джентльменскую линию поведения» для того, чтобы исключить возможность возникновения тупиковых ситуаций.
В последнее время происходит существенная трансформация подходов к использованию баз данных в обстановке локальных сетей, направленная на повышение роли центральной машины сети, ранее используемой лишь для реализации сервера файлов. Это означает, что сервер файлов центральной машины обеспечивает обработку параллельных запросов на файлы, поступающие с рабочих станций, используя необходимую дисциплину блокирования ресурсов; рабочие станции должны при этом копировать с центральной машины нужные им файлы базы данных и выполнять их обработку.