Все четыре СУБД поддерживают локальную автономию узлов, т.е. возможность рассматривать локальную БД конкретного узла как самостоятельную базу, позволяют формулировать запросы к БД на языке SQL, как стандартном (ANSI SQL-89), так и расширенном. СУБД Oracle 7 дополнительно к непроцедурному языку SQL поддерживает свой собственный процедурный язык PL/SQL.
“Прозрачный” механизм запроса, обновления и просмотра данных, обновления и просмотра данных, размещенных в нескольких узлах, также реализован во всех рассматриваемых СУБД. Однако распределенное обновление данных в СУБД разных типов можно выполнить только с помощью двухфазного протокола фиксации Oracle 7.
Механизм локальной и глобальной блокировки данных, который предотвращает изменение данных, контролируемых в это время другими пользователями, и таким образом обеспечивает целостность и непротиворечивость данных, реализован везде, но на разных уровнях:
Oracle 7 по умолчанию блокирует запись, а остальные СУБД - страницу или таблицу. Блокировка на уровне записи позволяет одновременно обновлять разные записи одной и той же таблицы, что резко снижает время ожидания, ускоряет обработку данных и уменьшает вероятность возникновения взаимоблокировок.
При выборе распределенной СУБД в первую очередь следует обратить внимание на то, какие операционные системы и сетевые протоколы она поддерживает. Однако не менее важным является и то, какие методы распределения данных реализованы в СУБД.
Одним из способов распределенного хранения таблиц является фрагментация: таблица расщепляется на части, которые помещаются в разные узлы. Другой способ - дублирование (репликация): создаются дубли всей БД или ее частей и размещаются в узлах. Оба метода позволяют хранить данные именно там, где они чаще всего используются.
В Oracle 7 реализованы и фрагментация, и дублирование, причем дублирование может как выполнятся процедурно (с помощью триггеров), так и задаваться декларативной форме. В этом последнем случае в БД создаются так называемые “моментальные снимки” (snapshots).
Триггеры обеспечивают синхронизированный механизм дублирования таблиц, при котором изменения, сделаны в основной таблице, немедленно отображаются в дублирующих таблицах. Обновление, выполняемое с помощью “моментальных снимков”, - асинхронное, т.е. производится в определенное время или через определенные интервалы времени.
Различаются простые и сложные “моментальные снимки”. Первые функционируют на базе одной основной таблицы и позволяют обновлять в дублирующих таблицах только те строки, которые были изменены в основной. Вторые базируются на нескольких основных таблицах; при каждом обновлении любой из них дублирующие таблицы создаются заново.
После того как данные распределены по разным узлам сети, важно их найти и использовать, для чего служат словари и каталоги данных. В словаре хранится информация о данных, их использовании, правах доступа к ним различных пользователей и прикладных программах обработки. Каталоги данных нужны для того, чтобы определить, где хранятся данные и как их извлечь. Словари и каталоги могут быть глобальными и локальными.
В СУБД Ingres глобальный словарь реализуется с помощью компонента Ingres/Star, который извлекает информацию из всех локальных словарей данных и выполняет оптимизацию запросов. Недостатком такого подхода является то, что все данные словарей собираются на центральном узле Ingres/Star, так что при его отключении или сбое теряется доступ к остальным узлам распределенной БД. Для восстановления доступа придется создавать другой центральный узел.
В Oracle 7 все данные словаря распределены, так что при отключении или сбое одного из узлов все остальные узлы продолжают корректно работать. Транзакции, работавшие с вышедшим из строя узлом, задерживаются; их можно выполнить позже (после восстановления узла) или отбросить.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.