Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы к ГОСу -общий текст.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
428.47 Кб
Скачать

23. Табличные языки запросов. Язык qbe и особенности его реализации в современных субд.

Языковые средства СУБД являются важнейшим компонентом баз данных, так как в конечном счете они обеспечивают интерфейс пользователей разных категорий с банком данных.

QBE (англ. Query by Example, запрос по образцу) — способ создания запросов к базе данных, с использованием образцов значений полей в виде текстовой строки. Реализации QBE преобразуют пользовательский ввод в формальный запросов к базе данных, что позволяет пользователю создавать сложные запросы без необходимости изучать более сложные языки запросов, такие как SQL.

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

Задание сложных запросов.

Допускается задание сложных запросов (компоненты связаны операторами And и Or), причем сами компоненты не указываются в явном виде. Если нужно связать атрибуты оператором И, то они записываются в одной строке, если ИЛИ, то в разных.

В связи с тем, что интерпретация запроса зависит от взаимного расположения элементов запроса на строках экрана, такого рода языки запросов называются табличными двухмерными.

Совместная обработка нескольких таблиц.

В запросах часто требуются данные из нескольких таблиц. В таких случаях нужно вызвать «скелеты» всех таблиц, участвующих в запросе на экран. Дальнейшие действия по связыванию таблиц зависят от конкретной СУБД.

Возможны разные типы соединения. Наиболее распространено соединение, когда в результатную таблицу помещаются те записи, для которых значение поля связи основной таблицы совпадает с соответствующим полем из зависимой таблицы. Существуют также «левое» и «правое» соединения. (аналог JOIN в SQL)

NB! Не стоит открывать таблиц больше, чем это реально необходимо для запроса.

Описание ответа.

Существует возможность указать, какие атрибуты и в какой последовательности входят в ответ. Могут выдаваться кроме реальных и вычисляемые поля. Выделяют два вида вычислений: агрегирующие операторы, которые выполняют операции над группой записей, и обычные вычисления, затрагивающие отдельные поля одной или нескольких таблиц.

Стандартный набор агрегирующих функций: Sum (сумма), Min, Max, Count (подсчет), Avg (среднее значение).

Результаты вычислений не запоминаются в базовой таблице. Они проводятся всякий раз при выполнении запроса, то есть результаты отражают текущее содержимое базы данных.

QBE дает возможность упорядочивать данные, выводимые в ответе. Конкретные принципы задания упорядоченности зависят от СУБД.

Дополнительные возможности.

Позволяет кроме поисковых выполнять и другие операции (например, корректировку данных). Некоторые СУБД позволяют формировать запросы специальных видов: параметрические, перекрестные. Запросы, сформулированные на QBE, могут быть запомнены для дальнейшего многократного использования.

Языки QBE, реализованные в разных системах, отличаются в деталях.

Запросы, сформированные на QBE, могут быть запомнены для их последующего многократного использования. Язык QBE часто используется в качестве построителя запросов на SQL.