Смекни!
smekni.com

Проектирование базы данных интернет-магазина в СУБД MS ACCESS (стр. 5 из 6)

EndSub

предметный область информационный потребность

6. Проектирование физической структуры базы данных

Физическая модель – это привязка логической модели к конкретной среде хранения и методам хранения данных. При проектировании физической модели базы данных необходимо описать среду и метод хранения информации. Для этого необходимо изучить особенности организации данных выбранной СУБД.

Для проектирования базы данных для Интернет-магазина была выбрана СУБД MSAccess. Для хранения данных в этой СУБД используются таблицы. В них хранится вся информация о предметной области. Наша база данных включает несколько взаимосвязанных таблиц. Объекты, которые были описаны при построении инфологической модели предметной области, в базе данных являются таблицами.

Представим описание объектов и связей между ними в виде физической ER-модели, сованной на методологии IDEF1X, созданной в выбранном для проектирования CASE-средстве CA ERwin Data Modeler.


На рисунках ниже представлены разработанные таблицы:

Таблица «Товар»

Таблица «Поставщик/категория»


Таблица «Товар/оценка»

Таблица «Покупатель»

Таблица «Кредитная_карта»


Таблица «Заказ/товар»

Таблица «Доставка»


Таблица «Сотрудник»

Таблица «Точка_выдачи»

7. Организация ввода данных в БД

База данных состоит из взаимосвязанных таблиц, которые наполняются записями. Ведение базы данных подразумевает под собой возможность управления записями: их добавление, изменение, удаление. Реализация данных возможностей возлагается на СУБД.

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

- через раздел СУБД «Таблицы», производя действия по изменению, добавлению или удалению непосредственно в таблице;

- через раздел СУБД «Формы», выполняя необходимые действия в таблице через интерфейс формы;

- через раздел СУБД «Запросы», выполняя запросы на обновление, добавление или удаление данных.

Существует 3 способа ввода данных: ввод с клавиатуры; сохранение данных, сформированных иными программными средствами; импорт из других источников. В нашей базе данных мы использовали ввод с клавиатуры. В процессе ввода информации были использованы следующие приемы: перенос значений полей из предыдущих записей; замена ввода выбором из списка, вспомогательные запросы для полей, которые необходимо вычислять (напр. суммарный вес или общая стоимость заказа).

Ввод информации в базу данных может осуществляться путем ввода данных в таблицу. Но такой способ имеет многие очевидные недостатки. Поэтому для этих целей обычно используются экранные формы. Формы – это окна, через которые пользователь взаимодействует с программным кодом приложения и объектами данных. Ввод данных при помощи форм очень простой в использовании. С помощью форм также можно осуществлять полноценную навигацию по таблице.

При проектировании нашей базы данных ввод информации осуществлялся при помощи форм. Экранные формы создаются либо в режиме конструктора, либо автоматически по выбранным полям таблицы или запроса. Корректировка данных возможна в этих же формах.

Учитывая, что наш проект предполагает осуществление поступления данных в базу через сайт Интернет-магазина – для удобства работы с нашей базой данных мы реализовали специальные формы, частично эмулирующие его работу. Эти формы имеют следующий вид:


Экранная форма «Оформление заказа»

Экранная форма «Регистрация»


Экранная форма «Сайт»

8. Организация корректировки БД

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

9. Описание информационных потребностей пользователей и выбор способов их реализации

Информационные потребности пользователей выражаются в следующем: пользователям базой данных необходимо находить нужную им информацию в БД, просматривать ее, выводить на печать. Для этих целей использую отчеты и запросы. Запросов может быть создано довольно много, поэтому реализованы лишь самые необходимые. К ним относятся:

Запрос на получение товарного чека

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 [Заказ Товар].[№_заказа]=[Введите № заказа];

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


Товарный чек

Гарантийный талон


Отчет о новинках интернет-магазина

Отчет по самым рейтинговым товарам магазина

Отчет по самым популярным товарам магазина


История заказов

История покупок

10. Разработка интерфейса

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