Пример нормализации отношений
Разберем на примере создание базы данных с помощью нормализации. Дан документ «Накладная» (рисунок 16), необходимо создать базу данных, приведенную к 3НФ.
Для создания таблицы, приведенной к первой нормальной форме, необходимо
1. Определить поле, которое можно назначить первичным ключом. Если такого поля нет, то добавить новое уникальное ключевое поле.
2. Определить группы повторяющихся полей.
3. Вынести группы повторяющихся полей в отдельные таблицы, в основной таблице остается одно поле для организации связи между таблицами.
4. Назначить первичные ключи в новых таблицах. (В качестве ключевых полей можно использовать поля таблицы или добавить новое поле. Если ключевое поле имеет большой размер, предпочтительней добавлять новое поле.)
5. Определить тип отношения между таблицами.
|
Рисунок 16 - Исходные документы для создания базы данных
Разделим семантически неделимые поля, например «Адрес», выделив из него поле «Город». Исключая повторяющиеся группы, выделим поле «Название товара». В качестве идентификатора добавим поля «Код товара» и «Код покупателя».
На рисунке 17 представлена база данных, приведенная к 1НФ.
Для приведения к 2НФ необходимо:
1) вынести все частично зависимые поля в отдельную таблицу;
2) определить ключевые поля;
3) установить отношения между таблицами.
Рисунок 17 - База данных, приведенная к 1НФ
На рисунке 18 представлена база данных, приведения к 2 НФ.
Рисунок 18 - База данных, приведенная к 2НФ
Определим поля «Код товара», «Код покупателя», «Дата» и «Номер накладной» как ключевые. Выделим в отдельные таблицы информацию, связанную с товаром, покупателями и накладными. Определим связь 1:1 между таблицами ПОКУПАТЕЛИ и НАКЛАДНЫЕ, и связь 1:М между таблицами НАКЛАДНЫЕ и ОТПУСК_ТОВАРА_СО_СКЛАДА, ТОВАР и ОТПУСК_ТОВАРА_СО_СКЛАДА.
Для приведения к 3НФ необходимо из таблиц исключить поля, которые не зависят от ключа.
Исключаем вычисляемые поля «Стоимость» и «Итог».
На рисунке 19 представлена база данных, приведенная к 3НФ.
Рисунок 19 - База данных, приведенная к 3НФ
Дата добавления: 2015-01-19; просмотров: 1030;