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

В ходе рассмотрения бизнес – процессов было принято решение разработать АРМ для экономиста, ведущего учёт экономических показателей, выполняющего следующие функции:

· ввод и редактирование данных о товарах предприятия;

· ввод и редактирование данных о поставках;

· ввод и редактирование данных о поставщиках и магазинах;

· хранение форм первичных документов;

· просмотр данных;

· формирование статистических отчётов.

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

Сейчас определим взаимосвязи между сущностями. Они наглядно представлены в таблице 2.1.

Таблица 2.1.

Связи между сущностями

Вид связи Сущность Сущность
1:М Поставщик Поставка
1:М Товар Поставка
1:М Магазин Поставка
1:1 Данные Товарных Накладных Поставка
1:М Товарная группа Товар

А теперь перейдём к атрибутам. Необходимо выделить атрибут или набор атрибутов, которые могли бы однозначно определить экземпляр сущности (потенциальные ключи). Так, для сущности Товары потенциальным ключом является атрибут Наименование. Но данный атрибут является строковым, и использовать его в качестве первичного ключа было бы нерационально. Поэтому введем дополнительный атрибут Код_товара, который присваивался бы экземпляру сущности Товары при внесении его в БД и не менялся за все время существования данной записи в БД.

Для однозначной идентификации экземпляра сущности Поставка введем атрибут Код_Поставки, для сущности Магазин Код_магазина, для сущности Поставщик Код_поставщика, для сущности Накладная № Накладной, для сущности Товарная группа – Код_товарной группы Также введем внешние ключи для связи сущностей: атрибуты Код_поставщика, Код_магазина и Код_товара в сущности Поставка.

Далее необходимо внести не ключевые атрибуты.

Таким образом, мы получили 7 отношений:

· Товар (Код товара, Наименование, Единица измерения);

· Магазин (Код магазина, Наименование, Адрес, Номер телефона);

· Поставщик (Код поставщика, Наименование, Адрес, Номер телефона, Банковские реквизиты);

· Поставки (Код поставки, Код_поставщика, Код_товара, Код_магазина, Количество, Дата поставки, Текущая цена);

· Товарная группа (Код_товарной группы, Наименование);

· Накладная (№ накладной, Дата составления);

· Товарный отчет (№ документа, Код_магазина, Дата составления, Остаток на приход, Итого по приходу, Расход, Итого по расходу, Остаток).

· Справка по товарам (№ документа, Код_магазина, Дата составления, Товарные группы, Розница, Остаток).

Далее проводится приведение модели к требуемому уровню нормальной формы. Соответствие модели какой-либо нормальной форме показывает, насколько оптимально спроектирована модель.

Первая нормальная форма

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

Вторая нормальная форма

Схема отношения находится во второй нормальной форме (2НФ) тогда и только тогда, когда отношение находится в 1НФ и нет неключевых атрибутов, зависящих от части сложного ключа. В нашем случае все схемы отношений удовлетворяют данному условию, т.е. схема БД находится в 2НФ.

Третья нормальная форма

Отношение находится в третьей нормальной форме (3НФ) тогда и только тогда, когда отношение находится в 2НФ и все неключевые атрибуты взаимно независимы. Атрибуты называются взаимно независимыми, если ни один из них не является функционально зависимым от другого.

В итоге мы получим примерную схему будущей базы данных рисунок 2.2.

Глава 3. Разработка логической структуры базы данных - student2.ru

Рис. 2.2. Схема данных

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

Таблица 2.2.

Структура таблицы «Товар»

№ п/п   Название поля Тип данных   Свойства поля   Описание
1. Код_товара Числовой Размер поля - Целое, Ключевое, Индексированное (Совпадения не допускаются) Уникальный код товара
2. Наименование Текстовый Размер поля – 50, Индексированное (Совпадения допускаются), Обязательное Название товара
· Единица измерения Текстовый Размер поля – 10, Индексированное (Совпадения допускаются), Обязательное В каких единицах измеряется
· Товарная группа Текстовый Размер поля – 50, Индексированное (Совпадения допускаются) К какой товарной группе относится товар

Таблица 2.3.

Структура таблицы «Поставщик»

№ п/п   Название поля Тип данных   Свойства поля   Описание
1. Код_поставщика Числовой Размер поля - Целое, Ключевое, Индексированное (Совпадения не допускаются) Уникальный код поставщика
2. Наименование Текстовый Размер поля – 50, Индексированное (Совпадения не допускаются), Обязательное Наименование поставщика
3. Адрес Поле МЕМО Индексированное (Совпадения не допускаются) Контактная информация
4. Номер телефона Поле МЕМО Индексированное поле (Совпадения не допускаются) Контактная информация
5. Банковские реквизиты Поле МЕМО Индексированное (Совпадения не допускаются)  

Таблица 2.4.

Структура таблицы «Магазин»

№ п/п   Название поля Тип данных   Свойства поля   Описание
1. Код_магазина Числовой Размер поля - Целое, Ключевое, Индексированное (Совпадения не допускаются) Уникальный код магазина
2. Наименование Текстовый Размер поля – 50, Индексированное (Совпадения не допускаются), Обязательное Наименование магазина
3. Адрес Поле МЕМО Индексированное (Совпадения не допускаются) Контактная информация
4. Номер телефона Числовой Размер поля – Целое, Индексированное поле (Совпадения не допуск.) Контактная информация

Таблица 2.5.

Структура таблица «Накладная»

№ п/п   Название поля Тип данных   Свойства поля   Описание
1. № накладной Числовой Размер поля - Целое, Ключевое, Индексированное (Совпадения не допускаются) Уникальный код документа
2. Дата составления Дата/время Формат поля – краткий формат даты, Индексированное (Совпадения допускаются), Обязательное Дата составления

Таблица 2.6.

Структура таблицы «Поставка»

№ п/п   Название поля Тип данных   Свойства поля   Описание
1. Код_поставки Числовой Размер поля - Целое, Ключевое, Индексированное (Совпадения не допускаются) Уникальный код поставки
2. Код_поставщика Числовой Размер поля - Целое, Внешний Ключ, Индексированное (Совпадения не допускаются) Уникальный код поставщика
3. Код_товара Числовой Размер поля - Целое, Внешний Ключ, Индексированное (Совпадения не допускаются) Уникальный код товара
4. Код_магазина Числовой Размер поля - Целое, Внешний Ключ, Индексированное (Совпадения не допускаются) Уникальный код магазина
5. Количество Числовой Размер поля – Действительное, Индексированное (Совпадения допускаются), Обязательное Количество поставленного товара
6. Дата поставки Дата/время Формат поля – краткий формат даты, Индексированное (Совпадения допускаются), Обязательное Дата поставки товара
7. Текущая цена Денежный Формат поля – Денежный, Индексированное поле (Совпадения допускаются), Обязательное Цена, установленная на момент поставки. Она может варьироваться со временем.

Таблица 2.7.

Структура таблицы «Товарный отчет»

№ п/п   Название поля Тип данных   Свойства поля   Описание
1. № документа Числовой Размер поля - Целое, Ключевое, Индексированное (Совпадения не допускаются) Уникальный код документа
2. Код_магазина Числовой Размер поля - Целое, Внешний Ключ, Индексированное (Совпадения не допускаются) Уникальный код магазина
3. Дата составления Дата/время Формат поля – краткий формат даты, Индексированное (Совпадения допускаются), Обязательное Дата составления Товарного отчёта
4. Остаток на приход Денежный Формат поля – Денежный, Индексированное поле (Совпадения допускаются), Обязательное Остаток на приход
· Итого по приходу Денежный Формат поля – Денежный, Индексированное поле (Совпадения допускаются), Обязательное Итого по приходу товара
· Расход Денежный Формат поля – Денежный, Индексированное поле (Совпадения допускаются), Обязательное Расход товара
· Итого по расходу Денежный Формат поля – Денежный, Индексированное поле (Совпадения допускаются), Обязательное Итого расходованного товара
· Остаток Денежный Формат поля – Денежный, Индексированное поле (Совпадения допускаются), Обязательное Остаток товара в денежном измерении

Таблица 2.8.

Структура таблицы «Справка по товару»

№ п/п   Название поля Тип данных   Свойства поля   Описание
1. № документа Числовой Размер поля - Целое, Ключевое, Индексированное (Совпадения не допускаются) Уникальный код документа
2. Код_магазина Числовой Размер поля - Целое, Внешний Ключ, Индексированное (Совпадения не допускаются) Уникальный код магазина
3. Дата составления Дата/время Формат поля – краткий формат даты, Индексированное (Совпадения допускаются), Обязательное Дата составления Товарного отчёта
4. Товарные группы Текстовый Размер поля - 50, Индексированное поле (Совпадения не допускаются), Обязательное Группа, к которой относится товар,н-р, Морепродукты
· Розница Денежный Формат поля – Денежный, Индексированное поле (Совпадения допускаются), Обязательное Сумма по каждой товарной группе
· Остаток Денежный Формат поля – Денежный, Индексированное поле (Совпадения допускаются), Обязательное Сумма остатка товаров в магазине

Наши рекомендации