Добавил:
Рад, если кому-то помог Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции ПрБД, 2 курс 3 семестр (для ИВТ и т.п.) / Проектирование БД_уч пособие v02

.pdf
Скачиваний:
0
Добавлен:
28.11.2025
Размер:
1.79 Mб
Скачать

14 Распределенные БД

14.1 Требования к распределенным БД

Первоначальные ИС, основанные на БД, имели строго централизованную архитектуру. Данные были сосредоточены физически и логически на одном компьютере. Централизованная организация БД позволяет облегчить обеспечение ее безопасности, целостности и непротиворечивости данных.

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

большой объем обмена данными (высокий трафик);

снижение надежности обмена данными;

снижение общей производительности;

рост затрат на разработку БД.

Возможным решением перечисленных проблем является организация децентрализованного хранения данных. При децентрализации достигается:

параллельная обработка данных и распределение нагрузки;

повышение эффективности обработки данных при выполнении удаленных запросов;

уменьшение затрат на обработку данных;

упрощение процедуры управления ИС.

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

РАСПРЕДЕЛЕННАЯ это набор отношений, хранящихся в разных узлах компьютерной сети и логически связанных таким об-

БАЗА ДАННЫХ

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

231

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

Впервые задача об исследовании основ и принципов создания и функционирования распределенных информационных систем была поставлена К. Дейтом.

В основе распределенных ИС лежат две основные идеи:

работа множества пользователей с общей БД;

объединение распределенных данных на логическом и физическом уровнях в общей БД.

Рассмотрим подробный перечень принципов распределенной БД, сформулированных К. Дейтом в 1987 г.

1)Локальная автономия. Это качество означает, что управление данными на каждом из узлов распределенной системы выполняется локально. БД, расположенная на одном из узлов, является неотъемлемым компонентом распределенной системы. Будучи фрагментом общего пространства данных, она в то же время функционирует как полноценная локальная БД, а управление ею осуществляется локально, независимо от других узлов системы.

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

она включает полный собственный словарь данных и полностью защищена от несанкционированного доступа.

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

232

4)Прозрачность расположения. Пользователь, обращающийся

кБД, ничего не должен знать о реальном, физическом размещении данных в узлах информационной системы.

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

6)Прозрачное тиражирование. Тиражирование данных – это асинхронный процесс переноса изменений объектов исходной базы данных в базы, расположенные на других узлах распределенной системы.

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

8)Обработка распределенных транзакций. Возможность выполнения операций обновления распределенной базы данных, не нарушающих целостность и согласованность данных. Эта цель достигается применением двухфазного протокола фиксации транзакций.

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

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

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

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

233

14.2 Способы распределения БД

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

Централизованная организация данных является самой простой для реализации. На одном сервере находится единственная копия базы данных. Все операции с базой данных обеспечиваются этим сервером. Доступ к данным выполняется с помощью удалённого запроса или удалённой транзакции (Рис. 64).

Достоинством такого способа является лёгкая поддержка базы данных в актуальном состоянии, а недостатком – то, что размер базы ограничен размером внешней памяти: все запросы направляются к единственному серверу с соответствующими затратами на стоимость связи и временную задержку. Отсюда ограничение на параллельную обработку. База может быть недоступной для удалённых пользователей при появлении ошибок связи и полностью выходит из строя при отказе центрального сервера.

 

Единая БД

 

 

Клиент А

 

Клиент В

Клиент C

Клиент D

Рис. 64. Централизованная организация данных

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

Распределение данных на основе разбиения. База данных размещается на нескольких серверах. Существование копий отдельных частей недопустимо. Достоинства этого метода: большинство запросов удовлетво-

234

ряются локальными базами, что сокращает время ответа; увеличивается доступность данных и надёжность их хранения; стоимость запросов на выборку и обновление снижается по сравнению с централизованным распределением; система останется частично работоспособной, если выйдет из строя один сервер. Недостатки: часть удалённых запросов или транзакций может потребовать доступ ко всем серверам, что увеличивает время ожидания и цену обслуживания; необходимо иметь сведения о размещении данных в различных БД. Однако доступность и надёжность увеличиваются. Такие базы данных наиболее подходят к случаю совместного использования локальных и глобальных компьютерных сетей.

 

БД А

 

 

Клиент А

 

Клиент В

Клиент C

Клиент D

БД B

БД C

БД D

Рис. 65. Децентрализованная организация данных способом распределения

Распределение данных на основе дублирования (Рис. 66)заключается в том, что в каждом сервере сети размещается полная база данных. Это обеспечивает наибольшую надёжность хранения данных. Недостатки: повышенные требования к объему внешней памяти; усложнение корректировки баз, так как требуется синхронизация в целях согласования копий. Достоинство: все запросы выполняются локально, что обеспечивает быстрый доступ. Данный способ используется, когда фактор надёжности является критическим, база небольшая, интенсивность обновления невелика.

235

 

БД ABCD

 

 

Клиент А

 

Клиент В

Клиент C

Клиент D

БД ABCD

БД ABCD

БД ABCD

Рис. 66. Децентрализованная организация данных способом дублирования

Смешанная организация хранения данных объединяет два способа распределения: разбиение и дублирование (Рис. 67), приобретая при этом и преимущества и недостатки обоих способов.

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

236

 

БД AC

 

 

Клиент А

 

Клиент В

Клиент C

Клиент D

БД AB

БД CD

БД BD

Рис. 67. Смешанная организация данных

14.3 Методы построения распределенных баз данных «сверху вниз» и «снизу вверх»

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

Однако при проектировании РаБД методом «сверху вниз» предполагается, что ее объекты не будут сосредоточены в одном месте, а распределятся по нескольким вычислительным системам (Рис. 68).

237

Концептуальная модель

Логическая модель

Реализационная модель

Фрагментированая реализационная модель

Рис. 68. Построение распределенной базы данных методом «сверху-вниз»

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

На Рис. 69 показана горизонтальная фрагментация, когда в таблице делаются горизонтальные «срезы» в соответствии со значением, скажем, какого-либо столбца таблицы. Строки данных о сотрудниках могут разбиваться на подмножества, соответствующие филиалам. Данные о продажах фрагментируются по магазинам, где эти продажи производились.

238

 

 

Служащие

 

 

Информация о продажах

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Служащие в

 

Служащие в

 

 

 

Москве

Служащие в

Самаре

Продажи в ПФО

 

Продажи на

 

Питере

 

 

Урале

 

 

 

 

Рис. 69. Горизонтальная фрагментация

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

Служащие

 

 

 

 

 

 

 

 

 

 

Персональная

 

 

 

Информация о

информация

 

Послужной

 

рейтингах

 

 

список

 

 

Рис. 70. Вертикальная фрагментация

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

Тиражирование (или репликация) означает создание дубликатов данных. Репликаты – это множество различных физических копий некоторого объекта базы данных (обычно таблицы), для которых в соответствии с определенными в базе данных правилами поддерживается синхронизация (идентичность) с некоторой «главной» копией.

Теоретически значения всех данных в тиражированных объектах должны автоматически и незамедлительно синхронизироваться друг с другом. На практике это правило обычно несколько ослабляется. В некоторых системах копии используются исключительно в режиме чтения и обнов-

239

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

Транзакция обновления

Дубликат 1

Дубликат 2

Дубликат 3

Одновременное обновление (с управлением параллелизмом)

Транзакция обновления

Распространение обновлений

Дубликат 1

Дубликат 3

Дубликат 2

 

Распространенные обновления

 

Транзакция обновления

 

Распространение обновлений

 

Дубликат 1

Дубликат 3

 

Транзакция

Дубликат 2

чтения

 

Транзакция

 

чтения

Запланированная синхронизация дубликатов только для чтения

Рис. 71. Модели тиражирования данных

Идеология построения распределенных баз данных по принципу «сверху вниз» применима только к однородным РаБД, для которых вначале определяется глобальная схема, а затем производится распределение объектов базы данных. Такой подход оправдан при создании новых приложений, но гораздо вероятнее, что вашей организации придется решать

240

Соседние файлы в папке Лекции ПрБД, 2 курс 3 семестр (для ИВТ и т.п.)