Автор работы: Пользователь скрыл имя, 09 Июня 2014 в 12:13, курсовая работа
С помощью моей базы можно без затруднений и специальных знаний вести базу данных, которая позволяет делать все операции с клиентами, заказами, производителями. То есть добавлять, изменять, обновлять, удалять и просматривать все имеющиеся и вводимые данные.
Кнопочная форма позволяет просматривать отчеты о клиентах и товарах, делать заказы и обновлять данные.
На примере моей базы данных для торговой организации, я предоставила к рассмотрению и анализу практически все функции и возможности Microsoft Accsess. Эта программа достаточна проста и удобна в обращении. Построение таблиц, отчетов, запросов, форм упрощается при использовании мастеров (форм, таблиц и т.п.).
I. Введение ........................................................................................................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. Заключение.................................................................................................33
Ассоциативная сущность (ассоциация) – это связь вида "многие-ко-многим" между двумя или более сущностями или экземплярами сущности.
Это теория. Для наглядности покажу на примере торговой организации:
Стержневая сущность
«Заказ», «Заказчик», «Поставщик»
Заказ (Заказ, код_заказа, количество, цена, характеристика)
Заказчик (Заказчик, телефон, адрес, название_фирмы)
Поставщик (ФИО, телефон, адрес, страна)
Характеристическая сущность
«Выполненные_заказы», «Заказанные_товары»
Выполненные_заказы (код_заказа, заказчик, дата_заказа, цена, дата_выполнения, количество)
Заказанные_товары (код_товара, количество)
Таблицы
Моя База Данных содержит 7 таблиц:
-Товар
- Производитель_товара
- Описание_товара
- Клиенты
- Заказы
- Заказанные_товары
- Выполненные заказы
Во всех таблицах в режиме конструктора указываются первичные или внешние ключи.
Таблица Товар: предназначена для хранения всех товаров с полным их описанием. Например, кем произведены, по какой цене и в каком количестве.
Номер – номер товара. Поле является счетчиком.
Тип - тип товара. Он берется из таблицы Описание_товара
Производитель – производитель товара. Берется из таблицы производитель_товаров.
Характеристика – поле, где котором содержится описание товара. Данные вводятся вручную в режиме конструктора.
Цена – цена товара за одну единицу. Значение вводится вручную.
Количество – количество товаров. Если значение равно нулю, то товара нет в наличие. Цена вводится от руки. Чтобы систематизировать столбец, надо указать формат поля.
Дата поставки – день, месяц и год поставки товара. Вводится вручную.
Количество проданных товаров – от руки вводится количество товара. Поле заполняется с помощью запроса (заказанные_товары и клиенты)
Таблица Производитель_товара: содержит 4 поля:
Производитель – Поставщик фирма-производитель товара.
Адрес, страна и телефон – более подробная информация. Все поля таблицы заполняются пользователем.
Таблица Описание_товара: состоит из двух полей:
Тип – тип товара (например: шубы, шорты и т.п.)
Описание типа – поле предоставляет более полную информацию о товаре.
Таблица Клиенты: дает описание всех клиентов данной организации.
В таблице указывается ФИО, адрес и телефон клиента.
Таблица Заказы: состоит из четырех полей :
Код заказа – код текущего заказа (тип поля – счетчик)
Фирма – заказчики (представители фирм). Данные берутся из таблицы Клиенты.
Дата заказа – дата поступления заказа, данное поле заполняется автоматически.
Выполнен – Да / Нет. Если в этом поле стоит «галочка», то данный заказ уже выполнен (значение true).
Таблица Заказанные_товары: содержит три поля :
Номер - код заказа.
КодТовара – код данного товара. Берется из таблицы Товар и вводится автоматически.
Количество – количество заказанного товара, которое не должно превышать количество товаров данного типа в таблице Товар.
Таблица Выполненные заказы: содержит шесть полей, заполняется с помощью запроса и дает информацию про выполненные товары.
Код – код выполненного заказа
Фирма – название фирмы-заказчика.
Дата заказа – дата поступления заказа.
Дата выполнения – дата выполнения заказа.
Количество – общее количество заказанных товаров любого типа.
Сумма заказа – стоимость всех товаров в заказе.
2.2 Нормализация
Нормализация — процесс уменьшения избыточности информации в таблицах реляционной БД и, как следствие, построения оптимальной структуры таблиц и связей.
Можно выделить 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(Заказанные_товары!
FROM Заказы INNER JOIN (Товар INNER JOIN Заказанные_товары ON Товар.Номер = Заказанные_товары.[Код товара]) ON Заказы.[Код заказа] = Заказанные_товары.Номер
GROUP BY Заказы.[Код заказа], Заказы.Фирма, Заказы.[Дата заказа], Date(), Заказы.Выполнен
HAVING (((Заказы.Выполнен)=False));
Запрос «Заказанные_товары и клиенты»
Данный запрос при выполнении выводит все заказанные товары, название фирмы – клиента, которая заказала товар, требуемое количество товара и его цену, а также дату поступления заказа на данный товар. Выборка осуществляется только по тем товарам, которые были заказаны хотя бы один раз. А данные для этого запроса находятся в таблицах Заказанные_товары, Клиенты и Товар.
В режиме SQL запрос выглядит так:
SELECT Заказы.Фирма, Товар.Тип, Товар.Производитель, Товар.Характеристика, Товар.Цена, Заказы.[Дата заказа], Товар.Количество
FROM (Клиенты INNER JOIN Заказы ON Клиенты.Фирма=Заказы.Фирма)
INNER JOIN (Товар INNER JOIN Заказанные_товары
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 Товар.Количество = Товар.Количество-Заказанные_
WHERE (((Заказы.Выполнен)=False));
Запрос на «Создание таблицы уцененных товаров».
Этот запрос создает новую таблицу с уцененными товарами. Он работает следующим образом :
Информация о работе Разработка базы данных торговой организации