Кубанский государственный университет
Опубликован: 24.12.2013 | Доступ: свободный | Студентов: 681 / 8 | Длительность: 24:28:00
Лекция 9:

Язык QBE (Query-by-example)

< Лекция 8 || Лекция 9: 1234 || Лекция 10 >
Аннотация: Язык с очень странным названием Query-By-Example "Запрос по образцу" (QBE) основан на исчислении предикатов на доменах.

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

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

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

9.1 Структура языка

Язык QBE, как и другие языки баз данных, включает в себя два подъязыка:

  • ЯОД —средства определения структур данных и ограничений целостности;
  • ЯМД — средства манипулирования данными и средства для написания запросов к базам данных. Язык управления данными отсутствует.

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

Как всегда, все проверяем самостоятельно. С этой целью вам предоставляется специально разработанное инструментальное средство. В конце лекции приведен пример запроса QBE в Microsoft Access. Настоятельно рекомендую воспользоваться предоставляемыми на сайте книги материалами по Access и проработать в нем несколько примеров. Это даст вам правильное представление о возможностях реализации языка.

9.2 Основы QBE

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

 Исходный шаблон из первой работы Злуфа

Рис. 9.1. Исходный шаблон из первой работы Злуфа

В графическом интерфейсе предлагаемого вам инструментального средства появляется пустой прямоугольник (рисунок 9.2).

 Исходный шаблон

увеличить изображение
Рис. 9.2. Исходный шаблон

Если таблица с указанным именем существует, появится полоса с двумя строками. В первой перечислены все столбцы таблицы, а вторая пустая. Пример шаблона для вызванной таблицы dept показан в таблице 9.1.

Таблица 9.1. Шаблон для таблицы dept
dept deptno dname Loc

Нижние строки, пока пустые, предназначены для ввода команд, переменных и операций отношения. Что в них можно записать? Одну из ограниченного (это хорошо, что ограниченного) набора команд, а именно:

  • I. (insert) — включить;
  • D. (delete) — удалить;
  • U. (update) — обновить;
  • P. (print) — печатать.

Можно задавать константы, переменные и отношения.

< Лекция 8 || Лекция 9: 1234 || Лекция 10 >