А.3.4.3.2. Распределенные базы данных

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

Распределенные базы данных повышают отказоустойчивость всей системы, обеспечивают более оперативное обновление данных, сокращают затраты и повышают гибкость (Nerreter. Zur funktionalen Architektur von verteilten Dantenbanken. 1983, с. 2; Jablonski. Datenverwaltung in verteilten Systemen. 1990, с. 5). Недостаток, однако, заключается в том, что для их координации требуются значительные усилия.

Дейт объединил свойства распределенных СУБД в 12 правил, сформулировав фундаментальный принцип распределенных баз данных в виде правила 0 (Date. Distributed Database Systems. 1987).

Правило 0. Основополагающий принцип

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

Правило 1. Локальная автономия

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

Правило 2. Локальные компоненты не зависят от центрального компонента

Это означает, что каждый локальный участок имеет равные права. Если бы узел был подчинен централизованной системе, это негативно сказывалось бы на всей системе в случае аварии.

Правило 3. Безостановочная работа

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

Правило 4. Локальная прозрачность

Пользователям необязательно знать, где хранятся данные.

Правило 5. Прозрачность фрагментации

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

Правило 6. Прозрачность репликации

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

Правило 7. Распределенная обработка операций баз данных

Чтобы обеспечить возможность распределенной обработки запросов, можно внедрить оптимизаторы.

Правило 8. Управление

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

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

Правило 9. Аппаратная прозрачность

Система управления базами данных (СУБД) должна поддерживать различные аппаратные системы.

Правило 10. Прозрачность операционной системы

СУБД должна поддерживать различные операционные системы.

Правило 11. Прозрачность сети

СУБД должна поддерживать различные сетевые системы.

Правило 12. Прозрачность баз данных

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

На рис. 144 показана информационная модель, построенная в соответствии с этими принципами, применительно к понятиям, взятым из спецификации проекта на уровне организационной модели (представлена топологией сети) и модели данных (представлена реляционной схемой) (Jablonski. Datenverwaltung in verteilten Systemen. 1990, с. 198).

Рис. 144. Распределенные базы данных

Фрагментация означает, что отношения можно разбивать по горизонтали или по вертикали с передачей каждому фрагменту ключа базисного отношения. Фрагменты могут частично накладываться друг на друга (см. рис. 145). Такие фрагменты представлены на рис. 144 классом СЕГМЕНТ, при этом каждый сегмент однозначно связан с ОТНОШЕНИЕМ. Сегмент данных, привязанный к определенному узлу или системе управления базами данных, называется РАЗДЕЛОМ (Jablonski. Datenverwaltung in verteilten Systemen. 1990, с. 193).

Рис. 145. Сегментация отношения

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: