Архитектура бд схема распределенной базы данных

Архитектура бд схема распределенной базы данных

9 РАСПРЕДЕЛЕННЫЕ БАЗЫ ДАННЫХ

9.1 Основные определения

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

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

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

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

Рисунок 9.1 Централизованная база данных в компьютерной сети

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

В зависимости от типа программного обеспечения различают два типа РСУБД:

Рисунок 9.2 — Распределенная база данных

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

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

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

9.2 Свойства распределенных баз данных

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

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

Независимость узлов (no reliance on central site) Все узлы равноправные и независимые, а расположенные на них БД являются равноправными поставщиками данных в общее пространство данных. База данных на каждом из узлов включает полный собственный словарь данных и полностью защищенная от несанкционированного доступа.

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

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

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

Прозрачное тиражирование (replication independence) Тиражирование данных — это асинхронный процесс перенесения изменений объектов исходной базы данных в базы, расположенные на других узлах распределенной системы

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

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

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

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

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

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

9.3 Логическая архитектура распределенных баз данных

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

Рисунок 9.3 Логическая архитектура распределенной СУБД

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

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

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

Локальные внутренние схемы это схемы хранения данных на конкретных узлах распределенной ПО. Они связаны с соответствующими локальными концептуальными схемами.

Архитектура программно-технического комплекса распределенных СУБД имеет три главные характеристики:

Рассмотрим эти характеристики детальнее.

Распределенность

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

Неоднородность

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

Автономность

Автономность характеризует, насколько самостоятельно компоненты СУБД могут выполнять свои функции. К вопросам автономности принадлежат:

 автономность проектных решений (насколько самостоятельно компоненты СУБД могут решать задачи, которые были спроектированы для них);

автономность решением коммуникационных проблем (насколько самостоятельно компоненты СУБД могут устанавливать связи с другими компонентами);

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

Заметим, что перечисленные характеристики имеют не только распределенные СУБД, но и все распределенные системы обработки данных.

9.4.2. Разновидности архитектуры

Основными разновидностями архитектуры программно-технических средств распределенной СУБД являются:

 архитектура с многими независимыми серверами;

 архитектура со взаимодействующими серверами;

 архитектура одноранговой сети.

Клиент-Сервернаяархитектура

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

Архитектура с многими независимыми серверами

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

Архитектура со взаимодействующими серверами

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

Архитектура одноранговой сети

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

9.5 Распределенное хранение данных

В распределенной СУБД данные распределяются за узлами сети. Существуют два основных механизма распределенного хранения данных:

Рассмотрим их реализацию в реляционной модели данных.

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

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

Фрагментация отношений.

Задача фрагментации отношений формулируется таким способом. Пусть заданное отношение R. Его нужно изобразить в виде совокупности отношений R1, . Rn так, чтобы эта совокупность отвечала критериям эффективности (по времени доступа, памятью, загруженностью компьютеров и т.п.).

Фрагментация является корректной, если она полная, не содержит сечений и может быть реконструированная. Объясним эти термины.

Декомпозиция отношения R на фрагменты R1, R2, … Rn является полной тогда и лишь тогда, когда каждый элемент данных с R принадлежит некоторому из отношений Ri. Декомпозиция отношения R на фрагменты R1, R2, … Rn может быть реконструированная, если существует такое реляционное выражение φ(R1, R2, … Rn), что R=φ(R1, R2, … Rn).

Декомпозиция отношения R на фрагменты R1, R2, … Rn не содержите сечений, если любой элемент данных с R содержится не более чем в одном фрагменте.

Есть три типа фрагментации отношений:

Рассмотрим каждый из этих разновидностей фрагментации.

Горизонтальная фрагментация состоит в распределении кортежей отношения за фрагментами. Формально горизонтальную фрагментацию можно определить таким способом. Пусть заданное отношение R и на нем определенный предикат Fi. Тогда горизонтальный фрагмент Rі отношения определяется так:

То есть горизонтальный фрагмент Rі – это множество кортежей R, которые удовлетворяют условие Fi.

Рассмотрим несколько примеров. Пусть задано отношение

ПРОЕКТ (Рном, Название, Тип, Стоимость).

Очевидно, что множество предикатов

порождает полную фрагментацию отношения ПРОЕКТ, которая не содержит сечений. Предикаты

порождают полную фрагментацию, которая содержит сечение.

порождают неполную фрагментацию, которая не содержит сечений.

Преимущества горизонтальной фрагментации:

 дает возможность параллельно обрабатывать фрагменты отношения;

 дает возможность разделять отношение так, чтобы кортежи располагались там, где они будут использоваться чаще всего.

Вертикальная фрагментация

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

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

Рассмотрим пример.Пусть задано отношения

СНАБЖЕНИЕ(#рном, Поставщик, Оборудование, Проект).

#Рном Поставщик Оборудование Проект
р1 иванов двигатель АН-24
р2 иванов двигатель ЯК -40
р3 иванов шасси АН-24
р4 петров двигатель АН-24
р5 петров електрооборудование ЯК -40
р6 петров електрооборудование АН-70

Преимущества вертикальной фрагментации:

 дает возможность разделять кортежи отношения так, чтобы их части располагались там, где они будут использоваться чаще всего;

 дает возможность проводить параллельную обработку отношений;

 наличие идентификатора кортежа дает возможность осуществлять эффективное соединение вертикальных фрагментов.

Смешанная фрагментация

Смешанная фрагментация предусматривает последовательное применение вертикальной и горизонтальной фрагментаций.

Распределение данных за узлами сети

После получения всех необходимых фрагментов отношений возникает проблема распределения этих фрагментов по узлам сети. Единых рекомендаций относительно того, как это делать, нет. Нужно найти оптимальное распределение фрагментов F по узлам сети S при условии, которое известное распределение приложений Q за узлами сети.

Определяя оптимальность, нужно учитывать разные параметры, в частности:

 стоимость передачи, хранение и обработки данных;

 ограничение (например, емкостные характеристики узлов сети).

Для того чтобы распределить фрагменты по узлам сети, необходима дополнительная информация, которая касается

 базы данных и размеров фрагментов;

 приложений (мест их расположения, частоты использования тех или других фрагментов для выбирания данных, частоты использования фрагментов для восстановления данных);

 узлов сети (стоимости хранения и обработки данных в узлах);

сети (стоимости и временных характеристик передачи данных между двумя узлами).

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

 доступность (в случае перебоя в работе узла, который содержит отношение R, его доступность на других узлах сохраняется);

 параллелизм (выполнение запросов к отношению R может быть распараллелено по всем репликам отношения);

 снижение стоимости передачи данных (отношение R доступно локально во всех узлах, где есть его реплики). Недостатки репликации:

 повышается стоимость хранения, создание и восстановление данных;

повышаются требования к ресурсам;

 усложняется поддержания целостности данных, например одновременное восстановление разных реплик одного и того же отношение

Механизмы репликации

Для реализации репликации используются три сервера: издатель, дистрибьютор и подписчик.

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

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

Подписчиком называется сервер, который получает копии данных, предоставленные видавцем. Механизмы изменения данных подписчиком отличаются от механизмов изменения данных видавцем.

Есть такие модели репликации:

 репликация моментальных снимков;

Репликация моментальных снимков является простейшей моделью репликации. Моментальный снимок это полная копия данных, избранных для репликации; она рассылается подписчикам.

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

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

Топология репликаций

Топология репликаций описывает характер взаимосвязей между участниками репликации:

 репликация «один-ко-многим» предусматривает наличие одного издателя и нескольких подписчиков;

 репликация «много-к-одному» имеет место, когда данные от нескольких издателей пересылаются одному подписчику;

 репликация «много-ко-многим» означает, что данные от нескольких издателей пересылаются нескольким подписчикам.

9.6 Обработка распределенных транзакций

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

Транзакции должны удовлетворять требования ACID (Atomicity, Consistency, Isolation, Durability – атомарность, непротиворечивость, изолированность, долговечность), что гарантируют правильность и надежность работы системы.

Атомарность предусматривает такое:

 выполняются все операции транзакции или ни одна из них не выполняется;

 если выполнение транзакции было прервано, то все сделанные транзакцией изменения должны быть упраздненные

Действия, направленные на обеспечение атомарности транзакции во время ее аварийного завершения в связи с ошибками введения/вывода, перегрузками системы или блокированиями, называются восстановлением транзакции.

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

Непротиворечивость

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

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

 Уровень 0. Запрет «загрязнения» данных. На этом уровне требуется, чтобы менять данные могла лишь одна транзакция. Если другой транзакции необходимо изменить эти же данные, то она должна ожидать завершение первой транзакции.

Уровень 1. Запрет некорректного считывания. Если определенная транзакция начала менять данные, то никакая другая транзакция не сможет считать эти данные до тех пор, пока первая не завершится.

 Уровень 2. Запрет неповторяемого считывания. Если определенная транзакция считывает данные, то никакая другая транзакция не сможет их изменить. Итак, во время повторного считывания данные будут находиться в начальном состоянии.

 Уровень 3. Запрет «фантомов». Если транзакция обращается к данным, то никакая другая транзакция не сможет добавить или удалить строки, которые могут быть считаны во время выполнения транзакции. Реализация этого уровня блокирования выполняется блокированием диапазона ключей. Это блокирование накладывается не на конкретные строки таблицы, а на строки, которые отвечают определенному логическому условию.

Изолированность

Свойство изолированности означает, что на работу транзакции не должны влиять другие транзакции. Транзакция «видит» данные в том состоянии, в котором они находились к началу работы другой транзакции, или в том состоянии, в котором они находятся после ее завершения. Одна транзакция не может просматривать промежуточные состояния данных, которые используются другими транзакциями. Если транзакция считывает несколько раз те же самые данные, то она должна получать их каждый раз в том состоянии, в котором они были во время первого считывания. Еще одним аспектом изолированности является невозможность работы с неполными результатами – незавершенная транзакция не может передавать свои результаты другим транзакциям к подтверждению своего успешного завершения.

Долговечность

После того, как было подтверждено успешное завершение работы транзакции (Commit), система должна гарантировать, что ее результаты не будут утрачены, несмотря на возможные перебои. Это и называется долговечностью. Для обеспечения долговечности применяются механизмы восстановления базы данных.

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

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

К основным характеристикам РСУБД нужно отнести такие, как: распределенность, неоднородность и автономность. Они определяют взаимодействие компьютеров, средства связи и самостоятельность каждого отдельного узла.

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

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

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

Вопросы для самоконтроля

1. Что такое однородные и неоднородные распределенные базы данных?

2. Отвечает ли логическая архитектура распределенных баз данных архитектуре ANSI/ SPARC?

3. Что такое розподіленість, неоднородность и автономность баз данных?

4. Какие механизмы распределенного хранения данных вы знаете?

5. Какие разновидности фрагментации баз данных вы знаете?

6. Что такое репликация? Которые существуют механизмы и модели репликации?

7. Что такое правила ACID выполнение транзакций?

Источник

Оцените статью
REMNABOR
Adblock
detector