- •Романов в.В.
- •1.2. Типы моделей данных
- •1.3.2. Формализация отношений
- •2.2. Логические связи в рбд
- •4. Работа с данными при помощи запросов
- •4.1. Средства описания запросов
- •4.2 Условия отбора данных
- •А) бланк запроса;
- •4.4. Итоговые запросы
- •А) бланк запроса (вариант 1)
- •Б) бланк запроса (вариант 2)
- •А) схема связей
- •Б) таблица запроса
- •4.6. Запрос с параметром
- •5. Основные этапы разработки рбд
- •6.4. Анализ данных. Определение структуры данных.
- •6.5. Схема базы данных
- •Р ис. 20. Схема базы данных "Транс-2000" (жирным шрифтом выделены первичные ключи)
- •6.6.2. "Расчет затрат на горючее за отчетный период".
- •Содержание
4. Работа с данными при помощи запросов
Характерной чертой современных БД (даже на локальном уровне) является очень большой объем хранимой информации. Анализ таких объемов информации (поиск, сопоставление, отбор и т.д.) невозможен без специальных средств - запросов.
Запрос - это операция над отношениями, результатом которой также является отношение (таблица). Одним из преимуществ использования запросов является то, что они позволяют достаточно просто найти и выбрать нужные данные из нескольких (или одной) связанных таблиц с большим количеством записей. Однако, в отличие от реальной таблицы, результирующая таблица запроса существует только во время выполнения запроса, но сформированный таким образом набор записей не хранится в БД.
4.1. Средства описания запросов
Для описания запросов разработаны специальные языки (QUEL, SQL, QBE и др.) применяемые в различных системах управления базами данных. Структурированный язык запросов SQL принят в качестве стандарта и поддерживается большинством современных СУБД. В некоторых СУБД предлагается несколько средств описания запросов. В частности, процедура создания запроса м.б. реализована средствами языка запросов по образцу (QBE), обладающим двумерным синтаксисом. В этом случае запрос формулируется путем заполнения табличной формы (бланка). Каждый столбец бланка QBE относится к одному полю запроса. Поле запроса м.б. просто полем одной из таблиц БД (в т.ч. полем другого запроса) или вычисляемым полем. Вычисляемые поля используются для получения не хранимых в БД данных. Значения в таких полях могут рассчитываться на основе значений нескольких атрибутов (даже если они принадлежат разным таблицам).
Формат результирующей таблицы запроса определяется набором полей включенных в запрос. Условия отбора данных в запросе могут отсутствовать или м.б. заданы для одного или нескольких полей. Если условий больше одного, то условия отбора записанные в одной строке объединяются логическим оператором AND (И), условия записанные в разных строках - оператором OR (ИЛИ).
Если строки условий отбора табличной формы QBE пусты, то такому "условию" удовлетворяют любые хранимые значения атрибутов включенных в запрос.
Условия отбора, по какому либо атрибуту включенному в запрос, м.б. сформулированы: в виде равенства или неравенства для числовых переменных; в виде тождества или подобия для текстовых переменных.
Рассмотрим пример заполнения табличной формы запроса QBE реализованный в MS ACCESS.
Перед началом заполнения бланка запроса необходимо четко сформулировать цель запроса, что бы представить, какие данные из БД пользователь хочет получить в результате. Например, оформить сводную таблицу о выполненных рейсах, в которой необходимо указать фамилию водителя, пункт назначения, вес груза и марку автотранспортного средства. Исходя из анализа схемы БД (рис. 3), для получения этой информации необходимо использовать данные из таблиц: "ПУНКТ_НАЗНАЧЕНИЯ" - атрибут "Наименование"; "ВОДИТЕЛИ" - атрибут "Фамилия_И_О"; "МАРКА_АТ" - атрибут "Марка" и "ПЕРЕВОЗКИ" - атрибут "Вес". В соответствии с целью в запрос включены указанные поля (рис. 4).
Рейсы: запрос на выборку |
|
|
|
|
Поле: |
Фамилия_И_О |
Наименование |
Вес |
Марка |
Имя таблицы: |
ВОДИТЕЛИ |
ПУНКТ_НАЗНАЧЕНИЯ |
ПЕРЕВОЗКИ |
МАРКА_АТ |
Сортировка: |
|
|
|
|
Вывод на экран: |
|
|
|
|
Условия отбора: |
|
|
|
|
Или: |
|
|
|
|
Рис. 4. Бланк запроса QBE (СУБД MS Access)
В этом запросе раздел "Условия отбора" не содержит критериев ни в одном поле включенном в запрос, т.е. любые значения указанных атрибутов хранимые в БД удовлетворяют условиям отбора.
При текущем состоянии БД (рис. 3) в результате выполнения запроса на выборку "Рейсы" будет сформирован набор записей (рис.5)
-
Рейсы: запрос на выборку
Фамилия_И_О
Наименование
Вес
Марка
Ермаков Ф.Г.
п. Ливневка
3,5
МАЗ
Иванов С.П.
п. Стасово
1,5
ГАЗ-53
Локтев И.Д.
г. Киселев
4,2
КАМАЗ
Ермаков Ф.Г.
с. Еловое
2,1
МАЗ
Антонов Р.Т.
п. Стасово
0,8
КАМАЗ
Иванов С.П.
г. Киселев
3,7
КАМАЗ
Иванов С.П.
п. Ливневка
5,2
МАЗ
Рис. 5. Результат выполнения запроса на выборку "Рейсы"
