Технология распределенной БД (технология STAR)

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

1) каждый узел обладает собственной системой БД;

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

Пример 7.5 Пусть БД «Склад» расположена на узле «узел_1», а БД «Предприятие» на узле «узел_2». В первой содержится таблицы Деталь, а во второй Поставщик. Пусть БД «Номенклатура» должна включать таблицы Деталь и Поставщик, физически принадлежащие различным БД. Логически она будет рассматриваться как нераспределенная БД. Следующие операторы SQL устанавливают ссылки на таблицы локальных БД. Они включены в в описание распределенной БД и передаются серверу БД.

REGISTER TABLE Деталь AS LINK WITH NODE=узел_1, DATABASE=Склад;

REGISTER TABLE Поставщик AS LINK WITH NODE=узел_2, DATABASE=Предприятие;

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

Наибольшую сложность при организации работы распределенной БД вызывает решение следующих задач:

· управление именами в распределенной среде;

· оптимизация распределенных запросов;

· управления распределенными транзакциями.

Задачи рассмотрены выше в п. 7.2.1. Решение этих трех задач возложено на специальный компонент СУБД – сервер распределенных баз данных (Distributed Database Server). Возможны следующие варианты организации работы распределенной БД:

1) Если БД расположена на одном узле и прикладная программа выполняется там же, то не требуется ни коммуникационный сервер, ни сервер распределенных БД.

2) Когда же прикладная программа выполняется на локальном узле, БД находится на удаленном узле и там же выполняется сервер БД, то на удаленном узле необходим коммуникационный сервер, а на локальном – сервисная коммуникационная программа.

3) Если же распределенная БД состоит из таблиц локальных БД, которые находятся на одном узле, и там же функционирует сервер распределенной БД, и выполняется прикладная программа, то коммуникационный сервер не нужен, так как нет взаимодействия по сети.

4) Если же локальные БД расположены на нескольких узлах, то для доступа к распределенной БД необходим и сервер распределенной БД, и коммуникационный сервер

Главное требование технологии STAR - синхронное завершение транзакций одновременно на нескольких узлах распределенной системы, то есть синхронная фиксация изменений в DDB. Уязвимым местом этой технологии являются - жесткие требования к производительности и надежности каналов связи. Если база данных распределена по нескольким территориально удаленным узлам, объединенным медленными и ненадежными каналами связи, а число одновременно работающих пользователей составляет сотни и выше, то вероятность того, что распределенная транзакция будет зафиксирована в обозримом временном интервале, становится чрезвычайно малой. В таких условиях (характерных, кстати, для большинства отечественных организаций) обработка распределенных данных практически невозможна.