Понятие языка QBE

QBE —это язык, основанный на исчислении предикатов на доменах, мы уже отметили. Естественно, он обладает свойством реляционной полноты.

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

Наверное, лингвист сказал бы, что SQL, в отличие от QBE, чисто вербальный язык. Любая возможная инструкция в нем есть одномерная последовательность слов (цепочка). Возможные структуры этих цепочек описываются некоторой грамматикой.

И еще. В используемом вами инструменте постоянно предлагался эквивалент команды на языке SQL. Это делается чисто в учебных целях, чтобы связать в вашем представлении оба языка. Конечно, QBE можно транслировать в SQL. Но отсюда не следует, что QBE —это такой способ представления SQL. Например, в Cache можно транслировать команды QBE в COS-процедуры, предназначенные для работы с глобалами, хранящими данные таблиц. В большинстве других СУБД пользователь не может написать подобный транслятор из-за того, что не имеет доступа к структурам хранения на низком уровне.

Что шире SQL или QBE? В последних версиях SQL существенно шире. Например, в нашем инструментальном средстве для QBE эквивалента UNION нет.

Есть веские основания полагать, что QBE никогда не догонит SQL. Дело в том, что графические компоненты чрезвычайно удобны, но существенно ограничены. Слишком сложные образы только затрудняют восприятие.

Язык с очень странным названием Query-By-Example "Запрос по образцу" (QBE) основан на исчислении предикатов на доменах. Разработан он Мойше Злуфом в 1974-1975 гг. в фирме IBM. Как вы помните, основополагающая работа Кодда по реляционной алгебре появилась в 1970 году. Так что исчисление предикатов на доменах было реализовано в языке достаточно быстро.

Странное слово в названии "по образцу" объясняется тем, в общем, случайным обстоятельствам, что, по мнению М. Злуфа, неквалифицированному пользователю удобнее выбирать в качестве имен переменных какое-нибудь значение этой переменной. Например, в уже известной вам таблице emp доменную переменную в столбце ename можно назвать SMITH или KING или еще каким-нибудь значением из домена ename.

Заметим, что подчеркиванием в исходной версии QBE выделялись имена переменных. И еще одно чисто техническое замечание. Как вы помните, в SQL мы договорились обозначать служебные слова языка большими буквами, а имена таблиц и столбцов малыми. Здесь мы это правило будем нарушать потому, что в демонстрируемых реализациях для всех имен может использоваться верхний регистр. В основополагающих статьях М. Злуфа все имена изображаются большими буквами. В приводимых для сравнения записях инструкций SQL сохранены соглашения "Язык SQL" .









Дата добавления: 2015-01-29; просмотров: 1749;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.