Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-113_SO.doc
Скачиваний:
24
Добавлен:
01.03.2025
Размер:
2 Мб
Скачать
☆

27. Серверы баз данных

Сервер баз данных (database server) обслуживает базы данных и обеспечивает целостность и сохранность данных при их хранении, а также операциях ввода-вывода при доступе клиента к информации. Сервер базы данных - один из ключевых компонентов в архитектуре вычислительной сети типа "клиент-сервер", в которой пользовательский интерфейс располагаются на менее мощной машине-клиенте, а функции Систему Управления Базами Данных (СУБД) размещены на мощном сервере. Сервер баз данных работает под управлением серверной операционной системы* и получает клиентские запросы на языке SQL.

Наряду с RDA-моделью все большую популярность приобретает перспективная DBS-модель (Рис. 6).Она реализована в некоторых реляционных СУБД (Informix, Ingres, Sybase, Oracle). Ее основу составляет механизм хранимых процедур — средство программирования SQL-сервера. Процедуры хранятся в словаре базы данных, разделяются между несколькими клиентами и выполняются на том же компьютере, где функционирует SQL-сервер. Язык, на котором разрабатываются хранимые процедуры, представляет собой процедурное расширение языка запросов SQL и уникален для каждой конкретной СУБД.

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

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

28. Распределение бд между компонентами сети.

Распределение взаимосвязанных баз данных по компьютерной сети – это и называется Распределенная БД.

По  Дейту: РБД состоит из набора узлов, связанных коммуникационной сетью, в которой:

а)каждый узел – это полноценная СУБД сама по себе;

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

Каждый  узел сам по себе является системой базы данных. Любой пользователь может  выполнить операции над данными  на своем локальном узле точно  так же, как если бы этот узел вовсе  не входил в распределенную систему. Распределенную систему баз данных можно рассматривать как партнерство между отдельными локальными СУБД на отдельных локальных узлах.

Фундаментальный принцип создания распределенных баз  данных («правило 0»): Для пользователя распределенная система должна выглядеть так же, как нераспределенная система.

Фундаментальный принцип имеет следствием определенные дополнительные правила или цели. Таких целей всего двенадцать:

1.Локальная  независимость. Узлы в распределенной  системе должны быть независимы, или автономны. Локальная независимость означает, что все операции на узле контролируются этим узлом.

2.Отсутствие  опоры на центральный узел. Локальная  независимость предполагает, что  все узлы в распределенной  системе должны рассматриваться как равные. Поэтому не должно быть никаких обращений к «центральному» или «главному» узлу с целью получения некоторого централизованного сервиса.

3.Непрерывное  функционирование. Распределенные  системы должны предоставлять  более высокую степень надежности и доступности.

4.Независимость  от расположения. Пользователи не  должны знать, где именно данные  хранятся физически и должны поступать так, как если бы все данные хранились на их собственном локальном узле.

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

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

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

8.Управление  распределенными транзакциями. Существует 2 главных аспекта управления  транзакциями: управление восстановлением и управление параллельностью обработки. Что касается управления восстановлением, то чтобы обеспечить атомарность транзакции в распределенной среде, система должна гарантировать, что все множество относящихся к данной транзакции агентов (агент – процесс, который выполняется для данной транзакции на отдельном узле) или зафиксировало свои результаты, или выполнило откат. Что касается управления параллельностью, то оно в большинстве распределенных систем базируется на механизме блокирования, точно так, как и в нераспределенных системах.

9.Аппаратная  независимость. Желательно иметь  возможность запускать одну и  ту же СУБД на различных аппаратных платформах и, более того, добиться, чтобы различные машины участвовали в работе распределенной системы как равноправные партнеры.

10.Независимость  от операционной системы. Возможность  функционирования СУБД под различными операционными системами.

11.Независимотсть от сети. Возможность поддерживать много принципиально различных узлов, отличающихся оборудованием и операционными системами, а также ряд типов различных коммуникационных сетей.

12.Независиомть  от типа СУБД. Необходимо, чтобы  экземпляры СУБД на различных узлах все вместе поддерживали один и тот же интерфейс, и совсем необязательно, чтобы это были копии одной и той же версии СУБД.