![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
В современных СУБД широко используются табличные языки запросов. Наиболее распространенным среди них является язык QBE (Query-By-Example - запрос по примеру). Язык QBE предназначен для работы в интерактивном режиме и ориентирован на конечного пользователя. Язык QBE реализован во многих современных СУБД, например в dBase IV и более старших версиях этой системы, Paradox, Access и др. Конкретные реализации этого языка несколько отличаются друг от друга, но все они построены по единому принципу.
Суть подхода, воплощенного в языке QBE, заключается в следующем. В окне формирования запроса выделяются две зоны. В первой из них высвечивается «скелет» (образ, форма, структура) одной или нескольких таблиц, данные из которых будут участвовать в запросе. В качестве исходных для запроса могут указываться не только базовые таблицы, но и другие запросы.
Во второй зоне («скелете» запроса табличной формы) пользователь задает условия запроса. В этой зоне пользователь определяет, какие поля участвуют в формировании запроса, а также условия отбора и некоторые другие характеристики запроса. Например, если пользователю необходимо получить все записи с заданным значением конкретного атрибута, то в соответствующем столбце «скелета» указывается это значение.
На рис. 6.1 представлен запрос к таблице, содержащей сведения о сотрудниках (Kadr) и включающей следующие атрибуты:
· FAM - фамилия; IMIA - имя; TABN - табельный номер; VOZR - возраст; POL - пол;
· ADR - адрес.
Требуется выдать информацию обо всех сотрудниках в возрасте 40 лет. В соответствующем столбце таблицы (VOZR) указывается цифра 40. В столбце можно записывать не только значение атрибута, но и знак операции сравнения; по умолчанию принимается знак равенства («=»).
На рис. 6.2 изображен запрос: «Выдать информацию о сотруднике с фамилией Диго и именем Светлана», а на рис. 6.3 - «Выдать информацию о сотрудниках, имеющих либо фамилию Диго, либо имя Светлана».
В связи с тем, что интерпретация запроса зависит от взаимного расположения элементов сложного запроса на строках экрана, такого рода языки запросов называются табличными двухмерными.
Вид, в котором представляются структуры исходных таблиц, а также то, где фиксируются условия поиска, могут различаться в конкретных системах.
Так, в dBase IV таблицы как в зоне «запроса», так в зоне «ответа» представляются в табличном виде, а условия отбора записей указываются в таблицах зоны «запроса». В Access, FoxPro исходные таблицы представлены в анкетной форме (поля таблицы перечисляются один под другим), а в зоне «ответа» в табличной форме отображаются те атрибуты (поля), которые будут выдаваться в ответе. Условия отбора записей задаются в зоне «ответа».
Описание ответа. Кроме задания условия отбора данных, при описании запроса должна быть возможность указать, какие атрибуты и в какой последовательности входят в ответ. В ответ могут выдаваться не только реальные поля, которые хранятся в одной из базовых таблиц, но и вычисляемые поля.
Можно выделить два вида вычислений, которые могут выполняться в запросах, формах, отчетах: это агрегирующие операторы, которые выполняют операции над группой записей, и обычные вычисления, затрагивающие отдельные поля одной или нескольких связанных записей.
Агрегирующие показатели могут быть включены не только в «Запросы», но и в «Отчеты». Возможности включения агрегирующих показателей в запросы и отчеты различаются между собой. Результатом запроса всегда является плоская таблица. Поэтому в запросах могут быть получены только одноуровневые итоги. В отчетах же может быть получено несколько степеней итогов.
Набор агрегирующих функций может быть различным в разных системах. Обычно во всех реализациях СУБД включены следующие функции: Sum (сумма), Min (минимум), Мах (максимум), Avg (среднее), Count (подсчет). Некоторые системы включают дополнительные статистические функции, такие, как отклонение, стандартное отклонение, дисперсия и др.
Использование агрегирующих функций предполагает, что таблица упорядочена по тому полю (полям), по которому ведется агрегирование. Некоторые СУБД сами автоматически выполняют упорядочение данных по необходимым полям, другие - нет. В последнем случае, если пользователь не задаст правильно требуемое упорядочение, результат, выводимый в ответ, будет искаженным.
Задача.
Построить ER-модель для следующей предметной области.
Имеется овощной магазин с разветвленной сетью овощных киосков.
По каждому киоску известен его адрес и месячная арендная плата.
По каждому киоску ведется ежедневный учет завезенного и проданного товара по каждой позиции товарной номенклатуры; кроме того, определяется выручка за день и за месяц.
Выручка за товар(исчисляемое)= Цена*Кол-во проданного
Выручка за товар за месяц месяц= Выручка за день*кол-во дней
Прибыль за день= Цена*Кол-во проданного -Товар.Цена_поставщика*Кол-во поставки
Итог за день=Sum(сумма выручки за товар)
Билет 16.
Дата публикования: 2015-10-09; Прочитано: 600 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!