Пример нормализации базы данных

В качестве примера рассмотрим «Учет заказов покупателей», которая содержит следующую информацию:

- сведения о покупателе;

- дату заказа и количество заказанного товара;

- дату выполнения заказа и количество проданного товара;

- характеристика проданного товара;

Структура таблицы ФИРМА.

  Имя поля Тип Ширина Дес
1. Фам_покупателя Character    
2. Телефон Character    
3. Индекс Numeric    
4. Город Character    
5. Адрес Character    
6. Предприятие Character    
7. Руководитель Character    
8. Кредит Numeric    
9. Дата_заказа Date    
10. Кол_заказано Numeric    
11. Дата_продажи Date    
12. Кол_продано Numeric    
13. Цена Numeric    
14. Наимен_категории Character    
  Наимен_ товара Character    

 

Примеры хранимых данных

Имя поля Запись1 Запись2 Запись3
Фам_покупателя Иванов С.С. Лужкова Л.А. Иванов С.С.
Телефон 20-30-21 22-34-56 20-30-21
Индекс      
Город г.Тольятти г.Тольятти г.Тольятти
Адрес ул Дорожная 22 ул.Заречная 98 ул Дорожная 22
Предприятие ООО «Луг» ООО «Стриж» ООО «Луг»
Руководитель Сидоров Р.И. Морозов С.П. Сидоров Р.И.
Кредит      
Дата_заказа 12.03.2005 12.03.2005 15.03.2005
Кол_заказано      
Дата_продажи 13.03.2005 12.03.2005 15.03.2005
Кол_продано      
Цена 10 р. 156 р. 10 р.
Наимен_категории Хлебо-булочная Хлебо-булочная Хлебо-булочная
Наимен_ товара хлеб «Бородинский» Торт «Марс» хлеб Бородинский»

 

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

Приведенная таблица не является нормализованной.

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

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

Разобьем таблицу ФИРМА на
ПОКУПАТЕЛЬ и ЗАКАЗ

(сведения о покупателе) (информация о каждом заказе товара)

 


Рис. Приведение к первой нормальной форме.

Между таблицами будет связь один ко многим по коду покупателя.

Понятие 2-ой нормальной формы применимо только к таблицам имеющим составной ключ.

В данном примере таблица ЗАКАЗ имеет составной индекс: код покупателя + код товара + Дата_заказа. Поля Наимен_товара, Цена, Наимен_категории однозначно определяются только одним из индексным полем Код товара.

Для приведения таблицы ко второй нормальной форме разделим таблицу ЗАКАЗ на две:

ПОКУПАТЕЛЬ ЗАКАЗ ТОВАР

Код товара Наимен_категории Наимен_товара Цена  
Номер заказа Код товара Код покупателя Дата_заказа Кол_заказано Дата продажи Кол_продано
Код покупателя Фамилия Индекс Телефон Город Адрес Предприятие Руководитель Кредит
ё

       
   
 
 

 


Рис. Приведение ко второй нормальной форме.

Для связывания таблиц используется Код товара.


В таблице ПОКУПАТЕЛЬ поле Руководитель содержит имена руководителей, которые однозначно определяются значением поля Предприятие. Посколько неиндексное поле Руководитель однозначно определяется другим неиндексным полем Предприятие, то таблица Покупатель не является таблицей в третьей нормальной форме. Тоже и полем Наимен_категории и Наимен_товара в таблице ТОВАР.

Для приведения этих таблиц к третьей нормальной форме создадим новые таблицы КАТЕГОРИЯ и ПРЕДПРИЯТИЕ.

           
 
Код покупателя Фамилия Телефон Код предприятия Кредит
 
Код предприятия Индекс Город Адрес Предприятие Руководитель  
 
Код товара Код категории Наимен_товара Цена  
 


 
 

 


Рис. Приведение к третьей нормальной форме.

 

После определения структуры таблиц, строится Информационно-логическая модель.

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


Графический способ представления ИЛМ.

«Учет заказов покупателей».

 


Логическая структура реляционной базы данных.

 

КАТЕГОРИЯ ТОВАР

ЗАКАЗ

 

ПРЕДПРИЯТИЕ ПОКУПАТЕЛЬ

 

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: