QBE-подобные интерфейсы все еще можно найти сегодня как графические интерфейсы для систем баз данных.
Интерфейс QBE можно найти, например, как одну из нескольких функций запросов, реализованных в программах базы данных DOS dBASE -IV и -V, которые широко использовались с 1988-1995 годов.
QBE является реляционно полным , но для некоторых запросов требуется серия запросов QBE, поэтому он не является строго реляционно полным .
При поиске в поисковых системах запрос по примеру означает поиск документов, которые имеют минимальное соответствие выбранному образцу документа.
Принципы
Система сначала предоставляет структуру таблицы (также: скелет), которую пользователь может заполнить примерами элементов , операциями сравнения и командами . Для более сложных условий есть специальная таблица - поле условий . Также можно использовать агрегатные функции. Линии также можно отрицать целиком.
Элементы примера начинаются с "_" и используются для связывания таблиц (объединения) и для указания условий в поле условия. Операции сравнения указываются в ячейке, например, запись «> 7» соответственно сравнивает атрибут. Команды P, I. и D. обозначают печать, вставку и удаление. I. и D. всегда указываются в первом столбце, P. может быть в первом столбце, чтобы выводить всю строку, или, в случае одного или нескольких атрибутов, чтобы выводить только эти атрибуты - отрицательная строка не должен содержать P.
Примеры
Пусть в системе существуют следующие отношения:
ПОКУПАТЕЛЬ
(кднр, имя, адрес, место)
ЗАДАНИЕ
(№ заказа, № клиента, № товара, количество)
БЫЛО БЫ
(номер продукта, wname, wpreis)
В QBE запросы выполняются путем заполнения структур таблиц.
Места, где есть клиенты
ПОКУПАТЕЛЬ
kdnr
кличка
адрес
место
П.
Все клиенты из Бремена
ПОКУПАТЕЛЬ
kdnr
кличка
адрес
место
П.
= 'Бремен'
Эти примеры показывают, как реализованы проекция (скрытие столбцов) и выделение (скрытие линий). Два запроса, которые используют соединения и используют элементы примера:
Клиенты с заказом
ПОКУПАТЕЛЬ
kdnr
кличка
адрес
место
П.
_kdnr
ЗАДАНИЕ
порядковый номер
kdnr
товаров нет
количество
_kdnr
В следующем примере показано использование инвертированных строк:
Товар без заказа
БЫЛО БЫ
товаров нет
wname
wpreis
П.
_хорошо нет
ЗАДАНИЕ
порядковый номер
kdnr
товаров нет
количество
¬
_хорошо нет
Перекрестный продукт двух отношений будет сформирован следующим образом:
Записи в каркасе таблиц
БЫЛО БЫ
товаров нет
wname
wpreis
_хорошо нет
_wname
_wprice
ЗАДАНИЕ
порядковый номер
kdnr
товаров нет
количество
_порядковый номер
_kdnr
_warennr2
_количество
Новый каркас стола W × A
Ш × А
товаров нет
wname
wpreis
порядковый номер
kdnr
товаров нет
количество
П.
_хорошо нет
_wname
_wprice
_порядковый номер
_kdnr
_warennr2
_количество
Для реализации заданных операций реляционной алгебры необходимы несколько утверждений. Если у вас было два отношения со схемой CUSTOMER, CUSTOMER и SCAM, вы могли бы получить всех возможных КЛИЕНТОВ, объединив эти два отношения. Это можно сделать только двумя операциями, а не одной:
ПОКУПАТЕЛЬ
kdnr
кличка
адрес
место
_kdnr
_kname
_адрес
_место
Новая структура таблицы
КЛИЕНТ
kdnr
кличка
адрес
место
Я.
_kdnr
_kname
_адрес
_место
Сначала значения отношения CUSTOMER вставляются в новое отношение. Затем во второй операции появляются ЧИТЕРЫ:
ОБМАНЫ
kdnr
кличка
адрес
место
_kdnr
_kname
_адрес
_место
КЛИЕНТ
kdnr
кличка
адрес
место
Я.
_kdnr
_kname
_адрес
_место
Новое отношение теперь содержит CUSTOMER ∪ CHEATER.
веб ссылки
Рамакришнан, Рагху; Герке, Йоханнес: запрос на примере. (PDF; 140 kB) В: Системы управления базами данных (3-е изд.). www.cs.wisc.edu, по состоянию на 15 октября 2011 г. (на английском языке).