- •Базы Данных
- •1.Понятие банка данных. Компоненты банков данных и их краткая характеристика
- •2.Языковые средства субд
- •3.Классификация баз данных
- •4.Этапы проектирования баз данных
- •Тсп для даталогического проектирования
- •Тсп для физического проектирования
- •5.Инфологическое (концептуальное) моделирование
- •7.Case -средства проектирования бд
- •9.Реляционные модели. Основные понятия
- •10.Реляционные модели. Нормальные формы отношений
- •5Nf. Декомпозиция без потерь
- •11.Реляционные модели. Нормализация отношений
- •12.Реляционные алгебры
- •13.Факторы, влияющие на проектирование баз данных
- •1. Специфика предметной области:
- •2. Особенности требуемой обработки информации:
- •3. Характеристика пользователей системы:
- •14.Алгоритм перехода от er-модели к реляционной модели данных
- •15.Ограничения целостности. Понятие и классификация
- •16.Возможности задания ограничений целостности в современных субд
- •17.Языки запросов. Понятие. Классификация
- •18.Классификация запросов. Особенности реализации запросов разных классов
- •19.Табличные языки запросов. Общая характеристика
- •20.Язык sql. Общая характеристика
- •21.Общая структура команды Select языка sql. Корректировка данных в sql
- •22.Sql. Создание объектов
- •23.Sql. Встроенный join
- •24.Sql. Понятие курсора. Использование курсоров
- •25.Sql. Группировка данных. Использование обобщающих функций
- •26.Sql. Создание и использование представлений
- •27.Генераторы экранных форм. Назначение. Классификация
- •28.Генераторы отчетов. Назначение. Классификация
- •29.Классификация распределенных банков данных
- •30.Проблемы обеспечения целостности в распределенных бд
- •31.Сравнение централизованных и распределенных систем
- •32.Распределенные бд. Технологии файл-сервер и клиент-сервер
- •33.Распределенные базы данных. Технология тиражирования
- •34.Проблемы, возникающие при параллельном доступе, и пути их решения
19.Табличные языки запросов. Общая характеристика
В современных СУБД широко используются табличные языки запросов. Наиболее распространенным среди них является язык QBE.
Табличный язык запросов QBE (Query By Example) – язык запросов по образцу. Язык QBE предназначен для работы в интерактивном режиме и ориентирован на конечного пользователя.
Язык QBE реализован во многих современных СУБД, например в dBase IV и более старших версиях этой системы, Paradox, Access и др. Конкретные реализации этого языка несколько отличаются друг от друга, но все они построены по единому принципу.
Суть подхода языка QBE: в окне формирования запроса выделяются две зоны.
1 зона. «Скелет» (образ, форма, структура) одной или нескольких таблиц, данные из которых будут участвовать в запросе. В качестве исходных данных для запроса могут указываться не только базовые таблицы, но и другие запросы.
2 зона. «Скелет» запроса табличной формы, где пользователь задает условия запроса: какие поля участвуют в формировании запроса; условия отбора и некоторые другие характеристики запроса. [Например, если пользователю необходимо получить все записи с заданным значением конкретного атрибута, то в соответствующем столбце «скелета» указывается это значение]
Особенности языка QBE:
Формирование "Скелета ответа". Указывается, какие атрибуты и в какой последовательности входят в ответ. В ответ могут выдаваться не только реальные поля, которые хранятся в одной из базовых таблиц, но и вычисляемые поля. Поля, выводимые в ответ, указываются в строке конструктора запроса Вывод на экран (Show). В соответствующих колонках этой строки указывается знак вхождения поля в ответ («V» - «галочка»).
Упорядочение ответа – сортировка. Определяется упорядоченность данных в ответе (в языке QBE полем Сортировка). [Возможности задания упорядочения ответа различаются в разных СУБД: некоторые системы разрешают проводить упорядочение по произвольным нолям, другие требуют, чтобы поле упорядочения стояло в ответе обязательно первым, а если упорядочение ведется по нескольким полям, то чтобы эти поля следовали в ответе друг за другом в порядке их старшинства. Некоторые СУБД различают обычное и словарное упорядочение (когда учитывается и не учитывается регистр соответственно), другие - нет; в некоторых системах, даже если не задано никакое упорядочение, ответ всегда выдаетсяs упорядоченным по первому нолю таблицы ответа и т.п.]
Простые запросы. Запросы с простыми условиями, включающими только один аргумент поиска. При создании простого запроса условие отбора записывается в соответствующий столбец бланка запроса. В условиях отбора можно задавать и диапазон значений: Between … And … или >=… And >=1500
Сложные запросы. Запросы, включающие несколько аргументов поиска, которые соединяются оператором «И» или «ИЛИ», либо смешанные варианты.
Выполнение агрегирующих операторов. Статистические функции: Sum (сумма), Count (количество записей, возвращаемых запросом), Avg (среднее), Var (дисперсия) и др.
Вычисляемые поля. При формулировании запросов можно обеспечить вывод в ответ полей, которые в исходных таблицах отсутствуют. [Например, можно перемножить значения двух полей: «Количество» и «Цена», хранящихся в БД о поставке продукции, и получить величину «Сумма»]
Перекрестные запросы. В перекрестном запросе отображаются результаты статистических расчетов (такие, как суммы, количество записей, средние значения), выполненных по данным из одного поля. Эти результаты группируются по двум наборам данных в формате перекрестной таблицы. Первый набор выводится в левом столбце и образует заголовки строк, а второй - выводится в верхней строке и образует заголовки столбцов.
Запросы с параметрами. Запрос с параметрами не требует каждый раз вносить изменения в бланк запроса; вместо этого выводится приглашение пользователю ввести условия отбора: текст приглашения, заключенный в квадратные скобки. Это приглашение будет выводиться при запуске запроса. Текст подсказки должен отличаться от имени поля, но может включать его.
Корректирующие запросы. К корректирующим запросам относятся запросы на обновление (Update) и на удаление (Delete) записей, а также добавление (Append, Insert) записей из одной таблицы или нескольких связанных таблиц в конец другой таблицы. В документации по Access к типу «запросов на изменение» отнесены не только перечисленные выше запросы, но еще и «запрос на создание таблицы». Корректирующие запросы на обновление и удаление могут изменять как все записи таблицы, так и определенное их подмножество – это будет зависеть от условия отбора. При выполнении корректирующих запросов система осуществляет контроль ограничений целостности. Запрос на добавление добавляет группу записей из одной или нескольких таблиц (таблиц-источников) в конец другой таблицы (результатной таблицы).
Запрос на создание таблицы. Фактически означает запоминание результата запроса в таблице.
Специальные запросы: записи без подчиненных [пример: для определения списка сотрудников, не имеющих детей] - следует обратить внимание, что при связи основной и зависимой таблиц обязательно должно быть определено так называемое «левое соединение» (т.е. для связи в «параметрах объединения» необходимо выбрать вторую возможность - «объединение всех записей из первой таблицы и только тех записей из второй таблицы, в которых связанные поля совпадают), противном случае, список окажется пустым; дублирование значений поле (поиск записей, имеющих одинаковое значение в заданных полях) – этот запрос значительно включает в себя вложенный запрос, написанный на языке SQL; а также рассмотренные выше перекрестные запросы.
Совместная обработка файлов в QBE. Используются данные из нескольких таблиц. «Скелеты» всех таблиц, которые нужны для реализации запроса, должны быть вызваны на экран.