- •Раздел 4. «Технологии создания и преобразования информационных объектов»
- •Представление об организации баз данных и системах управления базами данных.
- •Структура данных и система запросов на примерах баз данных различного назначения.
- •Дополнительные объекты субд.
- •Реляционная модель
- •Иерархическая модель
- •Сетевая модель
- •Проектирование запросов в режиме конструктора
- •Проектирование запросов с помощью мастера
- •Форма как объект субд
- •Отчёт как объект субд
- •Страница как объект субд
- •Макросы и модули как объекты субд
- •Контрольные вопросы
- •Задания для самостоятельной работы
Проектирование запросов с помощью мастера
В некоторых случаях запросы удобнее строить с помощью мастеров, что, как правило, существенно ускоряет процесс проектирования запроса и сводит к минимуму ошибки проектирования. В СУБД Access можно использовать различные мастера для создания следующих запросов: «Простой запрос», «Перекрестный запрос», «Повторяющиеся записи», «Записи без подчиненных». Все эти типы запросов можно построить и в режиме конструктора.
Формирование простого запроса
Для создания запросов с помощью какого-либо мастера необходимо в базовом окне выбрать вкладку «Запросы» и щелкнуть по инструменту «Создать» или выбрать меню «Вставка/Запрос». После этого сформируется окно:
В форме «Новый запрос» нужно выбрать тип запроса, который предполагается строить, и щелкнуть по кнопке ОК.
Рассмотрим формирование простого запроса.
В поле
«Таблицы и запросы» этого окна необходимо
выбрать из предлагаемого списка таблицу
или запрос, на основе которого
предполагается строить запрос. После
этого в левой области окна сформируется
список доступных полей выбранного
объекта. Чтобы включить поля в проектируемый
запрос, используются кнопки
и
.
Кнопка
позволяет выбрать для создаваемого
запроса предварительно выделенные
поля, а кнопка
– все поля. Кнопки
и
позволяют исключать поля из списка
выбранных полей. В рассматриваемом
случае выбраны все поля запроса
«Издательства запрос».
Нажмем кнопку «Далее».
Построенному запросу по умолчанию присвоено имя. Оно формируется из имени объекта, на основе которого строится запрос, и слова “запрос”. Это имя можно изменить или оставить без изменений, при необходимости его можно будет изменить позже в базовом окне СУБД Access.
Посредством радиокнопки «Изменить макет запроса» сформированный запрос можно отобразить в режиме конструктора с целью его анализа и модификации. С помощью радиокнопки «Открыть запрос для просмотра данных» можно просмотреть результаты выполнения построенного запроса. После нажатия кнопки «Готово» результаты выполнения запроса отобразятся в следующем виде:
Как видно из этого рисунка, некоторые заголовки или значения полей не помещаются в отведенных областях, поэтому перед сохранением запроса соответствующие области можно расширить, и при последующих просмотрах запроса результаты будут выводиться в отредактированном виде.
После закрытия последнего окна с помощью кнопки оконного меню необходимо дать подтверждение на сохранение запроса.
Формирование перекрестного запроса
Перекрестный запрос позволяет вывести данные в таком виде, который предусматривает вывод заголовков столбцов, заголовков строк и значений в областях пересечения заголовков строк и столбцов. При проектировании перекрестного запроса следует знать, что в качестве заголовков столбцов можно задействовать значения одного поля, в качестве заголовков строк можно задействовать значения от одного до трех полей, в качестве значений можно задействовать только значения одного поля (как правило, это поле числового типа). В связи с этим следует строить перекрестный запрос на базе той таблицы или запроса, для которых перекрестный запрос имеет смысл. Например, для таблицы с зарплатами сотрудников или для таблицы с ценами товаров использование перекрестного запроса может оказаться полезным.
Для создания перекрестного запроса надо в форме «Новый запрос», которая уже использовалась нами в предыдущем примере выбрать позицию «Перекрестный запрос». После этого сформируется следующее окно:
В этом окне необходимо выбрать от одного до трех полей, которые в перекрестном запросе будут использоваться в качестве заголовков строк. Как правило, в качестве таких полей выбираются текстовые поля или поля типа дата. В данном случае выбрано поле «Автор». В нижней части окна представлен образец перекрестного запроса, который облегчает разработчику его построение.
После нажатия кнопки «Далее» мастер перейдет к следующему шагу. На этом шаге отобразится окно, в котором по аналогии с предыдущим окном необходимо указать поле, значения которого будут использоваться в качестве заголовков столбцов. В данном случае в качестве заголовков столбцов задействованы значения поля «Код книги».
На следующем шаге работы мастера сформируется окно:
В этом окне нужно выбрать поле, по которому в ячейках запроса будут формироваться итоговые значения. В данном случае имеет смысл в качестве поля для итогов выбрать поле «Цена», а в качестве функции, которая будет выполняться над значениями данного поля, – функцию Sum (Сумма). Посредством флажка «Вычислить итоговое значение для каждой строки?» можно обеспечить формирование дополнительного поля, в котором будут суммироваться стоимости книг каждого автора.
После выбора итогового поля и перехода к следующему шагу мастера сформируется окно, задания имени запроса.
Результаты выполнения перекрестного запроса:
Как видно из этого рисунка, сформировано поле «Итоговое значение», в которое занесены суммарные цены по каждой строке.
Также можно создавать запросы на создание таблиц, на добавление записей одной таблицы в другую, на изменение значений полей таблиц, на удаление записей в таблице.
Разумным подходом к проектированию многих запросов является следующая последовательность действий – запросы строятся сначала с помощью мастера, а затем модифицируются при необходимости посредством конструктора. Суть такой модификации для каждого конкретного случая своя и зависит от требований к запросу. Это может быть формирование критериев сортировки, формирование условий отбора, описание вычислений и другие модификации.
Вычисляемые поля в запросах.
Допустимо использование вычисляемых полей. Для этого применяется «построитель выражений». В этой структуре используются следующие обозначения:
Sum – определяет сумму значений числового поля.
Count – определяет количество группируемых записей.
Min и Max – определяют минимальное и максимальное значение поля.
First – выбирает первое значение.
Особенности запросов.
Особенность запроса состоит в том, что по запросу выбираются данные из базовых таблиц, и на их основе создаются временные результирующие таблицы.
Эти временные таблицы находятся в оперативной памяти. При запросе пользователь имеет дело с отражением требуемых полей оперативной памяти, потому что работы с запросами происходит гораздо эффективнее, так как время доступа к базе данных, хранящейся на винчестере гораздо больше времени доступа к запросам в оперативной памяти.
В запрос заносятся только требуемые поля из общей таблицы, поэтому просмотр результата в значительной мере упрощается.
Дополнительные
объекты СУБД
