Автор: Пользователь скрыл имя, 12 Сентября 2011 в 08:37, курсовая работа
Задача: спроектировать базу данных интернет-магазина. Для этого в первую очередь необходимо описать предметную область: Магазин осуществляет продажу различных категорий товаров. Без ограничения покупателей по возрасту. Оплату можно производить при помощи кредитной карты, интернет-кошельков, наличными при доставке или при получении товара в одной из точек выдачи, расположенных в Москве.
1. Описание предметной области. Постановка задачи
2. Выбор средств проектирования и СУБД.
3. Построение инфологической (концептуальной) модели предметной области
4. Проектирование логической структуры базы данных
5. Выявление полного перечня ограничений целостности, присущего данной предметной области
6. Проектирование физической структуры базы данных
7. Организация ввода данных в БД
8. Организация корректировки БД
9. Описание информационных потребностей пользователей и выбор способов их реализации
10. Разработка интерфейса
11. Реализация проекта в среде конкретной СУБД
12. Список использованной литературы
При проектировании нашей базы данных ввод информации осуществлялся при помощи форм. Экранные формы создаются либо в режиме конструктора, либо автоматически по выбранным полям таблицы или запроса. Корректировка данных возможна в этих же формах.Учитывая, что наш проект предполагает осуществление поступления данных в базу через сайт Интернет-магазина – для удобства работы с нашей базой данных мы реализовали специальные формы, частично эмулирующие его работу. Эти формы имеют следующий вид:
Экранная форма «Оформление заказа»
Экранная форма «Регистрация»
Экранная форма «Сайт»
Организация корректировки БД
Корректировка
данных в базе данных может осуществляться
путем корректировки данных в
форме. В основных таблицах нашей
БД, например «Заказ», «Доставка», «Покупатель»
основная информация чаще всего поступает
извне, а именно с сайта интернет-магазина,
то формы, соответствующие этим таблицам
созданы прежде всего для корректировки
(заполнения остальными данными, например
назначение ответственного сотрудника
на поступивший заказ или
Описание информационных потребностей пользователей и выбор способов их реализации
Информационные
потребности пользователей
Запрос на получение товарного чека
SELECT Товар.id_товара AS ID, Товар.Название_товара AS Наименование, Count([Заказ Товар].id_товара) AS Количество, Sum(Товар.Цена_товара) AS Цена, [Заказ Товар].[№_заказа] AS [Товарный чек №]
FROM Товар INNER JOIN [Заказ Товар] ON Товар.id_товара = [Заказ Товар].id_товара
GROUP BY Товар.id_товара, Товар.Название_товара, [Заказ Товар].[№_заказа]
HAVING
[Заказ Товар].[№_заказа]=[
Запрос на получение гарантийного талона
SELECT
Товар.id_товара, Товар.Название_товара,
Count([Заказ Товар].id_товара)
FROM Товар INNER JOIN [Заказ Товар] ON Товар.id_товара = [Заказ Товар].id_товара
GROUP BY Товар.id_товара, Товар.Название_товара, Товар.Гарантия_мес, [Заказ Товар].[№_заказа]
HAVING
[Заказ Товар].[№_заказа]=[
Запрос на получение информации о самой покупаемой продукции
SELECT TOP 5 Товар.Название_товара, Count([Заказ Товар].id_товара)
FROM Товар INNER JOIN [Заказ Товар] ON Товар.id_товара = [Заказ Товар].id_товара
GROUP BY Товар.Название_товара
ORDER BY Count([Заказ Товар].id_товара) DESC;
Запрос на получение информации о самой рейтинговой продукции
SELECT Товар.Название_товара, Avg([Товар/Оценка].Оценка) AS [Средняя оценка]
FROM Товар INNER JOIN [Товар/Оценка] ON Товар.id_товара = [Товар/Оценка].id_товара
GROUP BY Товар.Название_товара
ORDER BY Avg([Товар/Оценка].Оценка) DESC;
Запрос на получение сводки доходности предприятия по различным категориям продукции
SELECT DISTINCT Товар.Категория_товара, Sum(Товар.Цена_товара)
FROM Товар INNER JOIN (Заказ INNER JOIN [Заказ Товар] ON Заказ.[№_заказа] = [Заказ Товар].[№_заказа]) ON Товар.id_товара = [Заказ Товар].id_товара
GROUP BY Товар.Категория_товара, Заказ.Статус_заказа
HAVING
Заказ.Статус_заказа="выполнен"
Запрос на вывод новинок
SELECT TOP 5 Товар.Название_товара, Avg([Товар/Оценка].Оценка) AS [Средняя оценка], Товар.Цена_товара
FROM Товар LEFT JOIN [Товар/Оценка] ON Товар.id_товара = [Товар/Оценка].id_товара
GROUP BY Товар.Название_товара, Товар.Цена_товара, Товар.id_товара
ORDER BY Товар.id_товара DESC;
Запрос на выдачу информации о распределении проданного товара в зависимости от пола клиентов
SELECT Товар.Категория_товара, Покупатель.Пол, Count(Покупатель.Пол) AS Количество
FROM Товар INNER JOIN (Покупатель INNER JOIN (Заказ INNER JOIN [Заказ Товар] ON Заказ.[№_заказа] = [Заказ Товар].[№_заказа]) ON Покупатель.Логин = Заказ.Логин) ON Товар.id_товара = [Заказ Товар].id_товара
GROUP BY Товар.Категория_товара, Покупатель.Пол;
Запрос на историю заказов
SELECT Заказ.[№_заказа], Заказ.Дата_заказа, Заказ.Стоимость_заказа, Заказ.Логин
FROM Товар INNER JOIN (Заказ INNER JOIN [Заказ Товар] ON Заказ.[№_заказа] = [Заказ Товар].[№_заказа]) ON Товар.id_товара = [Заказ Товар].id_товара
GROUP BY Заказ.[№_заказа], Заказ.Дата_заказа, Заказ.Стоимость_заказа, Заказ.Логин
HAVING Заказ.Логин=[Введите логин];
Запрос на историю покупок
SELECT
Заказ.Логин, Товар.Название_
FROM Товар INNER JOIN (Заказ INNER JOIN [Заказ Товар] ON Заказ.[№_заказа] = [Заказ Товар].[№_заказа]) ON Товар.id_товара = [Заказ Товар].id_товара
GROUP
BY Заказ.Логин, Товар.Название_
HAVING
Заказ.Логин=[Введите логин] AND [Заказ
Товар].[№_заказа]=[Введите №
Вся
информация полученная в ходе выполнения
описанных выше запросов может быть
выведена как в виде таблиц для
просмотра, так и в виде сформированных
отчетов. Отчеты можно просмотреть
и вывести на печать. Отчеты, сформированные
в нашем проекте, имеют следующий
вид:
Товарный чек
Гарантийный талон
Отчет о новинках интернет-магазина
Отчет по самым рейтинговым товарам магазина
Отчет по самым популярным товарам магазина
История заказов
История покупок
Разработка интерфейса
При проектировании и разработке любой базы данных интерфейс играет важную роль. Он представляет собой совокупность средств и методов, при помощи которых пользователь взаимодействует с различными компонентами базы данных. Работа с нашей базой данных начинается с заставки. После просмотра заставки, пользователь попадает в главное меню, которое предназначено для предоставления пользователю удобной навигации по всем формам базы данных, которые сгруппированы по функциям. Главное меню содержит три раздела:
-Сайт
-Администрирование БД
-Отчеты
При
переходе на раздел сайт, пользователь
попадает на форму, эмулирующую работу
сайта. На котором можно
Реализация проекта в среде конкретной СУБД
Реализация
проекта разработки базы данных интернет-магазина
в среде СУБД MS Access является многступенчатым
трудоемким процессом, основые этапы
которого были подробно рассмотрены
выше. На основе ER-модели, созданной
в выбранном нами CASE-средства (CA ERwin
Data Modeler), была осуществлена автоматическая
генерация файлов данных в выбранной
нами среде. В процессе создания базы
данных было построено 13 взаимосвязанных
таблиц. Был также реализован контроль
целостности для каждого из ограничений,
выявленных нами ранее. С помощью SQL
были построены все необходимые
для удовлетворения информационных
потребностей пользователей БД запросы.
Следующим важнейшим этапом реализции
проекта была разработка пользовательского
интерфейса. Были созданы все необходимые
для обеспечения полноценной навигации
по базе данных элементы, включая главное
меню и различные подменю. Все экранные
формы создавались нами в режиме конструктора
и также редактировались средствами Visual
Basic в режиме просмотра кода. Заключительным
этапом реализации проекта стало создание
отчетов при помощи мастера создания отчетов
и впоследствии редактировались в режимах
макета и конструктора. В отчетах были
отображены результаты выполнения созданных
ранее запросов.
Список использованной литературы