- •Содержание
- •Введение
- •1 Постановка задачи
- •Описание и анализ бизнес-процесса
- •1.2.4 Бизнес-правила
- •1.2.5 Требования к программе
- •1.2.6 Перечень вводимой информации
- •1.3.2 Форма «Оформление заказа»
- •1.3.3 Форма «Создание пользователя»
- •1.3.4 Форма «Новая поставка»
- •1.3.5 Форма «Обратная связь»
- •1.3.6 Форма записи гостевой книги
- •1.4 Описание результатной (выходной) информации
- •1.4.1 Форма документа «Каталог товаров»
- •1.4.2 Форма документа «Карточка товара»
- •1.4.3 Форма «Товар на складе»
- •1.4.4 Форма «Полученные заказы»
- •1.4.5 Форма «Пользователи»
- •1.5 Разработка базы данных
- •1.5.1 Определение сущностей
- •1.5.2 Определение взаимосвязей между сущностями
- •1.5.3 Задание первичных и альтернативных ключей
- •1.5.4 Приведение модели к требуемому уровню нормальной формы
- •1.5.5 Физическое описание модели
- •1.6 Описание алгоритма решения задачи
- •1.6.1 Разработка пользовательского интерфейса
- •1.6.2 Выбор и обоснование языка программирования
- •2 Программная документация
- •2.1 Описание применения
- •2.1.1 Назначение программы
- •2.1.2 Условия применения
- •2.1.3 Описание задачи
- •2.1.4 Входные и выходные данные
- •2.2 Описание программы
- •2.2.1 Общие сведения
- •2.2.2 Функциональное назначение
- •2.2.3 Используемые технические средства
- •2.2.4 Вызов и загрузка
- •2.2.5 Входные данные
- •2.2.6 Выходные данные
- •2.3 Руководство оператора
- •2.3.1 Назначение программы
- •2.3.4 Сообщения оператору
- •3 Контрольный пример
- •Список литературы
1.5.4 Приведение модели к требуемому уровню нормальной формы
Приведение модели базы данных к третьей нормальной форме
Отношение находится в третьей нормальной форме, если оно находится во второй нормальной форме и каждый не ключевой атрибут не транзитивно зависит от первичного ключа, т.е. выполняются условия:
выполнены условия второй нормальной формы;
каждое не ключевое поле не должно зависеть от другого не ключевого поля;
внутри каждой сущности должны отсутствовать транзитивные связи.
С учетом этого в информационной модели необходимо изменить список атрибутов в сущности «Товары в заказе». В связи с возникшей зависимостью в сущности «Товары в заказе» атрибута «Сумма заказа» от атрибутов «Цена» и «Количество» этот атрибут будет являться вычисляемым полем. Вычисление будет производиться по формуле:
С учетом сделанных изменений в информационной модели представим базу данных в третьей нормальной форме (табл. 3).
Таблица 3 – Информационная модель данных в третьей нормальной форме
СУЩНОСТЬ |
АТРИБУТЫ |
ЗАПИСЬ |
Уникальный ключ записи Имя посетителя Почтовый адрес посетителя Сообщение Дата/время |
ЗАКАЗ |
Номер Уникальный ключ заказа Идентификатор клиента Статус Дата/время Способ доставки Дополнительная информация |
ПОСТАВКА |
Уникальный ключ поставки Идентификатор товара Поставщик Цена Дата/время Количество |
ТОВАР |
Уникальный ключ товара Наименование Тип Жанр Дата выхода Артикул Описание Разработчик Издатель Издатель в России Системные требования Изображение Количество Цена Дополнительные материалы Является ли популярным Является ли новым Доступен ли для предзаказа Является ли удаленным |
КЛИЕНТ |
Уникальный ключ клиента Фамилия Имя Отчество Номер паспорта Номер телефона Адрес электронной почты Регион Город Улица Номер дома Корпус Квартира Логин Пароль Дополнительная информация |
ТОВАРЫ В ЗАКАЗЕ |
Уникальный ключ заказа Уникальный ключ товара Количество Сумма заказа |
Построим диаграмму взаимосвязи между атрибутами сущностей в третьей нормальной форме, которая представлена на рис. 16.
Рисунок 16 – Информационная модель базы данных
1.5.5 Физическое описание модели
Пятый этап состоит в физическом описании модели. На этом этапе создаются проекты таблиц (структуры), которые будут в дальнейшем реализовываться в конкретной системе управления базами данных на машинных носителях информации.
База данных состоит из 6 таблиц. Структура базы данных приведена ниже.
Таблица 4 – Сущность «Запись»
Имя поля |
Тип поля |
Размер поля |
Примечание |
idguest_book |
Numeric |
25 |
Уникальный ключ записи. Использует счётчик |
name |
Character |
25 |
Имя посетителя |
Character |
50 |
Почтовый адрес посетителя |
|
msg |
Character |
65535 |
Сообщение |
datetime |
Дата/время |
ГГГГ-ДД-ММ ЧЧ:ММ:СС |
Дата/время |
Таблица 5 – Сущность «Заказ»
Имя поля |
Тип поля |
Размер поля |
Примечание |
num |
Numeric |
25 |
Номер заказа. Счётчик. |
idorder |
Character |
50 |
Уникальный ключ заказа |
users_idusers |
Numeric |
25 |
Идентификатор клиента |
status |
Character |
255 |
Статус |
datetime |
Дата/время |
ГГГГ-ДД-ММ ЧЧ:ММ:СС |
Дата/время |
deliverytype |
Character |
45 |
Способ доставки |
extra |
Character |
255 |
Дополнительная информация |
Таблица 6 – Сущность «Товары в заказе»
Имя поля |
Тип поля |
Размер поля |
Примечание |
orders_idorder |
Character |
50 |
Уникальный ключ заказа |
software_idsoftware |
Numeric |
25 |
Уникальный ключ товара |
quantity |
Numeric |
3 |
Количество товара |
Таблица 7 – Сущность «Поставка»
Имя поля |
Тип поля |
Размер поля |
Примечание |
idshippings |
Numeric |
25 |
Уникальный ключ поставки |
software_idsoftware |
Numeric |
25 |
Уникальный ключ товара |
vendor |
Character |
45 |
Наименование поставщика |
price |
Numeric |
6 |
Цена товара у поставщика |
date |
Дата/время |
ГГГГ-ДД-ММ ЧЧ:ММ:СС |
Дата/время поставки |
quantity |
Numeric |
3 |
Количество |
Таблица 8 – Сущность «Товар»
Имя поля |
Тип поля |
Размер поля |
Примечание |
idsoftware |
Numeric |
25 |
Уникальный ключ товара |
name |
Character |
45 |
Наименование товара |
type |
Character |
45 |
Тип (программа/игра) |
genre |
Character |
100 |
Жанр |
date |
Дата/время |
ГГГГ-ДД-ММ |
Дата выхода |
articleNumber |
Character |
6 |
Количество |
description |
Character |
65535 |
Описание |
developer |
Character |
255 |
Разработчик |
publisher |
Character |
100 |
Издатель |
publisherrus |
Character |
100 |
Издатель в России |
requirements |
Character |
65535 |
Системные требования |
image |
Character |
45 |
Ссылка на изображение |
quantity |
Numeric |
3 |
Количество на складе |
price |
Numeric |
6 |
Цена |
extra |
Character |
65535 |
Дополнительные материалы |
popular |
Logical |
1 |
Является ли популярным |
new |
Logical |
1 |
Является ли новым |
preorder |
Logical |
1 |
Доступен ли для предзаказа |
deleted |
Logical |
1 |
Является ли удаленным |
Таблица 9 – Сущность «Клиент»
Имя поля |
Тип поля |
Размер поля |
Примечание |
idusers |
Numeric |
25 |
Уникальный ключ клиента |
lastname |
Character |
45 |
Фамилия |
firstname |
Character |
45 |
Имя |
secondname |
Character |
45 |
Отчество |
passport |
Character |
20 |
Номер паспорта |
phone |
Character |
20 |
Телефон |
Character |
45 |
Адрес электронной почты |
|
region |
Character |
45 |
Регион |
city |
Character |
45 |
Город |
street |
Character |
45 |
Улица |
housenum |
Character |
10 |
Номер дома |
householdbuilding |
Character |
10 |
Корпус |
apartment |
Numeric |
5 |
Квартира |
login |
Character |
45 |
Логин |
password |
Character |
45 |
Пароль |
extra |
Character |
255 |
Дополнительная информация |
