Системы управления базами данных (СУБД). Организации баз данных. Потребность в стандартных и общепринятых средствах сравнительного тестирования СУБД, страница 9

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

Поэтому часто системы на основе распределенной СУБД могут эффективно работать только при использовании высокоскоростных сетей; при использовании низкоскоростных сетей необходимо особенно тщательно планировать физическое размещение узлов БД.

По оценкам независимых западных экспертов, на начало 1993 года на рынке СУБД для UNIX-платформ (где наиболее сильны конкуренты Oracle) ситуация сложилась следующим образом: Oracle занимает 50% рынка; Sybase - 15%; Informix - 12%; Ingres - 8%. Тем самым распределенныеСУБД превращаются из предмета теоретических дискуссий в практически используемые системы.

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

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

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

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

  На что же ориентироваться покупателю? Один из возможных ответов на этот вопрос дал президент фирмы Alternative Technologies Дэвид Макговерн, перечислив “чертову дюжину” основных характеристик, которыми должна обладать распределенная СУБД. Эти характеристики таковы.

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

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

Горизонтальная и вертикальная фрагментация, т.е. возможность

  “расщеплять” таблицу БД по строкам (горизонтально) и по столбцам (вертикально) и размещать образующиеся части таблицы в разных узлах сети.

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

Распределенные представления (views), формируемые при выполнении операции соединения (join) таблиц, размещающихся в разных узлах.

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