Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_BD.doc
Скачиваний:
49
Добавлен:
17.09.2019
Размер:
1.74 Mб
Скачать

19.Табличные языки запросов. Общая характеристика

В современных СУБД широко используются табличные языки запросов. Наиболее распространенным среди них является язык QBE.

Табличный язык запросов QBE (Query By Example) – язык запросов по образцу. Язык QBE предназначен для работы в интерактивном режиме и ориентирован на конечного пользователя.

Язык QBE реализован во многих современных СУБД, например в dBase IV и более старших версиях этой системы, Paradox, Access и др. Конкретные реализации этого языка несколько отличаются друг от друга, но все они построены по единому принципу.

Суть подхода языка QBE: в окне формирования запроса выделяются две зоны.

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

2 зона. «Скелет» запроса табличной формы, где пользователь задает условия запроса: какие поля участвуют в формировании запроса; условия отбора и некоторые другие характеристики запроса. [Например, если пользователю необходимо получить все записи с заданным значением конкретного атрибута, то в соответствующем столбце «скелета» указывается это значение]

Особенности языка QBE:

  1. Формирование "Скелета ответа". Указывается, какие атрибуты и в какой последовательности входят в ответ. В ответ могут выдаваться не только реальные поля, которые хранятся в одной из базовых таблиц, но и вычисляемые поля. Поля, выводимые в ответ, указываются в строке конструктора запроса Вывод на экран (Show). В соответствующих колонках этой строки указывается знак вхождения поля в ответ («V» - «галочка»).

  2. Упорядочение ответа – сортировка. Определяется упорядоченность данных в ответе (в языке QBE полем Сортировка). [Возможности задания упорядочения ответа различаются в разных СУБД: некоторые системы разрешают проводить упорядочение по произвольным нолям, другие требуют, чтобы поле упорядочения стояло в ответе обязательно первым, а если упорядочение ведется по нескольким полям, то чтобы эти поля следовали в ответе друг за другом в порядке их старшинства. Некоторые СУБД различают обычное и словарное упорядочение (когда учитывается и не учитывается регистр соответственно), другие - нет; в некоторых системах, даже если не задано никакое упорядочение, ответ всегда выдаетсяs упорядоченным по первому нолю таблицы ответа и т.п.]

  3. Простые запросы. Запросы с простыми условиями, включающими только один аргумент поиска. При создании простого запроса условие отбора записывается в соответствующий столбец бланка запроса. В условиях отбора можно задавать и диапазон значений: BetweenAnd … или >= And >=1500

  4. Сложные запросы. Запросы, включающие несколько аргументов поиска, которые соединяются оператором «И» или «ИЛИ», либо смешанные варианты.

  5. Выполнение агрегирующих операторов. Статистические функции: Sum (сумма), Count (количество записей, возвращаемых запросом), Avg (среднее), Var (дисперсия) и др.

  6. Вычисляемые поля. При формулировании запросов можно обеспечить вывод в ответ полей, которые в исходных таблицах отсутствуют. [Например, можно перемножить значения двух полей: «Количество» и «Цена», хранящихся в БД о поставке продукции, и получить величину «Сумма»]

  7. Перекрестные запросы. В перекрестном запросе отображаются результаты статистических расчетов (такие, как суммы, количество записей, средние значения), выполненных по данным из одного поля. Эти результаты группируются по двум наборам данных в формате перекрестной таблицы. Первый набор выводится в левом столбце и образует заголовки строк, а второй - выводится в верхней строке и образует заголовки столбцов.

  8. Запросы с параметрами. Запрос с параметрами не требует каждый раз вносить изменения в бланк запроса; вместо этого выводится приглашение пользователю ввести условия отбора: текст приглашения, заключенный в квадратные скобки. Это приглашение будет выводиться при запуске запроса. Текст подсказки должен отличаться от имени поля, но может включать его.

  9. Корректирующие запросы. К корректирующим запросам относятся запросы на обновление (Update) и на удаление (Delete) записей, а также добавление (Append, Insert) записей из одной таблицы или нескольких связанных таблиц в конец другой таблицы. В документации по Access к типу «запросов на изменение» отнесены не только перечисленные выше запросы, но еще и «запрос на создание таблицы». Корректирующие запросы на обновление и удаление могут изменять как все записи таблицы, так и определенное их подмножество – это будет зависеть от условия отбора. При выполнении корректирующих запросов система осуществляет контроль ограничений целостности. Запрос на добавление добавляет группу записей из одной или нескольких таблиц (таблиц-источников) в конец другой таблицы (результатной таблицы).

  10. Запрос на создание таблицы. Фактически означает запоминание результата запроса в таблице.

  11. Специальные запросы: записи без подчиненных [пример: для определения списка сотрудников, не имеющих детей] - следует обратить внимание, что при связи основной и зависимой таблиц обязательно должно быть определено так называемое «левое соединение» (т.е. для связи в «параметрах объединения» необходимо выбрать вторую возможность - «объединение всех записей из первой таблицы и только тех записей из второй таблицы, в которых связанные поля совпадают), противном случае, список окажется пустым; дублирование значений поле (поиск записей, имеющих одинаковое значение в заданных полях) – этот запрос значительно включает в себя вложенный запрос, написанный на языке SQL; а также рассмотренные выше перекрестные запросы.

  12. Совместная обработка файлов в QBE. Используются данные из нескольких таблиц. «Скелеты» всех таблиц, которые нужны для реализации запроса, должны быть вызваны на экран.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]