Название
таблицы
|
Ключевое
поле
|
Товар
Производитель_товара Описание_товара Клиенты Заказы Заказанные_товары
Выполненные заказы
|
Схема данных
Отношения - это правила, поддерживаемые на
уровне механизма реализации СУБД.
В моей схеме данных таблицы связаны следующим
образом. При добавлении нового товара, продавец выбирает тип (товара), который
с помощью мастера подстановки берется из таблицы Описание_товара.
Также продавец выбирает производителя (из
таблицы Производитель_товара). Далее он от руки вводит характеристику товара,
его цену и количество в таблицу Товар.
При поступлении нового заказа, продавец в
таблицу Заказы вводит заказанные товары, нажав на «галочку» в графе «выполнен»,
а затем выбирает Фирму - заказчика.
Таблица Заказанные товары заполняется
автоматически и хранит информацию, которая необходима для таблицы Заказы.
Ниже представлена моя схема данных:
Рис.
Таблица Выполненные заказы заполняется с помощью
запроса, которому не требуются никакие связи, поэтому в данной схеме данных
этой таблицы нет.
Запросы
В моей БД содержатся 14 запросов всех типов:
· запрос на обновление
· запрос на удаление
· запрос на создание
· запрос на выборку.
Ниже я опишу каждый из запросов.
Рис.
Запрос «Все клиенты»
Данный запрос при выполнении дает информацию обо
всех клиентах организации - название фирмы, адрес, телефон и e-mail.
Таблица
Данные для этого запроса берутся из таблицы
Клиенты
Клиенты.Фирма, Клиенты.Адрес, Клиенты.Телефон,
Клиенты.[E-mail]Клиенты;
Запрос «Выборка по ценам типа товаров»
Данный запрос группирует все записи в таблице
Товар по типу товаров и выводит:
· максимальную цену товара
· минимальную цену товара
· общее количество товаров в таблице
Товар
При выполнении запрос выглядит так:
Таблица
Данные для создания запроса берутся из таблицы
Товар, а для подсчета максимальной и минимальных цен в режиме SQL
вводим данные и с помощью Sum
выводятся нужные нам цены.
Товар.Тип, Min(Товар.Цена) AS [Минимальная
Цена], Max(Товар.Цена) AS [Максимальная Цена], Sum(Товар.Количество) AS [Общее
Кол-во]
FROM ТоварBY
Товар.Тип;
Запрос «Добавление заказа»
Данный запрос добавляет заказы в таблицу
Выполненные заказы невыполненные в таблице Заказы. Запрос вносит в эту таблицу
следующие данные ФИО клиента, Код заказа и Дату заказа, которые он берет из
таблицы Заказы. Этот запрос проверяет, является поле Выполнен (в таблице
Заказы) ложным или нет. Если да, то он берет эти данные, и подставляет в
таблицу Выполненные заказы. Также в эту таблицу вставляются данные о том, когда
был выполнен заказ, количество товаров, заказанное данным клиентом и сумму
покупки.
INTO [Выполненные заказы] ( [Код заказа], Фирма,
[Дата заказа], [Дата выполнения], Количество, [Сумма заказа] )Заказы.[Код
заказа], Заказы.Фирма, Заказы.[Дата заказа], Date() AS [Дата выполнения],
Sum(Товар.Количество) AS Количество,
Sum(Заказанные_товары!Количество*Товар!Цена) AS СуммаЗаказы INNER JOIN (Товар
INNER JOIN Заказанные_товары ON Товар.Номер = Заказанные_товары.[Код товара])
ON Заказы.[Код заказа] = Заказанные_товары.НомерBY Заказы.[Код заказа],
Заказы.Фирма, Заказы.[Дата заказа], Date(),
Заказы.Выполнен(((Заказы.Выполнен)=False));
Запрос «Заказанные_товары и клиенты»
Данный запрос при выполнении выводит все
заказанные товары, название фирмы - клиента, которая заказала товар, требуемое
количество товара и его цену, а также дату поступления заказа на данный товар.
Выборка осуществляется только по тем товарам, которые были заказаны хотя бы
один раз. А данные для этого запроса находятся в таблицах Заказанные_товары,
Клиенты и Товар.
Таблица
SELECT Заказы.Фирма, Товар.Тип,
Товар.Производитель, Товар.Характеристика, Товар.Цена, Заказы.[Дата заказа],
Товар.Количество(Клиенты INNER JOIN Заказы ON Клиенты.Фирма=Заказы.Фирма) INNER
JOIN (Товар INNER JOIN Заказанные_товары ON Товар.Номер=Заказанные_товары.id)
ON Заказы.[Код заказа]=Заказанные_товары.Номер;
Запрос «Выборка всех клиентов с введенной буквы»
При запуске этого запроса он требует ввести
букву или несколько букв, с которых начинается название фирмы - клиента (данные
из таблицы Клиенты). Данный запрос довольно прост, но необходим. Например если
продавец помнит первую букву или несколько букв, то он запускает данный запрос
и вводит, ту букву, которую помнит, а в ответ на введенную букву запрос выводит
название всех фирм на указанную букву.
Клиенты.Фирма, Клиенты.Адрес,
Клиенты.ТелефонКлиенты(((Клиенты.Фирма) Like [Введите] & "*"));
Запрос «Типы товара»
Простой запрос, который позволяет выводить
товары (из таблицы Товар) по определенному типу. При этом дается описание
товара - производитель, характеристика, цена, количество.
Ниже представлен результат выполнения данного
запроса при введении товара «Шубы» :
Таблица
Товар.Тип, Товар.Производитель,
Товар.Характеристика, Товар.Цена, Товар.КоличествоТовар(((Товар.Тип) Like
[Введите тип] & "*"));
Запрос «Обновление заказа»
Запрос, который обновляет количество товаров (в
том числе и проданных) в таблице Товар, а также он обновляет поле Выполнен в
таблице Заказы. Запрос работает следующим образом: если в таблице Заказы в поле
Выполнен есть заказы с ложным значением (False),
то данный запрос обновляет все товары, которые содержатся в данном заказе в
таблице Товар.
Например: В таблице Заказы есть заказ, состоящий
из 5 товаров «Шорты, мини», содержащий название фирмы-заказчика и дату заказа.
Данный заказ не выполнен, т.е. в поле Выполнен стоит значение ложь. Запустив
запрос «Обновление заказа», происходит следующее: значение выполнен в таблице
становится истиной (True),
количество имеющихся на складе товаров «Шорты, мини» уменьшается на 5, в то
время как количество проданных на столько же увеличивается.
Заказы INNER JOIN (Товар INNER JOIN
Заказанные_товары ON (Товар.Номер = Заказанные_товары.[Код товара]) AND
(Товар.Номер = Заказанные_товары.[Код товара])) ON Заказы.[Код заказа] =
Заказанные_товары.Номер SET Товар.Количество =
Товар.Количество-Заказанные_товары.[Количество], Заказы.Выполнен = True,
Товар.[Количество проданных] = Товар.[Количество
проданных]+Заказанные_товары.[Количество](((Заказы.Выполнен)=False));
Запрос «Создание таблицы уцененных товаров»
Этот запрос создает новую таблицу с уцененными
товарами. Он работает следующим образом :
При запуске запроса необходимо ввести процент
уценения товаров, а затем дату. Запрос выбирает все товары, дата поставки
которых соответствует введенной дате, и копирует их в новую таблицу Уцененные
товары.
Например :
Я запускаю запрос и ввожу процент = 15
Рис.
и дату 07.01.05. В итоге у меня получается
таблица, содержащая 2 записи:
Таблица
По сравнению с таблицей Товар цены действительно
снизились на 15%.
Таблица
Запрос «Сумма всех товаров»
Этот запрос позволяет определить, сколько на
складе товара каждого типа и его цену, а также общую стоимость всей партии
каждого товара. Все данные для запроса из таблицы Товар. Я считаю этот запрос
полезным, так как с его помощью можно определить общую стоимость всех имеющихся
товаров. Чтобы посчитать сумму всех товаров, надо в режиме SQL
умножить цену всех товаров на их количество.
Таблица
SELECT Товар.Тип, Товар.Производитель,
Товар.Характеристика, Товар.Цена, Товар.Количество, Товар.Цена*Товар.Количество
AS [Общая стоимость]Товар;Запрос на добавление;
Запрос «Сумма покупок клиентов»
Запрос выбирает всех клиентов, совершивших
заказ, и выдает информацию о сумме заказа, о количестве заказанных товаров и о
выполнении заказа.
Таблица
Данный запрос необходим для определения частых
клиентов и для рассмотрения возможности предоставления льгот и скидок
постоянным заказчикам. Для построения запроса данные берутся из таблиц Заказы,
Заказанные товары, Клиенты, Товар.
Заказы.Фирма, Заказы.[Дата заказа],
Sum(Заказанные_товары. Количество) AS [Кол-во],
Sum(Заказанные_товары!Количество*Товар!Цена) AS Сумма, Заказы.Выполнен(Клиенты
INNER JOIN Заказы ON Клиенты.Фирма=Заказы.Фирма) INNER JOIN (Товар INNER JOIN
Заказанные_товары ON Товар.Номер=Заказанные_товары.id) ON Заказы.[Код
заказа]=Заказанные_товары.НомерBY Заказы.Фирма, Заказы.[Дата заказа],
Заказы.Выполнен;
Запрос «Товар, цена которого больше заданной»
Запрос, позволяющий выбирать товары с наибольшей
стоимостью. В запросе выводятся товары (таблица Товар), у которых цена выше
заданной суммы. Я ввела сумму 14200 и получила результат:
Таблица
Товар.Тип, Товар.Производитель, Товар.Характеристика,
Товар.ЦенаТовар(((Товар.Цена)=[введите цену] Or (Товар.Цена)>[введите
цену]));
Запрос «Товары с высокой стоимостью»
Запрос делает выборку из таблицы Товар по
стоимости товаров и выдает информацию о 10 наиболее дорогостоящих.
При построении запроса я использовала в режиме SQL
предикат TOP10 - вывод
на экран первые 10 товаров (без повторения). Помимо цен и самих товаров,
прилагается еще характеристика товара и его фирма- производитель.
Таблица
SELECT TOP 10 Товар.Тип, Товар.Производитель,
Товар.Характеристика, Товар.Цена
FROM ТоварBY
Товар.Цена
DESC;
Запрос «Удаление Поставщика»
Данный запрос очень прост, но полезен. Он
позволяет удалять из базы производителя, с которым мы больше не работаем, не
открывая таблицы Производитель_товара.
Поставщик_товара.Поставщик,
Поставщик_товара.ПоставщикПоставщик_товара(((Поставщик_товара.Поставщик)=[введите
поставщика]));
Заключение
Я разработала базы данных торговой организации
по поставке одежды. С помощью моей базы можно без затруднений и специальных
знаний вести базу данных, которая позволяет делать все операции с клиентами,
заказами, производителями. То есть добавлять, изменять, обновлять, удалять и
просматривать все имеющиеся и вводимые данные.
Кнопочная форма позволяет просматривать отчеты о
клиентах и товарах, делать заказы и обновлять данные.
На примере моей базы данных для торговой
организации, я предоставила к рассмотрению и анализу практически все функции и
возможности Microsoft
Accsess. Эта программа
достаточна проста и удобна в обращении. Построение таблиц, отчетов, запросов,
форм упрощается при использовании мастеров (форм, таблиц и т.п.).
Я считаю, что база данных в среде СУБД MS
Access практическом
применении удобна и достаточно эффективна. Все зависит от пользователя, объема
располагаемых им знаний и умения ими воспользоваться. Говоря о себе могу
сказать, что эта программа имеет много полезных функций и в дальнейшем мне
очень пригодится.
Список использованной литературы
.ИОСУ.
Методические указания к курсовому проектированию.
.Лекции
по информационному обеспечению систем управления.