Классика баз данных - статьи

       

Объединение миллионов систем баз данных


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

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

Вторым аспектом федеративных систем баз данных является семантика и выполнение запросов. Пользователь может обратиться к федеративной базе данных с 1000 узлами с запросом типа:

"Найти среднее значение заработной платы для сотрудников всего предприятия."


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

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

"Имеются ли действительно хорошие итальянские рестораны на расстоянии не более 5 миль от моего дома?"

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

К третьему аспекту объединения относятся средства, способствующие самому процессу интеграции. Системному администратору должно быть просто добавить свою систему к более крупной федеративной системе. Если базирующийся на технологии Web продавец одежды решает предложить свою одежду для путешествий оперативно доступному туристическому агенту, то системы заказа одежды и платежа должны быть объединены с системами туристического агенства. Для автоматизации этого процесса интеграции требуется, чтобы база данных приложения и определения интерфейсов базы данных были слиты в согласованное целое с помощью средств, помогающих наладить устанавливаемую систему.Стандарт UML (Unified Modelling Language) консорциума OMG представляет собой шаг для достижения возможности выражения таких определений, но для инструментальных средств, поддерживающих улучшенную автоматизацию, требуется поддержка в компьютеризованном виде большего объема семантической информации.


Содержание раздела