Развитие идей и приложений реляционной СУБД System R


Исходные цели проекта System R* - часть 2


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

Высокая степень эффективности системы является одним из наиболее ключевых требований к распределенным системам управления базами данных вообще и к System R* в частности. Как мы отмечали в Разделе 2, этому вопросу уделялось большое внимание и в System R. Именно то, что в System R удалось обеспечить достаточно эффективное выполнение запросов, позволило фирме IBM перейти на выпуск коммерческих систем SQL/DS и DB2. Добиться эффективного выполнения запросов в распределенной системе, естестственно, существенно более трудно, чем в централизованной. В System R* для достижения этой цели используются два основных приема.

Во-первых, как и в System R, в System R* выполнению запроса предшествует его компиляция. В ходе этого процесса производится поиск употребляемых в запросе имен объектов баз данных в распределенном каталоге и замена имен на внутренние идентификаторы; проверка прав доступа пользователя, от имени которого производится компиляция, на выполнение соответствующих операций над базами данных и выбор наиболее оптимального глобального плана выполнения запроса, который затем подвергается декомпозиции и по частям рассылается в соответствующие узлы сети, где производится выбор оптимальных локальных планов выполнения компонентов запроса и происходит генерация модулей доступа в машинных кодах. В результате множество действий производится на стадии компиляции до реального выполнения запроса. Обработанная посредством прекомпилятора System R* прикладная программа, включающая предложения SQL, может в дальнейшем выполняться много раз без дополнительных накладных расходов. Использование распределенного каталога, распределенная компиляция и оптимизация запросов, как отмечается в [34], являются наиболее интересными и оригинальными аспектами проекта System R*. В следующих подразделах этого раздела мы рассмотрим эти аспекты более подробно.




Начало  Назад  Вперед