Разработка базы данных торговой организации

Автор работы: Пользователь скрыл имя, 19 Марта 2012 в 13:41, курсовая работа

Краткое описание

Базы данных - совокупность данных, организованная по определенным правилам, предусматривающая общие принципы описания, хранения, манипулирования данными, независимыми от прикладных программ.
СУБД – система управления базами данных – совокупность программ, предназначенных для управления БД и возможности получения пользователями необходимой информации из базы. В задачи СУБД входят следующие задачи:
 Формирование и поддержание БД
 Обработка информации
 Прием запросов
 Предоставление информации пользователям
 Обеспечение целостности и реорганизации ценностей БД
 Организация совместной работы пользователей

Содержание

Введение ........................................................................................................5
II. 1.Создание базы данных ..............................................................................6
1.1 Этапы проектирования базы данных ..................................................6
1.Определение цели создания базы данных.............................................6
2.Определение таблиц, которые должна содержать база данных.......6
3.Присвоение ключевых полей .................................................................7
4.Редактирование структуры базы данных.............................................7
5.Добавление данных и создание других объектов базы данных........7
1.2 Инфологическая модель.......................................................................8
2. Даталогическая модель.............................................................................10
2.1 Структура моей базы данных. Таблицы ...........................................10
2.2 Нормализация .....................................................................................13
2.3 Схема данных ......................................................................................14
3. Создание пользовательского интерфейса ..............................................16
3.1 Запросы ................................................................................................16
3.2 Формы ..................................................................................................25
3.3 Отчеты ..................................................................................................29
3.4 Макросы ...............................................................................................31
4.Основной интерфейс базы данных ...........................................................32
III. Заключение................................................

Прикрепленные файлы: 1 файл

Курсовая работа по Базам Данных пример.doc

— 582.50 Кб (Скачать документ)

Тип – тип товара (например: шубы, шорты и т.п.)

Описание типа – поле предоставляет более полную информацию о товаре.

 

Таблица Клиенты: дает описание всех клиентов данной организации.

В таблице указывается ФИО,  адрес и телефон клиента.

Таблица Заказы: состоит из четырех полей :

Код заказа – код текущего заказа (тип поля – счетчик)

Фирма – заказчики (представители фирм). Данные берутся из таблицы Клиенты.

Дата заказа – дата поступления заказа, данное поле заполняется автоматически.

Выполнен – Да / Нет. Если в этом поле стоит «галочка», то данный заказ уже выполнен (значение true).

 

Таблица Заказанные_товары: содержит три поля :

Номер -  код заказа.

КодТовара – код данного товара. Берется из таблицы Товар и вводится автоматически.

Количество – количество заказанного товара, которое не должно превышать количество товаров данного типа  в таблице Товар.

 

Таблица Выполненные заказы: содержит шесть полей, заполняется с помощью запроса и дает информацию про выполненные товары.

Код – код выполненного заказа

Фирма – название фирмы-заказчика.

Дата заказа – дата поступления заказа.

Дата выполнения – дата выполнения заказа.

Количество – общее количество заказанных товаров любого типа.

Сумма заказа – стоимость всех товаров в заказе.

 

 

 

 

 

2.2 Нормализация

Нормализация — процесс уменьшения избыточности информации в таблицах реляционной БД и, как следствие, построения оптимальной структуры таблиц и связей.

Можно выделить 4 основных правила, которыми следует руководствоваться при проектировании и последующей нормализации таблиц базы данных:

 

1.      Каждое поле любой таблицы должно быть уникальным.

2.      Каждая таблица должна иметь уникальный первичный ключ, который может состоять из одного или нескольких полей таблицы.

3.      Для каждого значения первичного ключа должно быть одно и только одно значение любого из столбцов данных, и это значение должно относиться к объекту таблицы.

4.      Должна иметься возможность изменять значения любого поля (не входящего в первичный ключ), и это не должно повлечь за собой изменение другого поля.

 

 

Созданная мною таблица удовлетворяет вышеизложенным требованиям:

1 НФ (Нормальная Форма):

Название таблицы

Ключевое поле

Товар

Производитель_товара

Описание_товара

Клиенты

Заказы

Заказанные_товары

Выполненные заказы

Номер, Производитель, Характеристика

Производитель

Тип

Фирма

Код заказа

Id

Код заказа

 

2 НФ:

выполняются ограничения 1НФ, и каждый не ключевой атрибут функционально полно зависит от составного первичного ключа.

3 НФ:

все неключевые атрибуты отношения взаимно независимы и полностью зависят от первичного ключа.

Таким образом, база данных удовлетворяет всем требованиям нормализации таблиц и Третья нормальная форма – окончательный результат нормализации моей Базы данных.

 

 

2.3 Схема данных

Отношения – это правила, поддерживаемые на уровне механизма реализации СУБД. Различают три типа отношений:

 

-         Отношение «один-к-одному»: для каждой строки в одной таблице существует не более одной строки связанной таблицы.

-         Отношение «один-ко-многим»: одна таблица не содержит вообще или имеет набор связанных «дочерних» записей из другой таблицы.

-         Отношение «многие-ко-многим»: для каждой строки первой таблицы может существовать набор строк в другой таблице и наоборот. Такая связь организуется, как правило, при помощи третьей, связующей таблицы, содержащей значения первичных ключей обеих таблиц в качестве внешних ключей.

При разработке БД необходимо принимать во внимание правила обеспечения целостности данных (обеспечивает каскадное обновление

записей в связанных таблицах)

 

В моей схеме данных таблицы связаны следующим образом. При добавлении нового товара, продавец выбирает тип (товара), который с помощью мастера подстановки берется из таблицы Описание_товара.

 

 

Также продавец выбирает производителя (из таблицы Производитель_товара). Далее он от руки вводит характеристику товара, его цену и количество в таблицу Товар.

При поступлении нового заказа, продавец в таблицу Заказы вводит заказанные товары, нажав на «галочку» в графе «выполнен»,  а затем выбирает Фирму – заказчика.

Таблица Заказанные товары заполняется автоматически и хранит информацию, которая необходима для таблицы Заказы.

Ниже представлена моя схема данных:

 

Таблица Выполненные заказы  заполняется с помощью запроса, которому не требуются никакие связи, поэтому в данной схеме данных  этой таблицы нет.

 

 

3. Создание пользовательского интерфейса

3.1 Запросы

В моей БД содержатся 14 запросов всех типов:

      запрос на обновление

      запрос на удаление

      запрос на создание

      запрос на выборку.

Ниже я опишу каждый из запросов.

 

Запрос «Все клиенты»

Данный запрос при выполнении дает информацию обо всех клиентах организации – название фирмы, адрес, телефон и e-mail.

Данные для этого запроса берутся из таблицы Клиенты.

В режиме SQL запрос выглядит так:

SELECT Клиенты.Фирма, Клиенты.Адрес, Клиенты.Телефон, Клиенты.[E-mail]

FROM Клиенты;

 

Запрос «Выборка по ценам типа товаров»

Данный запрос группирует все записи в таблице Товар по типу товаров и выводит :

      максимальную цену  товара

      минимальную цену товара

      общее количество товаров в таблице Товар

При выполнении запрос выглядит так:

Данные для создания запроса берутся из таблицы Товар, а для подсчета максимальной и минимальных цен в режиме SQL вводим данные и с помощью Sum выводятся нужные нам цены.

В режиме SQL запрос выглядит так:

SELECT Товар.Тип, Min(Товар.Цена) AS [Минимальная Цена], Max(Товар.Цена) AS [Максимальная Цена], Sum(Товар.Количество) AS [Общее Кол-во]

FROM Товар

GROUP BY Товар.Тип;

 

Запрос «Добавление заказа»

Данный запрос добавляет заказы в таблицу Выполненные заказы невыполненные в таблице Заказы.  Запрос вносит в эту таблицу следующие данные ФИО клиента, Код заказа и Дату заказа, которые он берет из таблицы Заказы. Этот запрос проверяет, является поле Выполнен (в таблице Заказы) ложным или нет. Если да, то он берет эти данные, и подставляет в таблицу Выполненные заказы. Также в эту таблицу

вставляются данные о том, когда был выполнен заказ, количество товаров, заказанное данным клиентом и сумму покупки.

В режиме SQL запрос выглядит так:

INSERT INTO [Выполненные заказы] ( [Код заказа], Фирма, [Дата заказа], [Дата выполнения], Количество, [Сумма заказа] )

SELECT Заказы.[Код заказа], Заказы.Фирма, Заказы.[Дата заказа], Date() AS [Дата выполнения], Sum(Товар.Количество) AS Количество, Sum(Заказанные_товары!Количество*Товар!Цена) AS Сумма

FROM Заказы INNER JOIN (Товар INNER JOIN Заказанные_товары ON Товар.Номер = Заказанные_товары.[Код товара]) ON Заказы.[Код заказа] = Заказанные_товары.Номер

GROUP BY Заказы.[Код заказа], Заказы.Фирма, Заказы.[Дата заказа], Date(), Заказы.Выполнен

HAVING (((Заказы.Выполнен)=False));

 

Запрос «Заказанные_товары и клиенты»

Данный запрос при выполнении выводит все заказанные товары, название фирмы – клиента, которая заказала товар, требуемое количество товара и его цену, а также дату поступления заказа на данный товар. Выборка осуществляется только по тем товарам, которые были заказаны хотя бы один раз. А данные для этого запроса находятся в таблицах Заказанные_товары, Клиенты и Товар.

 

В режиме SQL запрос выглядит так:

SELECT Заказы.Фирма, Товар.Тип, Товар.Производитель, Товар.Характеристика, Товар.Цена, Заказы.[Дата заказа], Товар.Количество

FROM (Клиенты INNER JOIN Заказы ON Клиенты.Фирма=Заказы.Фирма) INNER JOIN (Товар INNER JOIN Заказанные_товары ON Товар.Номер=Заказанные_товары.id) ON Заказы.[Код заказа]=Заказанные_товары.Номер;

 

«Запрос на Выборку всех клиентов с введенной буквы».

При запуске этого запроса он требует ввести букву или несколько букв, с которых начинается название фирмы – клиента (данные из таблицы Клиенты). Данный запрос довольно прост, но необходим. Например если продавец помнит первую букву или несколько букв, то он запускает данный запрос и вводит, ту букву, которую помнит, а в ответ на введенную букву запрос выводит название всех фирм на указанную букву.

В режиме SQL  данный запрос выглядит так :

SELECT Клиенты.Фирма, Клиенты.Адрес, Клиенты.Телефон

FROM Клиенты

WHERE (((Клиенты.Фирма) Like [Введите] & "*"));

 

«Запрос по типу товара»

Простой запрос, который позволяет выводить товары (из таблицы Товар) по определенному типу. При этом дается описание товара – производитель, характеристика, цена, количество.

Ниже представлен результат выполнения данного запроса при введении товара «Шубы» :

 

В режиме SQL запрос выглядит так:

SELECT Товар.Тип, Товар.Производитель, Товар.Характеристика, Товар.Цена, Товар.Количество

FROM Товар

WHERE (((Товар.Тип) Like [Введите тип] & "*"));

 

 

 

Запрос на обновление «Обновление заказа».

Запрос, который обновляет количество товаров (в том числе и проданных) в таблице Товар, а также он обновляет поле Выполнен в таблице Заказы. Запрос работает следующим образом: если в таблице Заказы в поле Выполнен есть заказы с ложным значением (False), то данный запрос обновляет все товары, которые содержатся в данном заказе в таблице Товар.

 

Например : В таблице Заказы есть заказ, состоящий из 5 товаров «Шорты, мини», содержащий название фирмы-заказчика и дату заказа. Данный заказ не выполнен, т.е. в поле Выполнен стоит значение ложь. Запустив запрос «Обновление заказа», происходит следующее: значение выполнен в таблице становится истиной (True), количество  имеющихся на складе товаров «Шорты, мини» уменьшается на 5, в то время как количество проданных на столько же увеличивается.

 

В режиме SQL запрос выглядит так:

UPDATE Заказы INNER JOIN (Товар INNER JOIN Заказанные_товары ON (Товар.Номер = Заказанные_товары.[Код товара]) AND (Товар.Номер = Заказанные_товары.[Код товара])) ON Заказы.[Код заказа] = Заказанные_товары.Номер SET Товар.Количество = Товар.Количество-Заказанные_товары.[Количество], Заказы.Выполнен = True, Товар.[Количество проданных] = Товар.[Количество проданных]+Заказанные_товары.[Количество]

WHERE (((Заказы.Выполнен)=False));

 

Запрос на «Создание таблицы уцененных товаров».

Этот запрос создает новую таблицу с уцененными товарами. Он работает следующим образом :

При запуске запроса необходимо ввести процент уценения товаров, а затем дату. Запрос выбирает все товары, дата поставки которых соответствует введенной дате, и копирует их в новую таблицу Уцененные товары.

Например :

Я запускаю запрос и ввожу процент  = 15

и дату 07.01.05. В итоге у меня  получается таблица, содержащая 2 записи:

По сравнению с таблицей Товар цены действительно снизились на 15%.

 

В режиме SQL запрос выглядит так:

SELECT Товар.Тип, Товар.Производитель, Товар.Характеристика, Товар.Цена*(1-[Введите процент уценения]/100) AS Выражение2, Товар.[Дата поставки] INTO [Уцененные товары]

FROM Товар

WHERE (((Товар.[Дата поставки])=[Введите дату]));

 

Запрос «Сумма всех товаров»

Этот запрос позволяет определить,  сколько на складе товара каждого типа и его цену, а также общую стоимость всей партии каждого товара. Все данные для запроса из таблицы Товар. Я считаю этот запрос полезным, так как с его помощью можно определить общую стоимость всех имеющихся

 

товаров. Чтобы посчитать сумму всех товаров, надо в режиме SQL умножить цену всех товаров на их количество.

(сортировка по типу)

В режиме SQL запрос выглядит так:

SELECT Товар.Тип, Товар.Производитель, Товар.Характеристика, Товар.Цена, Товар.Количество, Товар.Цена*Товар.Количество AS [Общая стоимость]

FROM Товар;Запрос на добавление;

 

Запрос «Сумма покупок клиентов»

Запрос выбирает всех клиентов, совершивших заказ, и выдает информацию о сумме заказа, о количестве заказанных товаров и о выполнении заказа.

Данный запрос необходим для определения частых клиентов и для рассмотрения возможности предоставления льгот и скидок постоянным заказчикам. Для построения запроса данные берутся из таблиц Заказы, Заказанные товары, Клиенты, Товар.

 

В режиме SQL запрос выглядит так:

SELECT Заказы.Фирма, Заказы.[Дата заказа], Sum(Заказанные_товары.Количество) AS [Кол-во], Sum(Заказанные_товары!Количество*Товар!Цена) AS Сумма, Заказы.Выполнен

FROM (Клиенты INNER JOIN Заказы ON Клиенты.Фирма=Заказы.Фирма) INNER JOIN (Товар INNER JOIN Заказанные_товары ON Товар.Номер=Заказанные_товары.id) ON Заказы.[Код заказа]=Заказанные_товары.Номер

GROUP BY Заказы.Фирма, Заказы.[Дата заказа], Заказы.Выполнен;

 

«Товар,  цена которого больше заданной»

Запрос, позволяющий выбирать товары с наибольшей стоимостью. В запросе выводятся товары (таблица Товар), у которых цена выше заданной суммы.

Я ввела сумму 14200 и получила  результат:

В режиме SQL запрос выглядит так:

SELECT Товар.Тип, Товар.Производитель, Товар.Характеристика, Товар.Цена

FROM Товар

WHERE (((Товар.Цена)=[введите цену] Or (Товар.Цена)>[введите цену]));

 

Запрос на «Товары с высокой стоимостью»

Запрос делает выборку из таблицы Товар по стоимости товаров и выдает информацию о 10 наиболее дорогостоящих.

При построении запроса я использовала в режиме SQL предикат TOP10 – вывод на экран первые 10 товаров (без повторения). Помимо цен и самих товаров, прилагается еще характеристика товара и его фирма- производитель.

 

 

В режиме SQL запрос выглядит так:

SELECT TOP 10 Товар.Тип, Товар.Производитель, Товар.Характеристика, Товар.Цена

Информация о работе Разработка базы данных торговой организации