Реферат Курсовая Конспект
Элементы языка QBE - раздел Программирование, Среда Delphi широко известна и не вызывает дополнительных трудностей при изучении и использовании Язык Qbe (Query By Example – Запрос По Образцу) Был Разработа...
|
Язык QBE (Query By Example – запрос по образцу) был разработан в компании IBM в 1975 году. Это язык реляционного исчисления с переменными на доменах, рассчитанный на работу в интерактивном режиме. Пользователь заполняет ячейки предъявляемых ему таблиц, поэтому говорят, что язык имеет двумерный синтаксис. В отличие от SQL нет общепризнанных стандартов языка QBE, но элементы этого языка достаточно широко распространены (например, СУБД Access, Paradox, Visual FoxPro).
Опишем возможности языка QBE на примерах, рассматривая отношения по поставщикам S (S# , Sn, Scity, Status), изделиям P (P#, Pn, Pcity, W) и поставкам SP (S#, P#, Q). Здесь S# - номер поставщика, Sn – его имя, Scity – место проживания, Status – статус поставщика, выраженный целым числом, P# - номер изделия, Pn – его наименование, Pcity – место хранения, W – вес, Q – объем поставки.
1. Получить имена и номера поставщиков из Москвы.
На экране по требованию пользователя появляется пустая таблица S, которая после заполнения полей приобретает вид
S | S# | Sn | Scity | Status |
P.X | P.Y | Москва |
Будем считать, что символы ‘P.’ задают режим выдачи на экран, а подчеркиванием выделяются пременные (в отличие от констант). Введенный запрос можно сформулировать так: “Выдать значения полей S# и Sn таблицы S для тех записей, в которых поле Scity принимает значение ‘Москва’”.
Какое значение имеют переменные? Почему нельзя было ограничиться просто знаком вопроса? Мы узнаем это чуть позже.
2. Выдать номера поставщиков, имеющих поставки объемом не менее 100 единиц.
SP | S# | P# | Q |
P.X | >=100 |
Заметим, что номера поставщиков в результате повторяться не будут, то есть режим, подобный DISTINCT в SQL, действует автоматически.
3. Выдать номера поставщиков, имеющих поставки изделия P1 либо изделия P2.
SP | S# | P# | Q |
P.X | P1 | ||
P.Y | P2 |
4. Выдать номера поставщиков, имеющих поставки как изделия P1, так и изделия P2.
SP | S# | P# | Q |
P.X | P1 | ||
P.X | P2 |
В этом примере впервые показан смысл переменных языка QBE. Одна и та же пременная в разных строках обозначает одно и то же значение поля. Таким образом, переменные задают связи между записями как в пределах одной таблицы, так и в нескольких таблицах.
5. Получить имена поставщиков из Казани статуса 5, имеющих поставки изделия P1 объемом не менее 100 единиц.
Для реализации этого запроса последовательно заполняются две таблицы
SP | S# | P# | Q |
X | P1 | >=100 |
S | S# | Sn | Scity | Status |
X | P.Y | Казань |
Снова переменная X указывает, что в таблицах SP и S имеется в виду один и тот же поставщик.
6. Получить номера и имена поставщиков-немосквичей, имеющих поставки изделий весом более 100 единиц.
Последовательно заполняются три таблицы
P | P# | Pn | Pcity | W | |||
X1 | >100 | ||||||
SP | S# | P# | Q | ||||
Y1 | X1 | ||||||
S | S# | Sn | Scity | Status |
P.Y1 | P.Y2 | ¹Москва |
Здесь таблицы P и SP связываются переменной X1, а SP и S – переменной Y1.
7. Выдать имена поставщиков, не имеющих поставки изделия P1.
Запрос
SP | S# | P# | Q |
X | ¹P1 |
S | S# | Sn | Scity | Status |
X | P.Y |
неправилен. Если некоторый поставщик поставляет как изделие P1, так и другие изделия, то он попадет в результаты запроса именно благодаря изделию, отличному от P1.
Для подобных запросов в языке QBE предусмотрено отрицание, относящееся ко всей записи, а не отдельному полю. Будем обозначать его символом ‘¬’. Наличие этого символа в первой колонке таблицы некоторой строки на экране обозначает, что подобной записи не должно быть. В рассматриваемом примере к нужному результату приводит запрос
SP | S# | P# | Q |
¬ | X | P1 |
S | S# | Sn | Scity | Status |
X | P.Y |
8. Выдать номера изделий, поставляемых более чем одним поставщиком.
SP | S# | P# | Q |
X | P. Y | ||
¹X | Y |
9. Получить имена и номера поставщиков самого высокого статуса.
S | S# | Sn | Scity | Status |
P.X | P.Y | SS | ||
¬ | >SS |
Перечислим некоторые дополнительные средства языка QBE.
1. Условия можно помещать отдельно в блоке условий.
2. По требованию пользователя можно создавать новые таблицы.
3. Имеются различные агрегатные функции, позволяющие задавать запросы с группировкой.
4. Наряду с запросами на чтение существуют запросы на включение, удаление, обновление записей.
5. Имеется набор встроенных функций для работы с данными иерархической структуры.
6. Предусмотрены операции со словарем БД, то есть со справочником, содержащим подробные сведения о БД.
В целом язык QBE обладает средствами, сравнимыми с возможностями SQL. Часто элементы языка QBE используются для удобного формирования SQL-запросов в режиме диалога.
– Конец работы –
Эта тема принадлежит разделу:
В настоящее время список источников по теории и практике использования баз... В данном пособии подробно излагаются вопросы связанные с проектированием и нормализацией базы данных реляционной...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Элементы языка QBE
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов