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

Московский Государственный Университет Экономики Статистики и Информатики (МЭСИ)

Институт Компьютерных Технологий

Кафедра Прикладной информатики в экономике

















Курсовой проект

по курсу «Базы данных (2)»

на тему: «Проектирование базы данных интернет-магазина в СУБД MS ACCESS»





	Выполнили 

	студенты группы ДКИ-301:

	Руководитель:















Москва, 2010


Содержание

	

	1. Описание предметной области. Постановка задачи

	2. Выбор средств/методологии проектирования и СУБД.

	3. Построение инфологической (концептуальной) модели предметной области

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

	5. Выявление полного перечня ограничений целостности, присущего данной предметной области

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

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

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

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

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

	11. Реализация проекта в среде конкретной СУБД

	12. Список использованной литературы и Интернет-ресурсов

	


1. Описание предметной области. Постановка задачи



Задача: спроектировать базу данных интернет-магазина. Для этого в первую очередь необходимо описать предметную область:

Магазин осуществляет продажу различных категорий товаров. Без ограничения покупателей по возрасту. Оплату можно производить при помощи кредитной карты, интернет-кошельков, наличными при доставке или при получении товара в одной из точек выдачи, расположенных в Москве. Доставка товара осуществляется тремя способами (в зависимости от стоимости и габаритов заказа) в пределах и за пределами МКАД. Доставка осуществляется в любой день недели, как правило, на следующий день после оформления заказа.

Курьерская доставка

осуществляется только в пределах МКАД;

при оплате наличными за заказ не более 30 000р;

при общем весе заказа менее 2,5 кг;

при общем объеме заказа не превышающем 0,04 куб. метра, например: карта памяти, фотоаппарат, процессор или материнская плата;

доставка осуществляется в будние дни и в субботу с 10 до 19 часов 

стоимость услуги составляет 250р. при доставке только в пределах МКАД

Доставка легковым транспортом

осуществляется как в пределах МКАД, так и за пределами;

при оплате наличными за заказ не более 75 000р.;

при общем весе заказа менее 23 кг;

при общем объеме заказа не превышающем 0,25 куб. метра, например: системный блок, ЖК монитор, принтер;

доставка осуществляется в будние дни и в субботу с 10 до 19 часов 

стоимость услуги составляет 350р. при доставке в пределах МКАД и увеличивается при доставке за МКАД в зависимости от удаленности (каждый километр от МКАД – 15 рублей).

Доставка грузовым транспортом

осуществляется как в пределах МКАД, так и за пределами;

при общем объеме заказа свыше 0,25 куб. метра;

при общем весе заказа свыше 23 кг;

доставка осуществляется только в будние дни и в субботу с 10 до 19 часов;

стоимость услуги составляет 450р. при доставке в пределах МКАД и увеличивается при доставке за МКАД в зависимости от удаленности (каждый километр от МКАД – 20 рублей).

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

Интернет-магазин предлагает широкому кругу потребителей товары по различным категориям. Покупатель, зайдя на сайт магазина, выбирает товары, формируя корзину заказов, определяет вид доставки и оплаты, после чего заполняет форму заказа. Заказ автоматически регистрируется на сервере интернет-магазина, данные заказа должны поступить в БД интернет-магазина. При заказе покупатель может также связаться с менеджером и сделать заказ по телефону, в этом случае менеджер самостоятельно заполняет форму заказа.

В базе данных должен храниться перечень товаров с описанием их характеристик, так как основным назначением интернет-магазина является их продажа. 

В базе данных должны храниться:

1. Каталог товаров (описание товара, характеристики товара, размещение их по категориям). По каждому товару в БД должны храниться следующие характеристики:

	Название товара

	Цена

	Категория

	Подкатегория

	Разрешение на возврат товара (в российском законодательстве присутствуют ограничения на возврат некоторых категорий товаров)

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

	Габариты (вес, длина, ширина, высота)

	Изображение (необязательно)

	Гарантия в месяцах (может отсутствовать)

	Уникальные характеристики товара в зависимости от категории

	Отзывы покупателей (в виде оценки) (если есть)

Доступ к данному разделу БД имеют менеджеры, администраторы, клиенты, маркетологи. Редактирование данного раздела могут осуществлять менеджеры, администраторы.

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

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

2. Список поставщиков (описание поставщиков, сфера деятельности). По каждому поставщику в БД должны храниться следующие характеристики:

	Наименование поставщика

	Контактная информация (телефон, факс)

	Категория поставляемых товаров

	Прайс-лист

Доступ к данному разделу БД имеют, а также его редактирование могут осуществлять менеджеры по поставкам и администраторы. 

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

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

3. Список сотрудников. По каждому сотруднику в БД должны хранятся следующие характеристики:

ФИО

Контактная информация (телефон, факс)

Должность

Доступ к данному разделу БД имеют менеджеры, администраторы, клиенты, сотрудники отдела кадров.

Редактирование данного раздела могут осуществлять администраторы и сотрудники отдела кадров. В обязанности сотрудников отдела кадров будет входить своевременная корректировка данных о сотрудниках и добавление новых.

Для формирования заказа и его выполнения в БД должна храниться информация по покупателям.

4. Список покупателей. По каждому покупателю в БД хранятся следующие характеристики:

Логин 

Пароль

e-mail

ФИО

Телефон

Адрес (не обязателен, но обязателен при использовании услуги «доставка»)

Дата регистрации

Пол (можно не указывать)*

Дата рождения (если возраст меньше 14, то нельзя оплачивать заказ кредитной картой)

Образование (высшее, среднее и т.п., можно не указывать)*

	*Будет полезно при проведении маркетинговых исследований.

Доступ к данному разделу БД имеют менеджеры, администраторы, клиенты, курьеры. Редактирование данного раздела могут осуществлять администраторы и частично пользователи сервиса.

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

5. Кредитная карта. По каждой кредитной карте в БД хранятся следующие характеристики:

Номер кредитной карты

Имя владельца

Проверочный код

Срок истечения

Доступ к данному разделу БД имеют администраторы, клиенты. Редактирование данного раздела могут осуществлять администраторы и пользователи сервиса.

Для осуществления процесса купли-продажи товара и отслеживания статуса заказа в БД должна храниться информация о заказах.

6. Список заказов. По каждому заказу в БД хранятся следующие характеристики:

№ заказа

Дата и время заказа

Статус заказа (выполнено/не выполнено/отменено)

Стоимость заказа

Способ оплаты (наличные, кредитная карта)

Способ получения (доставка, самовывоз)

Доступ к данному разделу БД имеют менеджеры, администраторы, клиенты, курьеры. Редактирование данного раздела могут осуществлять администраторы, менеджеры и частично пользователи сервиса.

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

7. Список точек выдачи. По каждой точке выдачи в БД хранятся следующие характеристики:

Название

Адрес

Телефон (может быть несколько)

Время работы 

Схема проезда

Доступ к данному разделу БД имеют менеджеры, администраторы, клиенты, курьеры. Редактирование данного раздела могут осуществлять администраторы и менеджеры.

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

8. Список доставок по заказам. По каждой доставке в БД хранятся следующие характеристики 

Дата доставки

Время доставки

Суммарный вес заказа

Суммарный объем заказа

Статус доставки

Вид доставки

Удаленность от МКАД – км. (0, если в пределах)

Стоимость доставки

Доступ к данному разделу БД имеют менеджеры по продажам, администраторы, клиенты, курьеры, менеджеры отдела доставки. Редактирование данного раздела могут осуществлять администраторы и менеджеры

Для предметной области существуют следующие ограничения целостности:

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

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

Среди входных документов и других источников формирования внутренней базы данных интернет-магазина мы выделили:



1) Прайс-лист (поступает от поставщиков)

Номер

Артикул

Название

Категория

Цена

Габариты

Гарантия

Кол-во




















































2) Корзина заказов (поступает с сайта)

№ Заказа



Категория товара



Подкатегория товара



Название товара





3) Оформленный заказ (поступает с сайта)

№ заказа



Логин



Дата заказа



Время заказа



Стоимость заказа



Способ оплаты



Способ получения



Суммарный вес заказа



Суммарный объем заказа



Дата доставки



Время доставки



Удаленность от МКАД



Стоимость доставки



Вид доставки





4) Регистрация клиентов (поступает с сайта)

Логин



Пароль



E-mail



ФИО



Адрес



Дата рождения



Пол



Образование



Телефон 1



Телефон 2



Телефон 3



Дата регистрации



Номер кредитной карты



Имя владельца



Проверочный код



Срок истечения



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

Среди выходных документов мы выделили:

Товарный чек

Товарный чек

www.boris.ru

(495) 666-66-66

Товарный чек №

Дата

Продавец: ООО Борис



ID

Наименование

Кол-во

Цена



















Всего: сумма

Сумма прописью:

Оформлено: ООО Борис (печать)

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

Получил:______________________(Подпись)

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

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

www.boris.ru

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

Дата



ID

Наименование

Кол-во

Гарантия мес.











Оформлено: ООО Борис (печать)

3) Маркетинговый отчет

Распределение категория проданных товаров по полу

Дата



Категория товара

Пол

Количество









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

Новинки

Дата



Наименование товара

Средняя оценка

Цена









5) Сводка доходности по категориям товара

Сводка доходности по категориям

Дата



Категория

Сумма







Всего

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

Товары с наивысшими оценками

Дата



Наименование

Средняя оценка







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

Хиты продаж

Дата



Наименование

Продано







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

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

Дата

Логин



№ заказа

Дата заказа

Стоимость заказа









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

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

Дата

№ заказа

Логин



Наименование

Цена





	

	Сумма

10) Отчет по точкам выдачи (для сайта)

Точки выдачи



Название точки

Адрес точки

Время работы









2. Выбор средств/методологии проектирования и СУБД



При проектировании базы данных интернет-магазина после описания предметной области необходимо выбрать метод построения инфологической модели (ER-модели) и СУБД, в которой будет реализован проект. 

Для построения ER-модели была выбрана программа CA ERwin Data Modeler 7.3 (ERwin). Мы выбрали эту программу, потому что она позволяет наглядно отображать сложные структуры данных. Удобная в использовании графическая среда упрощает разработку базы данных и автоматизирует множество трудоемких задач, уменьшая сроки создания высококачественных и высокопроизводительных транзакционных баз данных. Наиболее важными для нас являются следующие возможности данного CASE-средства.

Поддержка нотации IDEF1x 

Возможность совместной работы группы проектировщиков

Описание структуры БД с помощью визуальных средств 

Автоматическая генерация файлов данных для любого типа СУБД

Уменьшение числа рутинных операций, что облегчает и сокращает работу 

Существует большое число СУБД. По функциональным возможностям СУБД бывают настольные (FoxPro, MS Access, Paradox) и корпоративные (Oracle, MS SQL Server, MySQL). Сравнивая настольные и корпоративные СУБД, можно отметить следующее: настольные СУБД просты в использовании, стоимость их эксплуатации дешевле; корпоративные СУБД имеют возможности администрирования, работы в Интернете, поддерживают большой объем данных и быстродейственны. 

Для построения самой базы данных нами была выбрана СУБД MS Access. Поскольку целью данной работы не является разработка и внедрение масштабной базы интернет-магазина и разработка интернет-сайта, а база разрабатывается в учебных целях – выбирать корпоративную СУБД нецелесообразно. Microsoft Access является наиболее популярной системой управления базами данных для операционной системы Windows. Возможности разработчиков программного обеспечения, а также методы и технологии решения этих задач постоянно изменяются и совершенствуются. И с каждой новой версией Access такие решения становятся достоянием самого широкого сообщества разработчиков и пользователей. 

Очень важным для нас является возможность просматривать и редактировать данные не только в виде таблицы, но и в виде формы. Представление БД в виде таблицы позволяет наблюдать сразу несколько записей одновременно, однако часто вид Таблица не позволяет полностью видеть всю информацию на экране. Формы позволяют забыть о неудобствах, возникающих при работе с таблицами, имеющими большое количество полей. В режиме Форма можно все внимание уделить одной записи, не пользуясь прокруткой для поиска нужного поля в длинной череде столбцов таблицы, а имея перед глазами всю информацию. Также для удобства работы с формой на ней можно разместить Элементы управления, например кнопки. Хочется отметить, что, так как мы проектируем базу данных интернет-магазина, то формы хорошо подойдут для эмуляции работы сайта. 

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

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



3. Построение инфологической (концептуальной) модели предметной области



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

Основным требованиями, предъявляемыми к инфологической модели, можно отнести следующие: 

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

должна быть понятна лицам, принимающим участие в создании и использовании.

Описание объектов ПО и связей между ними оказывает наибольшее влияние на проектирование структуры базы данных. Представим описание объектов и связей между ними в виде Базовой ER-модели:

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


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



На этапе логического проектирования необходимо определить типы и длины полей. После построения ER-модели в среде CA ERwin Data Modeler следует использовать метод прямого инжиниринга, позволяющий автоматически сгенерировать описание и структуру спроектированной базы данных в среде выбранной СУБД. Схема базы данных Интернет-магазина в среде MS ACCESS будет выглядеть следующим образом:






Товар (id_товара (счетчик(Длинное целое)), Цена_товара (Денежный), Возврат_разр (Логический), Вес_товара (Числовой(Одинарное с плавающей точкой)), Длина (Числовой(Одинарное с плавающей точкой)), Ширина (Числовой(Одинарное с плавающей точкой)), Высота (Числовой(Одинарное с плавающей точкой)), Изображение_товара (Поле объекта OLE), Уник_хар-ки (Поле МЕМО), Название_товара (Текстовый(200)), Категория_товара (Текстовый(100)), Подкатегория_товара (Текстовый(100)), Гарантия_мес (Числовой(Байт)))

Поставщик (Назв_поставщика (Текстовый(18)), E-mail (Текстовый(100)), Факс (Текстовый(30)), Телефон(Текстовый(50)), Прайс_лист (Гиперссылка))

Поставщик/категория (Категория_товара (Текстовый(100)), Назв_поставщика (Текстовый (18)))

Товар/оценка (id_товара (Числовой(Длинное целое)), Логин (Текстовый(30)), Оценка(Числовой(байт)))

Покупатель (Логин (Текстовый(30)), Пароль (Текстовый(30)), E-mail (Текстовый(100)), ФИО (Текстовый(100)), Адрес (Поле МЕМО), Дата_рождения (Дата/время), Дата_регистрации (Дата/время), Пол (Текстовый(1)), Образование (Текстовый(30)))

Покупатель/телефон (Телефон (Текстовый(50)), Логин (Текстовый(30))

Кредитная_карта (Номер_кред_карты (Текстовый(16)), Имя_владельца (Текстовый(100)), Проверочный_код (Числовой(Целое)), Срок_истечения (Дата/время), Логин (Текстовый(30)))

Заказ/товар (№_заказа (Числовой(Длинное целое)), id_товара (Числовой(Длинное целое))

Заказ (№_заказа (Числовой(Длинное целое)), Дата_заказа (Дата/время), Время_заказа (Дата/время), Статус_заказа (Текстовый(50)), Стоимость_заказа (Числовой(Длинное целое)), Способ_оплаты (Текстовый(30)), Способ_получения (Текстовый(30)), Логин (Текстовый(30)), Табельный_номер (Числовой(Длинное целое)), Название_точки(Текстовый(50)))

Доставка (№_заказа (Числовой(Длинное целое)), Суммарный_вес_заказа (Числовой(целое)), Суммарный_объем_заказа (Числовой(Длинное целое)), Дата_доставки(Дата/время), Время_доставки (Текстовый(30)), Удаленность_МКАД_км (Числовой (байт)), Стоимость_доставки (Денежный), Табельный_номер (Числовой(Длинное целое)), Статус_доставки (Текстовый(30)), Вид_доставки (Текстовый(40)))

Сотрудник (Табельный_номер (Счетчик(Длинное целое)), ФИО (Текстовый(100)), E-mail (Текстовый(100)), Должность (Текстовый(50)), Факс (Текстовый(30)), Телефон(Текстовый(50)))

Точка_выдачи (Название_точки (Текстовый(50)), Адрес_точки (Поле МЕМО), Время работы (Текстовый(15)), Схема_проезда(Поле объекта OLE))

Точка_выдач/Телефон (Телефон (Текстовый(50), Название_точки (Текстовый(50))



5. Выявление полного перечня ограничений целостности, присущего данной предметной области



Обеспечение целостности данных является важнейшей задачей при проектировании и эксплуатации систем обработки данных.

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

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

Помимо упомянутых нами на стадии описания предметной области ограничений целостности, во время разработки базы данных интернет-магазина нами также были выявлены многие другие ограничения. Большинство из них контролируются непосредственно в таблицах. Поскольку ввод всех данных в таблице осуществляется через разработанные нами вспомогательные формы, также существует достаточно большое количество ограничений, которые контролируются средствами конструктора форм, а также при помощи встроенного в среду MS ACCESS визуального объектно-ориентированного языка Visual Basic. Далее будут перечислены все ограничения целостности, которые будут контролироваться в данном курсовом проекте, а также выбранные способы реализации контроля целостности для каждого из ограничений.

Ограничения, контролируемые в таблицах:

1. Текстовое поле «E-mail» в таблице «Покупатель» не может содержать пробелов или кириллических символов

Аналогичным образом ограничение на данное поле контролируется в таблицах «Сотрудник» и «Поставщик»

2. Текстовое поле «ФИО» в таблице «Покупатель» не может содержать цифр

Аналогичным образом ограничение на данное поле контролируется в таблице «Сотрудник»

3. Значения поля «Дата_рождения» в таблице «Покупатель» не может превышать текущую дату и должно быть определенного вида, что контролируется маской ввода

4. Поле «Дата_регистрации» в таблице «Покупатель», как правило, содержит дату добавления записи в таблицу, не должно превышать текущую дату и должно быть определенного вида, который контролируется маской ввода

5. Поле «Пол» в таблице «Покупатель» содержит фиксированный набор значений, контролируемых списком подстановки

6. Поле «Образование» в таблице «Покупатель» содержит фиксированный набор значений, контролируемый списком подстановки

7. Поле «Логин» в таблице «Покупатель/телефон» содержит фиксированный набор значений, источником которых является таблица «покупатель»

Аналогичным образом ограничение на данное поле контролируется в таблицах «заказ», «кредитная карта» и «товар/оценка»

8. Поле «Телефон» в таблице «Покупатель/телефон» может содержать только цифры и должно быть определенного вида, который контролируется маской ввода 

Аналогичным образом ограничение на данное поле контролируется в таблицах «поставщик», «сотрудник» и «точка выдачи». Ограничение подобного рода установлено и на поле «факс» в таблицах «сотрудник» и «точка выдачи»

9. Поле «id_товара» в таблице «Товар/оценка» содержит фиксированный набор значений, источником которых является таблица «товар»

Аналогичным образом ограничение на данное поле контролируется в таблице «Заказ товар»

10. Поле «Оценка» в таблице «Товар/оценка» содержит фиксированный набор значений и позволяет оценить клиенту выбранный товар в диапазоне от 1 до 10 

11. Текстовое поле «Время_работы» в таблице «Точка выдачи» может содержать только цифры и должно быть определенного диапазонного вида, который контролируется маской ввода

12.Поле «Название_точки» в таблице «Точка выдачи/телефон» содержит фиксированный набор значений, источником которых является таблица «Точка выдачи»

Аналогичным образом ограничение на данное поле контролируется в таблице «заказ»

13. Поле «Должность» в таблице «Сотрудник» содержит фиксированный набор значений, контролируемый списком подстановки

14. Поле «Номер_кред_карты» в таблице «Кредитная карта» должно содержать только цифры и быть определенного вида, который контролируется маской ввода

15. Поле «Имя_владельца» в таблице «Кредитная карта» должно содержать только латинские буквы

16. Поле «Проверочный_код» в таблице «Кредитная карта» должно быть определенного вида, который контролируется маской ввода

17. Поле «Срок_истечения» в таблице «Кредитная карта» должно быть определенного вида, который контролируется маской ввода. При этом для использования кредитной карты срок её истечения должен превышать текущую дату или быть равным ей 

18. Поле «№_заказа» в таблице «Заказ» содержит фиксированный набор значений, источником которых является таблица «Заказ товар»

Аналогичным образом ограничение на данное поле контролируется в таблице «доставка» 

19. Поле «Дата_заказа» в таблице «Заказ» должно быть определенного вида, который контролируется маской ввода. По умолчанию выставляется дата добавления заказа и также контролируется невозможность ввода даты, превышающей текущую

20. Поле «Время_заказа» в таблице «Заказ» должно быть определенного вида, который контролируется маской ввода. По умолчанию выставляется время добавления заказа.

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

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

23. Поле «Способ_получения» в таблице «Заказ» содержит фиксированный набор значений, контролируемый списком подстановки

24. Поле «Табельный_номер» в таблице «Заказ» содержит фиксированный набор значений, источником которых является таблица «Сотрудник»

Аналогичным образом ограничение на данное поле контролируется в таблице «доставка» 

25. Поле «Удаленность_МКАД» в таблице «Доставка» содержит ограничение на дальность расстояния осуществляемой доставки. Доставка ограничена радиусом 60-ти км. От МКАД

26. Поле «Статус_доставки» в таблице «Доставка» содержит фиксированный набор значений, контролируемый списком подстановки

27. Поле «Вид_доставки» в таблице «Доставка» содержит фиксированный набор значений, контролируемый списком подстановки

Ограничения, контролируемые на формах посредством Visual Basic:

1. Для организации ограничений на доступ определенных сотрудников к различным таблицам через формы на них предусмотрен ввод пароля (1111) 

Private Sub Кнопка8_Click()

On Error GoTo Err_Кнопка8_Click

Dim stDocName As String

Dim stLinkCriteria, pas As String

pas = InputBox("Введите пароль", "Пароль")

If pas = "1111" Then

stDocName = ChrW(1055) & ChrW(1086) & ChrW(1089) & ChrW(1090) & ChrW(1072) & ChrW(1074) & ChrW(1097) & ChrW(1080) & ChrW(1082) & ChrW(47) & ChrW(1082) & ChrW(1072) & ChrW(1090) & ChrW(1077) & ChrW(1075) & ChrW(1086) & ChrW(1088) & ChrW(1080) & ChrW(1103)

DoCmd.OpenForm stDocName, , , stLinkCriteria

Else

MsgBox ("Пароль неверный")

End If

2. При редактировании формы «Доставка» осуществляется пересчет всех вычисляемых полей (Стоимость, Суммарный вес, Суммарный объем) при смене номера заказа, а также определяется вид доставки в зависимости от влияющих на его выбор факторов (Стоимость, Суммарный вес, Суммарный объем)

Private Sub №_заказа_Click()

Суммарный_вес_заказа.Requery

Суммарный_вес_заказа = Суммарный_вес_заказа.ItemData(0)

Суммарный_объем_заказа.Requery

Суммарный_объем_заказа = Суммарный_объем_заказа.ItemData(0)

Стоимость_заказа.Requery

Стоимость_заказа = Стоимость_заказа.ItemData(0)

If Удаленность_МКАД_км.Value = 0 Then Вид_доставки.Value = "Курьер"

If (Стоимость_заказа.Value > 30000) Or (Суммарный_вес_заказа.Value >= 2.5) Or (Суммарный_объем_заказа.Value > 4000) Then Вид_доставки.Value = "Легковой транспорт"

If (Суммарный_вес_заказа.Value >= 23) Or (Суммарный_объем_заказа.Value > 25000) Then Вид_доставки.Value = "Грузовой транспорт"

If Вид_доставки.Value = "Курьер" Then Стоимость_доставки.Value = 250

If Вид_доставки.Value = "Легковой транспорт" Then Стоимость_доставки.Value = 350 + Удаленность_МКАД_км.Value * 15

If Вид_доставки.Value = "Грузовой транспорт" Then Стоимость_доставки.Value = 450 + Удаленность_МКАД_км.Value * 20

3. При редактировании поля «Удаленность_от_МКАД_км» на форме «Доставка» осуществляется пересчет стоимости доставки в зависимости от его значения

Private Sub Удаленность_МКАД_км_LostFocus()

If Вид_доставки.Value = "Курьер" Then Стоимость_доставки.Value = 250

If Вид_доставки.Value = "Легковой транспорт" Then Стоимость_доставки.Value = 350 + Удаленность_МКАД_км.Value * 15

If Вид_доставки.Value = "Грузовой транспорт" Then Стоимость_доставки.Value = 450 + Удаленность_МКАД_км.Value * 20

End Sub

4. При обращении к форме «заказ» на основании номера заказа автоматически пересчитывается стоимость заказа

Private Sub №_заказа_Click()

Стоимость_заказа.Requery

End Sub

5. При обращении к форме «заказ» при определении способа получения заказа контролируется возможность ввода точки доставки в зависимости от его выбора

Private Sub Способ_получения_Click()

If Способ_получения.Value = "Доставка" Then

Название_точки.Value = " "

Название_точки.Visible = False

End If

If Способ_получения.Value = "Самовывоз" Then

Название_точки.Visible = True

End If

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

Private Sub Form_Current()

Me![Список12].SetFocus

Список12.ListIndex = 0

Поле14.Value = Список12.Value + 1

End Sub

7. При обращении к форме «Корзина заказов», эмулирующей подобный функционал сайта контролируется возможность осуществления оформления заказа только при условии добавления в корзину хотя бы одной единицы товара, а также невозможность выбора подкатегории, не принадлежащей выбранной категории 

Private Sub ПолеСоСписком2_Click()

ПолеСоСписком4.Value = ""

ПолеСоСписком6.Value = ""

If ПолеСоСписком2.Value <> "" And ПолеСоСписком4.Value <> "" And ПолеСоСписком6.Value <> "" Then

Кнопка18.Visible = True

Else

Кнопка18.Visible = False

End If

End Sub

Private Sub ПолеСоСписком4_Click()

ПолеСоСписком6.Value = ""

If ПолеСоСписком2.Value <> "" And ПолеСоСписком4.Value <> "" And ПолеСоСписком6.Value <> "" Then

Кнопка18.Visible = True

Else

Кнопка18.Visible = False

End If

End Sub

Private Sub ПолеСоСписком4_GotFocus()

Me.Refresh

End Sub

Private Sub ПолеСоСписком6_Click()

If ПолеСоСписком2.Value <> "" And ПолеСоСписком4.Value <> "" And ПолеСоСписком6.Value <> "" Then

Кнопка18.Visible = True

Else

Кнопка18.Visible = False

End If

End Sub

Private Sub ПолеСоСписком6_GotFocus()

Me.Refresh

End Sub

Аналогичным образом происходит проверка на категории и подкатегории при обращении к форме «Оценка», эмулирующей подобный функционал сайта

8. При обращении к форме «Оформление заказа», эмулирующей подобный функционал сайта, осуществляется пересчет всех вычисляемых полей (Стоимость, Суммарный вес, Суммарный объем) при смене номера заказа, а также определяется вид доставки в зависимости от влияющих на его выбор факторов (Стоимость, Суммарный вес, Суммарный объем)

Список69.Requery

Me![Список69].SetFocus

Список69.ListIndex = 0

№_заказа.Value = Список69.Value

Суммарный_вес_заказа.Requery

Me![Суммарный_вес_заказа].SetFocus

Суммарный_вес_заказа.ListIndex = 0

Суммарный_объем_заказа.Requery

Me![Суммарный_объем_заказа].SetFocus

Суммарный_объем_заказа.ListIndex = 0

Стоимость_заказа.Requery

Me![Стоимость_заказа].SetFocus

Стоимость_заказа.ListIndex = 0

If Удаленность_МКАД_км.Value = 0 Then Вид_доставки.Value = "Курьер"

If (Стоимость_заказа.Value > 30000) Or (Суммарный_вес_заказа.Value >= 2.5) Or (Суммарный_объем_заказа.Value > 4000) Then Вид_доставки.Value = "Легковой транспорт"

If (Суммарный_вес_заказа.Value >= 23) Or (Суммарный_объем_заказа.Value > 25000) Then Вид_доставки.Value = "Грузовой транспорт"

If Вид_доставки.Value = "Курьер" Then Стоимость_доставки.Value = 250

If Вид_доставки.Value = "Легковой транспорт" Then Стоимость_доставки.Value = 350 + Удаленность_МКАД_км.Value * 15

If Вид_доставки.Value = "Грузовой транспорт" Then Стоимость_доставки.Value = 450 + Удаленность_МКАД_км.Value * 20

9. При обращении к форме «Оформление заказа», эмулирующей подобный функционал сайта при редактировании поля «Удаленность_от_МКАД_км» на форме «Доставка» осуществляется пересчет стоимости доставки в зависимости от его значения

Private Sub Удаленность_МКАД_км_LostFocus()

If Вид_доставки.Value = "Курьер" Then Стоимость_доставки.Value = 250

If Вид_доставки.Value = "Легковой транспорт" Then Стоимость_доставки.Value = 350 + Удаленность_МКАД_км.Value * 15

If Вид_доставки.Value = "Грузовой транспорт" Then Стоимость_доставки.Value = 450 + Удаленность_МКАД_км.Value * 20

End Sub

10. При обращении к форме «Оформление заказа», эмулирующей подобный функционал сайта при редактировании поля «Логин» проверяется условие на его существование в БД для возможности оформления заказа

Dim i As Long, f As Boolean

Список144.Requery

Me![Список144].SetFocus

Список144.ListIndex = 0

f = False

For i = 0 To Список144.ListCount - 1

Список144.ListIndex = i

If Список144.Value = Логин.Value Then f = True

Next i

If f = False Then MsgBox ("Сначала зарегистрирутесь")

End Sub

Аналогичным образом происходит проверка при обращении к форме «Оценка товара клиентом», эмулирующей подобный функционал сайта

11. При обращении к форме «Регистрация», эмулирующей подобный функционал сайта при регистрации нового пользователя проверяются условия на обязательность заполнения определенных полей

Private Sub Кнопка70_Click()

On Error GoTo Err_Кнопка70_Click

 Dim stDocName As String

 stDocName = ChrW(1044) & ChrW(1086) & ChrW(1073) & ChrW(1072) & ChrW(1074) & ChrW(1080) & ChrW(1090) & ChrW(1100) & ChrW(32) & ChrW(1088) & ChrW(1077) & ChrW(1075) & ChrW(1080) & ChrW(1089) & ChrW(1090) & ChrW(1088) & ChrW(1072) & ChrW(1094) & ChrW(1080) & ChrW(1102)

 DoCmd.OpenQuery stDocName, acNormal, acEdit

 stDocName = ChrW(1044) & ChrW(1086) & ChrW(1073) & ChrW(1072) & ChrW(1074) & ChrW(1080) & ChrW(1090) & ChrW(1100) & ChrW(32) & ChrW(1090) & ChrW(1077) & ChrW(1083) & ChrW(1077) & ChrW(1092) & ChrW(1086) & ChrW(1085) & ChrW(32) & ChrW(49)

 DoCmd.OpenQuery stDocName, acNormal, acEdit

If Поле92 <> "" Then

 stDocName = ChrW(1044) & ChrW(1086) & ChrW(1073) & ChrW(1072) & ChrW(1074) & ChrW(1080) & ChrW(1090) & ChrW(1100) & ChrW(32) & ChrW(1090) & ChrW(1077) & ChrW(1083) & ChrW(1077) & ChrW(1092) & ChrW(1086) & ChrW(1085) & ChrW(32) & ChrW(50)

 DoCmd.OpenQuery stDocName, acNormal, acEdit

 End If

If Поле100 <> "" Then

 stDocName = ChrW(1044) & ChrW(1086) & ChrW(1073) & ChrW(1072) & ChrW(1074) & ChrW(1080) & ChrW(1090) & ChrW(1100) & ChrW(32) & ChrW(1090) & ChrW(1077) & ChrW(1083) & ChrW(1077) & ChrW(1092) & ChrW(1086) & ChrW(1085) & ChrW(32) & ChrW(51)

 DoCmd.OpenQuery stDocName, acNormal, acEdit

 End If

 If Номер_кред_карты <> "" Then

 stDocName = ChrW(1044) & ChrW(1086) & ChrW(1073) & ChrW(1072) & ChrW(1074) & ChrW(1080) & ChrW(1090) & ChrW(1100) & ChrW(32) & ChrW(1082) & ChrW(1088) & ChrW(1077) & ChrW(1076) & ChrW(1080) & ChrW(1090) & ChrW(1085) & ChrW(1091) & ChrW(1102) & ChrW(32) & ChrW(1082) & ChrW(1072) & ChrW(1088) & ChrW(1090) & ChrW(1091)

 DoCmd.OpenQuery stDocName, acNormal, acEdit

 End If

 DoCmd.SetWarnings False

 If Me.Dirty Then Me.Dirty = False

 DoCmd.Close

Exit_Кнопка70_Click:

 Exit Sub

Err_Кнопка70_Click:

 MsgBox Err.Description

Resume Exit_Кнопка70_Click

End Sub

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

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



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

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

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


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



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





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






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





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





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






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

 



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






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





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





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



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

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

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

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

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

Существует 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. Разработка интерфейса



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

Работа с нашей базой данных начинается с заставки.

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

Главное меню содержит три раздела:

Сайт 

Администрирование БД

Отчеты

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

Раздел «Администрирование БД» предназначен для сотрудников интернет-магазина. Доступ к каждому из подразделов защищен паролем и сотрудник имеет доступ только к тем, которые относятся к его должностным обязанностям.

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



11. Реализация проекта в среде конкретной СУБД



Реализация проекта разработки базы данных интернет-магазина в среде СУБД MS Access является многступенчатым трудоемким процессом, основые этапы которого были подробно рассмотрены выше. На основе ER-модели, созданной в выбранном нами CASE-средства (CA ERwin Data Modeler), была осуществлена автоматическая генерация файлов данных в выбранной нами среде. В процессе создания базы данных было построено 13 взаимосвязанных таблиц. Был также реализован контроль целостности для каждого из ограничений, выявленных нами ранее. С помощью SQL были построены все необходимые для удовлетворения информационных потребностей пользователей БД запросы.

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

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


12. Список использованной литературы и Интернет-ресурсов



Диго С.М. Базы данных: проектирование и использование: Учебник. – М.: Финансы и статистика, 2005.

Диго С. М. Создание баз данных в среде СУБД Access: Учебное пособие. – М., 2001.

Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных. Учебник для вузов. – М.: Корона-принт, 2004.

Кузин А.В., Левонисова С.В. Базы данных: Учебник. – М.: Academia, 2010.

Туманов В.Е. Основы проектирования реляционных баз данных: Учебное пособие. – М.: Интернет-университет информационных технологий, 2010.

Илюшечкин В. М. Основы использования и проектирования баз данных: Учебное пособие. – М.: Юрайт, 2010.

Преснякова Г.В. Проектирование интегрированных реляционных баз данных: Учебник. – М.: КДУ, 2007.

Джон Дей, Крейг Ван Слайк, Рэймонд Фрост Базы данных. Проектирование и разработка: Учебник. – М.: НТ Пресс, 2007.

Домбровская Г.Р., Новиков Б.А. Настройка приложений баз данных: Учебник – М.: BHV, 2006.

 http://www.sql.ru/ – портал про язык SQL и клиент/серверные технологии.

 http://sql.itsoft.ru/ – интернет-справочник с примерами по языку SQL.

 http://www.cyberguru.ru/database/database-theory/ – статьи по теории баз данных.

http://www.seopro.ru/theory/2009/10/887.html - рекомендации по созданию интернет-магазинов.

http://iomarket.com.ua/sozdanie-internet-magazina-s-nulya-shag-za-shagom/ - статья о создании интернет-магазина с нуля.

http://www.i2r.ru/static/255/out_23600.shtml - статья о разработке эффективной структуры интернет-магазина.

http://www.shop2you.ru/articles/internet_shop.shtml - статья об устройстве интернет-магазина.