Обеспечение прозрачности в РСУБД

 

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

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

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

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

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

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

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

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

• утрата определенной части локальной автономии;

• появление проблем с производительностью (поскольку центральный сайт превращается в узкое место всей системы);

• снижение доступности – если центральный сайт по какой-либо причине станет недоступным, все остальные сайты системы не смогут создавать ни­каких новых объектов базы данных.

Альтернативное решение состоит в использовании префиксов, помещаемых в имена объектов в качестве идентификатора сайта, создавшего этот объект. Напри­мер, отношение Branch, созданное на сайте S1, могло бы получить имя Sl.BRANCH. Аналогичным образом, необходимо иметь возможность идентифицировать каждый фрагмент и каждую его копию. Поэтому второй копии третьего фрагмента отношения Branch, созданного на сайте Si, можно было бы присвоить имя Sl.BRANCH.F3.C2. Одна­ко подобный подход приводит к утрате прозрачности распределенности.

Подход, который позволяет преодолеть недостатки, свойственные обоим упомяну­тым методам, состоит в использованииалиасов, создаваемых для каждого из объек­тов базы данных. В результате объект Sl.BRANCH.F3.C2 пользователям сайта Si может быть известен под именем local branch. Задача преобразования алиаса в истинное имя соответствующего объекта базы данных возлагается на СУРБД.

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

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

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

- возможность потери сообщения;

- возможность отказа линии связи;

- аварийный останов одного из сайтов;

- расчленение сетевых соединений.

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

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

• к какому фрагменту следует обратиться;

• какую копию фрагмента использовать, если его данные реплицируются;

• какое из местоположений должно использоваться.

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

• время доступа, включающее физический доступ к данным на диске;

• время работы центрального процессора, затрачиваемое на обработку дан­ных в первичной памяти;

• время, необходимое для передачи данных по сетевым соединениям.

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