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


Трансляция запросов и поддержка времени выполнения - часть 2


Такой подход применяется, например, в широко известной реляционной СУБД INGRES [72]. Как нам кажется, кроме отмечаемой разработчиками System R увеличивающейся эффективности выполнения запроса, при выборе их подхода существенны и другие обстоятельства. Во-первых, System R - не мобильная система (в отличие от INGRES). Она ориентирована исключительно на ЭВМ семейства IBM/370 и поэтому перед ее разработчиками не стояла проблема переписывания генератора кодов при переносе системы на ЭВМ с другой системой команд. Во-вторых, в силу особенностей операционных систем IBM перед разработчиками не стояла проблема динамической загрузки программы в память задачи во время ее выполнения. Все операционные системы IBM поддерживают операцию "загрузи и выполни". Поэтому нет проблем с выполнением динамически компилируемых запросов. Наконец, в-третьих, генератор кодов компилятора SQL в System R достаточно прост. Как мы покажем ниже, его удалось реализовать в виде "сборщика" рабочей программы из сравнительно небольшого числа ранее подготовленных программных фрагментов. Заметим еще по этому поводу, что и в System R не сразу появилась компиляция предложений SQL в коды машины. В начальных версиях системы использовалась интерпретация, и только накопленный опыт позволил выработать окончательный подход.

На уровне пользователя System R допускает два вида интерфейса (оба на основе SQL). Первый вид интерфейса основан на использовании традиционного языка программирования (основным таким языком является традиционный язык фирмы IBM PL/1), в который разрешается включать предложения SQL, соответствующим образом помеченные. Язык SQL содержит средства, позволяющие параметризовать запросы значениями переменных объемлящей программы и получать результаты выполнения запросов в переменных этой программы. Для "стыковки" языка SQL, результатами выполнения запросов которого являются отношения, т.е. множества кортежей, с традиционным языком программирования в SQL введены средства последовательного покортежного просмотра результирующих отношений (аппарат курсоров).


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