РАСПРЕДЕЛЕНИЕ ДАННЫХ ПО СЕТИ.

Основная задача при проектировании распределенной БД - распределение д. по сети.

Способы решения этой задачи:

Распределенная обработка д. требует решения вопросов:

Рассмотрим архитектуру однородных распределенных БД.

Для описания информационной структуры всей сети вводится интерфейс концептуальной модели д. - глобальная сетевая КСх (метамодель д.).

Интерфейс внешней модели - внешняя схема сети для удобства работы пользователя (написание запроса в рамках сети).

В каждом узле сети имеется локальная общая схема (одна для каждого узла) содержащая как описание локальных д., хранимых в этом узле, так и описание д., хранимых в других узлах, но используемых ПП и пользователями в данном узле.

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

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

Поддержание копий данных в нескольких узлах сети

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

 

Литература и источники

1. Ревунков Г.И., Самохвалов Э.Н., Чистов В.В. Базы и банки данных и знаний. - М., Высш. шк., 1992, с. 367.

Hosted by uCoz