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


Трансляция запросов и поддержка времени выполнения


Конечно, главным компонентом System R, поддерживающим выполнение запросов к базам данных, является подсистема управления памятью RSS. В ней осуществляется непосредственная выборка и запись данных на внешнюю память, она ведает вопросами синхронизации доступа к объектам баз данных и осуществляет необходимые действия по обеспечению надежности баз данных. Однако, RSS - это всего лишь поддержка System R на нижнем, "физическом" уровне. Подсистема RSS обладает интерфейсом, который, во-первых, не является реляционным, а во-вторых, он вообще не является интерфейсом, доступным пользователю (например, в нем отсутствуют имена объектов). System R становится полной системой управления реляционными базами данных только при наличии других компонентов, позволяющих взаимодействовать с базами данных на базовом языке этой системы - SQL.

Как мы уже отмечали во введении, разработчики System R выбрали при реализации SQL подход, основанный на компиляции предложений этого языка в коды объектной ЭВМ (IBM/370). Это означает, что при непосредственном выполнении запроса выполняется программа, содержащая только программный код, необходимый для выполнения этого запроса (включающий, конечно, обращения к RSS), и ничего лишнего. Как неоднократно утверждают разработчики (например, в [24-27]), они пошли на этот шаг в стремлении повысить эффективность выполнения запросов за счет прямого выполнения программного кода, не содержащего лишних команд. Утверждается, что даже в случае интерактивной работы, когда откомпилированный запрос будет заведомо выполняться только один раз, накладные расходы на генерацию машинного кода окупаются эффективностью рабочей программы. Это подтверждается приводимыми в публикациях экспериментальными данными.

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


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



Книжный магазин