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

Распределенная база данных

В рамках этого режима отдельные части базы данных распределяются между различными компьютерами. При этом доступ к данным на любом компьютере поддерживается всеми клиентами через телекоммуникационную вычислительную сеть (рис. 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):

Клиент Сервер База данных

       
 
Ввод и отображение данных Решение прикладных задач
   
 

СУБД
SQL запросы

           
   
 
   
 
 

Результаты запросов

Рис. 12. Модель удаленного доступа

В процессе работы клиент обращается к серверу с запросами на языке SQL (Structured Query Language – язык структурированных запросов). Ответы на эти запросы представляют собой не блоки данных большого объема, часто включающие излишнюю информацию, а конкретные данные, необходимые приложению для решения прикладной задачи.

В модели удаленного доступа к данным объемы информации, передаваемой по сети, существенно меньше, чем в модели файлового сервера. Тем не менее они могут оставаться довольно значительными. Другими недостатками рассматриваемой модели являются сложность разработки, модернизации и обслуживания системы, а также относительная пассивность сервера [ 4 ].

Модель сервера баз данных (DataBase Server, DBS)

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

Клиент Сервер База данных

Реализация хранимых процедур СУБД
Вызов

Ввод и отображение данных
хранимых процедур

           
 
 
   
 
   

Результаты

выполнения

процедур

Рис. 13. Модель сервера баз данных

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

В процессе работы клиент обращается к серверу, вызывая необходимую процедуру. Сервер выполняет процедуру и фиксирует все возникшие при этом изменения в базе данных, а также возвращает клиенту полученные результаты. Такая технология существенно уменьшает объем информации, передаваемой между клиентом и сервером.

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

Модель сервера баз данных применяется в СУБД MS SQL Server, Oracle, Informix, Ingress и т. д.

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

Модель сервера приложений (Application Server, AS)

Эта модель позволяет уменьшить нагрузку на сервер. В отличие от рассмотренных двухуровневых моделей она является трехуровневой (рис. 14):

Наши рекомендации