Понятие языка 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;