
- •Введение
- •1. Анализ предметной области
- •2. Решение задач средствами проектирования субд
- •2.1 Задачи бд
- •2.2 Решение поставленных задач
- •3. Организация базы данных
- •3.1 Создание информационной модели
- •3.2 Основные сущности предметной области и их свойства
- •3.3 Логическая модель
- •3.4 Нормализация отношений
- •3.5 Физическая модель
- •4. Разработка программного продукта
- •4.1 Описание интерфейса
- •4.2 Обработка данных
- •4.3 Описание выходной информации
- •Заключение
- •Список использованной литературы
4.2 Обработка данных
Очевидно, что одной из главных задач информационных систем является обработка информации, и чем быстрее, надежнее и точнее – тем лучше. С помощью языка SQL есть возможность составить запросы, как раз таки и являющиеся обработчиком информации. В данной курсовой работе имеется ряд запросов, которые и будут рассмотрены ниже.
Запрос «Поставки в январе»
Рисунок
17 - Запрос «Поставки в январе» в
конструкторе запросов
Данный запрос выполняет довольно важную функцию: показывает количество заказанного магазином товара за месяц. Что немаловажно, он отображает и общую сумму, которая является вычисляемой по формуле. Ниже приведен SQL вид запроса:
SELECT Поставка.Дата, Инструменты.Название, Поставка.Количество, [Количество]*[Инструменты]![Цена] AS Сумма
FROM Инструменты INNER JOIN Поставка ON Инструменты.Код = Поставка.[Код инструмента]
WHERE (((Поставка.Дата) Like "*.01.2022"));
Рисунок
18 - Результат выполнения запроса «Поставки
в январе»
Результат запроса можно представить в виде диаграммы, сводной таблицы и таблицы обычной. Мы выберем последний вариант:
В ИС «Музыкальный магазин» есть два аналогичных запроса, выводящих результат поставок за февраль и март, поэтому мы не будем их рассматривать и перейдем к остальным запросам.
Запрос «Незаказанные товары»
Рисунок
19 - Запрос «Незаказанные товары» в
конструкторе запросов
Как можно догадаться из названия, этот запрос выводит информацию о тех товарах, которые ни разу не были заказаны в течение всего времени.
Ниже приведен SQL вид запроса:
SELECT Инструменты.Код, Инструменты.Название, Инструменты.Цена
FROM Инструменты LEFT JOIN Поставка ON Инструменты.Код = Поставка.[Код инструмента]
WHERE (((Поставка.[Код инструмента]) Is Null));
Рисунок
20 - Результат выполнения запроса
«Незаказанные товары»
Запрос «Продажа за январь»
Рисунок
21 - Запрос «Продажа за январь» в
конструкторе запросов
Следующий запрос рассматривает количество проданного товара за месяц и выводит количество и сумму по каждому инструменту.
Ниже приведен SQL вид запроса:
SELECT Продажа.Дата, Инструменты.Название, Продажа.Количество, ([Инструменты]![Цена]*[Продажа]![Количество])+(([Инструменты]![Цена]*[Продажа]![Количество])*0.25) AS Сумма
FROM Инструменты INNER JOIN Продажа ON Инструменты.Код = Продажа.[Код инструмента]
WHERE (((Продажа.Дата) Like "*.01.2022"))
ORDER BY Продажа.Дата;
Рисунок
22 - Результат выполнения запроса «Продажи
за январь»
Запросы «Продажи за февраль» и «Продажи за март» работают аналогичным образом.
Запрос «Топ продаж»
Рисунок
23 - Запрос «Топ продаж» в конструкторе
запросов
Данный запрос выводит список самых продаваемых товаров за весь период (сюда входит товар, который покупали не менее 4 раз).
Ниже приведен SQL вид запроса:
SELECT Инструменты.Код, Инструменты.Название, Sum(Продажа.Количество) AS [Sum-Количество]
FROM Инструменты INNER JOIN Продажа ON Инструменты.Код = Продажа.[Код инструмента]
GROUP BY Инструменты.Код, Инструменты.Название
HAVING (((Sum(Продажа.Количество))>=4))
ORDER BY Sum(Продажа.Количество);
Рисунок
24 - Результат выполнения запроса «Топ
продаж»
Рисунок
25 - Запрос «Непроданные товары» в
конструкторе запросов
Запрос «Непроданные товары»
По аналогии с запросом «Незаказанные товары», данный запрос выводит информацию о тех товарах, которые не были проданы.
Ниже приведен SQL вид запроса:
SELECT Инструменты.Код, Инструменты.Название, Инструменты.Цена
FROM Инструменты LEFT JOIN Продажа ON Инструменты.Код = Продажа.[Код инструмента]
WHERE (((Продажа.[Код инструмента]) Is Null));
Рисунок
26 - Результат выполнения запроса
«Непроданные товары»
Рисунок
27 - Запрос «Наличие на складе» в
конструкторе запросов
Запрос «Наличие на складе» на создание таблицы
Рисунок
28 - Таблица «Наличие», создаваемая
запросом
Данный запрос является запросом на создание таблицы. Выбираются те товары, которые на текущую дату имеются на складе. Все данные собираются и заносятся в специально создаваемую таблицу «Наличие»:
Ниже приведен SQL вид запроса:
SELECT Поставка.Дата, Поставщики.Название, Инструменты.Название, Поставка.Количество, Инструменты.Цена INTO Наличие
FROM Поставщики INNER JOIN (Инструменты INNER JOIN Поставка ON Инструменты.Код = Поставка.[Код инструмента]) ON Поставщики.Код = Поставка.[Код поставщика]
WHERE (((Поставка.Дата)<=Now()));