Смекни!
smekni.com

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

Мастер баз данных 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. Поле «№_заказа» в таблице «Заказ» содержит фиксированный набор значений, источником которых является таблица «Заказ товар»