Распределенная обработка данных. Найханова Л.В. - 71 стр.

UptoLike

Составители: 

71
языка SQL, т.е. могут продолжать работать в тех же внешних условиях, что и в System R
(и SQL/DS и DB2). Возможность использования SQL основывается на обеспечении System
R* прозрачности местоположения данных. Система автоматически обнаруживает текущее
местоположение упоминаемых в запросе пользователя объектов данных; одна и та же
прикладная программа, включающая предложения SQL, может быть выполнена в разных
узлах сети. При этом в каждом узле сети на этапе компиляции запроса выбирается
наиболее оптимальный план выполнения запроса в соответствии с расположением данных
в распределенной системе.
Обеспечению автономности узлов сети в System R* уделяется очень большое
внимание. Каждая локальная база данных администрируется независимо от других.
Возможны автономное подключение новых пользователей, смена версии автономной
части системы и т.д. Система спроектирована таким образом, что в ней не требуются
централизованные службы именования объектов или обнаружения тупиков. В
индивидуальных узлах не требуется наличие глобального знания об операциях,
выполняющихся в других узлах сети; работа с доступными базами данных может
продолжаться при выходе из строя отдельных узлов сети или линий связи.
Высокая степень эффективности системы является одним из наиболее ключевых
требований к распределенным системам управления базами данных вообще и к System R*
в частности. Для достижения этой цели используются два основных приема.
Во-первых, в System R* выполнению запроса предшествует его компиляция. В ходе
этого процесса производится:
- поиск употребляемых в запросе имен объектов баз данных в распределенном
каталоге и замена имен на внутренние идентификаторы;
- проверка прав доступа пользователя, от имени которого производится
компиляция, на выполнение соответствующих операций над базами данных и
выбор наиболее оптимального глобального плана выполнения запроса, который
затем подвергается декомпозиции и по частям рассылается в соответствующие
узлы сети, где производится выбор оптимальных локальных планов выполнения
компонентов запроса и происходит генерация модулей доступа в машинных
кодах.
В результате множество действий производится на стадии компиляции до реального
выполнения запроса. Обработанная посредством прекомпилятора System R* прикладная
программа, включающая предложения SQL, может в дальнейшем выполняться много раз
без дополнительных накладных расходов. Использование распределенного каталога,
распределенная компиляция и оптимизация запросов являются наиболее интересными и
оригинальными аспектами проекта System R*.
Вторым средством повышения эффективности системы является возможность
перемещения удаленных отношений в локальную базу данных. Диалект SQL,
используемый в System R*, включает предложение MIGRATE TABLE, при выполнении
которого указанное отношение переносится в локальную базу данных. Это средство,
находящееся в распоряжении пользователей, конечно, в ряде случаев может помочь
добиться более эффективного прохождения транзакций. Естественно, как и для всех
операций, операция MIGRATE по отношению к указанному отношению доступна не
любому пользователю, а лишь тем, которые обладают соответствующим правом.
Прежде, чем перейти к более детальному изложению наиболее интересных аспектов
реализации System R*, упомянем некоторые средства, которые разработчики этой
системы предполагали реализовать на начальной стадии проекта, но которые реализованы
не были (причем некоторые из них, видимо, и не будут никогда реализованы).
Предполагалось иметь в системе средства горизонтального и вертикального разделения
отношений распределенной базы данных, средства дублирования отношений в нескольких
языка SQL, т.е. могут продолжать работать в тех же внешних условиях, что и в System R
(и SQL/DS и DB2). Возможность использования SQL основывается на обеспечении System
R* прозрачности местоположения данных. Система автоматически обнаруживает текущее
местоположение упоминаемых в запросе пользователя объектов данных; одна и та же
прикладная программа, включающая предложения SQL, может быть выполнена в разных
узлах сети. При этом в каждом узле сети на этапе компиляции запроса выбирается
наиболее оптимальный план выполнения запроса в соответствии с расположением данных
в распределенной системе.

      Обеспечению автономности узлов сети в System R* уделяется очень большое
внимание. Каждая локальная база данных администрируется независимо от других.
Возможны автономное подключение новых пользователей, смена версии автономной
части системы и т.д. Система спроектирована таким образом, что в ней не требуются
централизованные службы именования объектов или обнаружения тупиков. В
индивидуальных узлах не требуется наличие глобального знания об операциях,
выполняющихся в других узлах сети; работа с доступными базами данных может
продолжаться при выходе из строя отдельных узлов сети или линий связи.
      Высокая степень эффективности системы является одним из наиболее ключевых
требований к распределенным системам управления базами данных вообще и к System R*
в частности. Для достижения этой цели используются два основных приема.
      Во-первых, в System R* выполнению запроса предшествует его компиляция. В ходе
этого процесса производится:
      - поиск употребляемых в запросе имен объектов баз данных в распределенном
         каталоге и замена имен на внутренние идентификаторы;
      - проверка прав доступа пользователя, от имени которого производится
         компиляция, на выполнение соответствующих операций над базами данных и
         выбор наиболее оптимального глобального плана выполнения запроса, который
         затем подвергается декомпозиции и по частям рассылается в соответствующие
         узлы сети, где производится выбор оптимальных локальных планов выполнения
         компонентов запроса и происходит генерация модулей доступа в машинных
         кодах.
      В результате множество действий производится на стадии компиляции до реального
выполнения запроса. Обработанная посредством прекомпилятора System R* прикладная
программа, включающая предложения SQL, может в дальнейшем выполняться много раз
без дополнительных накладных расходов. Использование распределенного каталога,
распределенная компиляция и оптимизация запросов являются наиболее интересными и
оригинальными аспектами проекта System R*.
      Вторым средством повышения эффективности системы является возможность
перемещения удаленных отношений в локальную базу данных. Диалект SQL,
используемый в System R*, включает предложение MIGRATE TABLE, при выполнении
которого указанное отношение переносится в локальную базу данных. Это средство,
находящееся в распоряжении пользователей, конечно, в ряде случаев может помочь
добиться более эффективного прохождения транзакций. Естественно, как и для всех
операций, операция MIGRATE по отношению к указанному отношению доступна не
любому пользователю, а лишь тем, которые обладают соответствующим правом.
      Прежде, чем перейти к более детальному изложению наиболее интересных аспектов
реализации System R*, упомянем некоторые средства, которые разработчики этой
системы предполагали реализовать на начальной стадии проекта, но которые реализованы
не были (причем некоторые из них, видимо, и не будут никогда реализованы).
Предполагалось иметь в системе средства горизонтального и вертикального разделения
отношений распределенной базы данных, средства дублирования отношений в нескольких


                                                                                   71