2.2 Нормализация реляционной модели
Процесс нормализации данных заключается в устранении избыточности данных в таблицах.
Нормализация предназначена для приведения структуры БД к виду, обеспечивающему минимальную логическую избыточность, и не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение физического объёма базы данных.
Таблица находится в первой нормальной форме (1НФ) тогда и только тогда, когда ни одна из ее строк не содержит в любом своем поле более одного значения и ни одно из ее ключевых полей не пусто.
Первая нормальная форма (1НФ) требует, чтобы каждое поле таблицы БД было неделимым (атомарным) и не содержало повторяющихся групп.
Таблица «Фирмы» не удовлетворяет условию 1НФ. Значение поля ФИО руководителя не является атомарным, нужно разбить на 3 поля Фамилия, Имя, Отчество, тогда оно будет удовлетворять условиям 1НФ.
Таблица 2 «Фирмы»
Код клиента |
Название фирмы |
ФИО руководителя |
Адрес |
Телефон |
Тип фирмы |
|
|
|
|
|
|
|
|
Поле Адрес так же не является атомарным. Его разбиваем на 3 поля: Город, Улица, Дом. Теперь таблица 2 «Фирмы» удовлетворяет условиям 1НФ.
Таблица 3 «Товары»
Код товара |
Наименование товара |
Тип товара |
Код поставщика |
Единицы измерения |
Дата поставки |
Количество |
Цена поставки |
|
|
|
|
|
|
|
|
Таблица «Товары» находится в 1НФ.
Таблица 4 «Заказы»
Код заказа |
Код товара |
Код клиента |
Дата заказа |
Количество |
Стоимость |
Оплачено
|
|
|
|
|
|
|
|
Таблица 4 «Заказы» находится в 1НФ
Таблица находится во второй нормальной форме (2НФ), если она удовлетворяет определению 1НФ и все ее поля, не входящие в первичный ключ, связаны полной функциональной зависимостью с первичным ключом. Таблицы 2-4 находятся во 2НФ.
Таблица находится в третьей нормальной форме (3НФ), если она удовлетворяет определению 2НФ и не одно из ее не ключевых полей не зависит функционально от любого другого не ключевого поля. [5]
Таблица 2 «Фирмы» не находилась в 3 НФ, поэтому мы выделили в ФИО руководителя в таблицу «Руководитель», адрес фирмы в таблицу «Адрес», город, в котором находится фирма в таблицу «Город», тип товара в таблицу «Тип товара», тип фирмы в таблицу «Тип фирмы», Единицы измерения в таблицу «Единицы измерения». Внешний вид таблиц, приведенных к 3НФ, показан в Таблицах 5-13
Таблица 5 «Фирмы»
Код клиента(PK) |
Название фирмы |
Код Руководителя
|
Код Адреса |
Телефон |
Код Типа фирмы |
|
|
|
|
|
|
|
|
Талица 6 «Заказ»
Код заказа(PK) |
Код товара |
Код клиента |
Дата заказа |
Количество |
Стоимость |
Оплачено
|
|
|
|
|
|
|
|
Таблица 7 «Товары»
Код товара(PK) |
Наименование товара |
Тип товара |
Код поставщика |
Код Единицыизмерения |
Дата поставки |
Количество |
Цена поставки |
|
|
|
|
|
|
|
|
Таблица 8 «Руководитель»
Код руководителя(PK) |
Фамилия |
Имя |
Отчество |
|
|
|
|
Таблица 9 «Адрес»
Код адреса(PK) |
Код Города |
Улица |
Дом |
|
|
|
|
Таблица 10 «Тип товара»
Код типа товара(PK) |
Тип товара |
|
|
Таблица 11 «Тип фирмы»
Код типа фирмы(PK) |
Тип фирмы |
|
|
Таблица 12 «Единицы измерения»
Код единиц измерения(PK) |
Единицы измерения |
|
|
Таблица 13 «Город»
Код Города(PK) |
Город |
|
|
ER-модель базы данных после нормализации показана в графической части: 230105.КП.12.06.С3.