Введение

Язык запроса базы данных Query by Example (QBE) — это язык запроса базы данных для реляционных баз данных. Он был разработан Моше М. Злуфом в IBM Research в середине 1970-х годов, параллельно с разработкой SQL. Это первый графический язык запросов, использующий визуальные таблицы, в которых пользователь вводит команды, примеры элементов и условия. Многие графические интерфейсы для баз данных и сегодня используют идеи, заложенные в QBE. Изначально QBE был ограничен только извлечением данных, но позже его возможности были расширены, чтобы поддерживать и другие операции, такие как добавление, удаление и обновление данных, а также создание временных таблиц. Основная идея QBE заключается в том, что анализатор может преобразовывать действия пользователя в операторы, выраженные на языке манипулирования базами данных, например, на SQL. В конечном итоге именно этот оператор и выполняется. Хорошо продуманный интерфейс может снизить нагрузку на пользователя, которому не нужно запоминать все тонкости SQL, и сделать работу с базами данных более простой и продуктивной для конечных пользователей (и даже программистов), позволяя выбирать таблицы и столбцы непосредственно, а не вводя их имена. В контексте информационного поиска QBE имеет несколько иное значение. Пользователь может предоставить один или несколько документов и запросить извлечение из базы документов "похожих" документов [см. Поиск по множеству примеров]. Поиск сходства основан на сравнении векторов документов (см. Векторная модель пространства). QBE представляет собой основополагающую работу в области разработки для конечных пользователей и часто упоминается в научных публикациях как ранний пример такого подхода. В настоящее время QBE поддерживается в нескольких реляционных базах данных, в частности в Microsoft Access, который реализует функцию "Визуальный запрос по примеру", а также в Microsoft SQL Server Enterprise Manager. Он также реализован в ряде объектно-ориентированных баз данных (например, в db4o). QBE основан на логическом формализме, называемом табличным запросом, хотя QBE добавляет к нему некоторые расширения, подобно тому, как SQL основан на реляционной алгебре.

Пример

Приведен пример использования базы данных "Поставщики и детали" для иллюстрации принципа работы QBE. + Простой пример QBE S S# SNAME OWNER SCITY P. SX J. DOE ROME