Система параллельного доступа к базе данных, расположенной на одном компьютере, нескольких пользователей называется системой распределенной обработки данных.
Распределенная база данных
В рамках этого режима отдельные части базы данных распределяются между различными компьютерами. При этом доступ к данным на любом компьютере поддерживается всеми клиентами через телекоммуникационную вычислительную сеть (рис. 10):
Пользователи Пользователи
Клиенты Клиенты
Сервер Сервер
База данных (часть 1) База данных (часть 2)
Пользователь
Клиенты
Сервер
База данных (часть 3)
Рис. 10. Распределенная база данных [ 2 ]
В каждом узле системы функционируют собственные СУБД и программное обеспечение. Следовательно, распределенную СУБД можно интерпретировать как способ организации совместной работы отдельных локальных СУБД, расположенных в различных узлах. При этом СУБД каждого узла должна иметь средства, обеспечивающие пользователям и приложениям возможность работы со всей базой данных.
Классифицируют гомогенные и гетерогенные распределенные базы данных [ 12 ]. В гомогенных распределенных базах данных в узлах системы используются СУБД одного типа, в гетерогенных – различных типов.
Рационально сохранять в каждом узле системы часть базы данных, логически связанную с этим узлом. Например, база данных, созданная для крупного производственного объединения, может состоять из фрагментов, каждый из которых содержит информацию о работе отдельного подразделения, цеха и т. д.
При такой организации работ увеличивается производительность обработки информации, так как сведения, необходимые для обеспечения деятельности подразделения или филиала предприятия, извлекаемые из базы данных наиболее часто, хранятся в связанном с ним узле системы. Это позволяет экономить ресурсы, поскольку обращение за данными к удаленным узлам происходит значительно реже. Ликвидируется зависимость от центрального узла – при сбое в отдельном узле системы целостность большей части базы данных сохраняется.
При работе с распределенной базой данных каждый компьютер является клиентом для одних компьютеров и сервером для других. Клиент может получить доступ к любому количеству серверов. Этот доступ может быть одновременным к нескольким серверам или реализовываться последовательно от сервера к серверу. Оптимальной является такая организация работы, когда от выполняемого приложения скрыты механизмы функционирования системы и создается впечатление, что обработка данных осуществляется одной СУБД, работающей на одном компьютере. Пользователи и приложения должны получать доступ к необходимым им данным, не имея информации о месте расположения этих данных.
Система распределения базы данных по нескольким компьютерам, расположенным в сети, с обеспечением возможности параллельного доступа к ней нескольких пользователей, называется системой распределенных баз данных.
При использовании в работе архитектуры «клиент-сервер» часто необходимо решать проблему унифицированного доступа к данным, созданным различными СУБД. Эта проблема решается с помощью стандартного интерфейса ODBC (Open Database Connectivity).
На компьютере клиенте должна быть установлена операционная система с интерфейсом ODBC. СУБД или приложение, обращающиеся к данным, созданным в другой среде, получают к ним доступ с помощью вызова на языке SQL стандартных функций интерфейса ODBC. При этом подключается необходимый драйвер, соответствующий формату данных СУБД [ 15 ].
4.3. Модели «клиент-сервер»
Технологии работы с базами данных предусматривают выполнение следующих основных функций:
1. Ввод и отображение данных.
2. Решение прикладных задач.
3. Управление информационными ресурсами (реализуется СУБД).
В зависимости от распределения перечисленных функций между клиентом и сервером выделяют несколько различных моделей «клиент-сервер».
Модель удаленного управления данными (файлового сервера File Server, FS)
В этой модели все основные функции, включая управление информационными ресурсами, выполняются клиентом, сервер обеспечивает только доступ к файлам базы данных (рис. 11):
Клиент Сервер База данных
| |||
|
Блоки данных
Рис. 11. Модель файлового сервера
В ситуациях, когда приложению необходимы данные для решения выполняемой им задачи, оно обращается с запросом к системе управления базами данных. СУБД переводит поступивший запрос в файловые команды. Система управления файлами в соответствии с этими командами извлекает из базы данных блоки информации и передает их для обработки клиенту. Если в полученном блоке данных нет нужных приложению сведений, рассмотренная процедура повторяется до тех пор, пока проблема не будет решена.
Модель файлового сервера может быть реализована с помощью сетевой (предназначенной для работы в локальной вычислительной сети, ЛВС) или несетевой СУБД.
Когда компьютер не подключен к сети, процесс обработки базы данных не отличается от обычного режима работы на автономном компьютере. При работе в ЛВС с несетевой СУБД, клиенту (в данной ситуации рабочей станции) с сервера передаются один или несколько файлов базы данных для их последующей обработки. По окончании работы файлы базы данных возвращаются на сервер для согласования хранящейся в них информации. Очевидно, что при совместной работе с базой данных нескольких пользователей возможно нарушение целостности данных [ 15 ].
При использовании сетевых СУБД непосредственно их средствами осуществляется контроль над непротиворечивостью изменений в базе данных. Это достигается применением механизма блокировок, ограничивающего возможности доступа пользователей к объектам базы данных (см. п. 4.4).
Основной недостаток модели файлового сервера заключается в большом объеме данных, передаваемых по телекоммуникационной вычислительной сети. При этом доля информации, необходимой для работы приложения, в этом объеме может быть весьма незначительной.
Несмотря на отмеченные недостатки, модель файлового сервера положена в основу архитектуры большинства настольных СУБД: MS Access, Paradox, FoxPro и т. д.
Модель удаленного доступа к данным (Remote Data Access, RDA)
В этой модели функции СУБД и выборки данных реализуются сервером, клиент выполняет операции ввода и отображения данных и решает прикладные задачи (рис. 12):
Клиент Сервер База данных
| |||
|
Результаты запросов
Рис. 12. Модель удаленного доступа
В процессе работы клиент обращается к серверу с запросами на языке SQL (Structured Query Language – язык структурированных запросов). Ответы на эти запросы представляют собой не блоки данных большого объема, часто включающие излишнюю информацию, а конкретные данные, необходимые приложению для решения прикладной задачи.
В модели удаленного доступа к данным объемы информации, передаваемой по сети, существенно меньше, чем в модели файлового сервера. Тем не менее они могут оставаться довольно значительными. Другими недостатками рассматриваемой модели являются сложность разработки, модернизации и обслуживания системы, а также относительная пассивность сервера [ 4 ].
Модель сервера баз данных (DataBase Server, DBS)
В этой модели, в отличие от модели удаленного доступа к данным, клиент выполняет только функции ввода и отображения данных, прикладные функции реализуются сервером с помощью хранимых процедур (см. рис. 13):
Клиент Сервер База данных
|
|
Результаты
выполнения
процедур
Рис. 13. Модель сервера баз данных
Хранимые процедуры представляют собой программы, которые хранятся в базе данных (обычно в ее словаре) и управляются СУБД. Одна процедура может быть востребована несколькими клиентами.
В процессе работы клиент обращается к серверу, вызывая необходимую процедуру. Сервер выполняет процедуру и фиксирует все возникшие при этом изменения в базе данных, а также возвращает клиенту полученные результаты. Такая технология существенно уменьшает объем информации, передаваемой между клиентом и сервером.
В рассматриваемой модели сервер является активным, через механизм триггеров (действий, выполняющихся автоматически при возникновении определенных событий или ситуаций в БД) он может самостоятельно инициировать обработку информации в базе данных [ 4 ].
Модель сервера баз данных применяется в СУБД MS SQL Server, Oracle, Informix, Ingress и т. д.
Основными недостатками данной модели являются большая загрузка сервера и зависимость хранимых процедур от СУБД, для которой они разработаны.
Модель сервера приложений (Application Server, AS)
Эта модель позволяет уменьшить нагрузку на сервер. В отличие от рассмотренных двухуровневых моделей она является трехуровневой (рис. 14):