Что такое QBE
QBE (Query-By-Example) — язык запросов по образцу, разработанный в исследовательских лабораториях компании IBM в 1970-х годах. Это непроцедурный язык, основанный на исчислении предикатов на доменах, который позволяет пользователю формулировать запросы к базе данных, не изучая сложный синтаксис команд.
Главная идея QBE заключается в визуальном подходе: пользователь заполняет специальную запросную форму (шаблон таблицы), указывая в её ячейках образцы данных, которые он хочет получить. СУБД сама преобразует этот «образец» в формальный запрос.
История создания
Разработка языков запросов к базам данных велась в основном в отделениях фирмы IBM (языки ISBL, SQL, QBE) и университетах США (PIQUE, QUEL). QBE был создан как альтернатива текстовым языкам вроде SQL, чтобы сделать работу с базами данных доступной пользователям без программистской подготовки.
Принцип работы
При работе с QBE пользователь выполняет следующие действия:
- Выбирает таблицу (или несколько связанных таблиц) базы данных.
- Отмечает поля, которые должны попасть в результат запроса.
- В ячейках формы указывает условия отбора — конкретные значения, диапазоны, шаблоны.
- При необходимости задаёт сортировку и вычисляемые поля.
Например, чтобы найти всех сотрудников отдела продаж с окладом выше определённого значения, достаточно в столбце «Отдел» написать «Продажи», а в столбце «Оклад» — условие > 50000.
Основные возможности QBE
- выборка данных по простым и сложным условиям;
- использование логических операторов (И, ИЛИ, НЕ);
- работа с несколькими связанными таблицами;
- сортировка и группировка результатов;
- вычисления (сумма, среднее, количество и т.д.);
- обновление, добавление и удаление записей через форму-образец.
Сравнение QBE и SQL
Наиболее известным «конкурентом» QBE является SQL (Structured Query Language) — структурированный язык запросов. По возможностям манипулирования данными оба языка сопоставимы, однако различаются подходом:
- SQL — текстовый язык, предложения которого приближены к естественному английскому языку; требует знания синтаксиса.
- QBE, визуальный язык; запрос строится заполнением табличной формы, что проще для понимания неподготовленным пользователем.
Непроцедурные языки обычно проще понять, поэтому во многих современных СУБД оба подхода сосуществуют. Например, в Microsoft Access при подготовке запроса можно перейти из окна Конструктора запросов (формулировка запроса по образцу на языке QBE) в режим SQL — и увидеть автоматически сгенерированную текстовую команду.
Пример запроса
Допустим, есть таблица «Клиенты» с полями: Фамилия, Город, Телефон. Запрос «показать всех клиентов из Москвы» в форме QBE будет выглядеть так:
- Фамилия: П. (показать), например, Иванов И. И. (), Петрова А. С. ()
- Город: «Москва»
- Телефон: П. — результат: +7 (495) —*
СУБД сформирует эквивалентный SQL-запрос вида: SELECT Фамилия, Телефон FROM Клиенты WHERE Город = «Москва»;
Преимущества и недостатки
Преимущества
- наглядность и простота освоения;
- не требует знания программирования;
- быстрое создание типовых запросов;
- снижение количества синтаксических ошибок.
Недостатки
- ограниченная гибкость при построении очень сложных запросов;
- зависимость от конкретной реализации в СУБД;
- меньшая универсальность по сравнению с SQL.
Язык запросов по образцу QBE — важный этап в развитии технологий работы с базами данных. Он сделал СУБД доступными широкому кругу пользователей и до сих пор применяется в таких системах, как Microsoft Access, где конструктор запросов фактически является реализацией идей QBE. Понимание принципов «запроса по образцу» помогает легче освоить и другие языки, прежде всего SQL.