Нормализация отношений

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

Выделяют следующую последовательность нормальных форм:

- первая нормальная форма (1НФ);

- вторая нормальная форма (2НФ);

- третья нормальная форма (3НФ);

- усиленная третья нормальная форма, или нормальная форма Бойса – Кодда (БКНФ);

- четвертая нормальная форма (4НФ);

- пятая нормальная форма (5НФ).

ФИО Должн оклад Стаж Д_Стаж Каф Предм Группа ВидЗан
Иванов И.М. преп СУБД Практ
Иванов И.М. преп           ПЛ-1     практ  
Петров М.И. Ст.преп СУБД Лекция
Петров М.И. Ст.преп Паскаль Практ
Сидоров .Н.Г. Преп ПЛ-1 Лекция
Сидоров Н.Г. Преп Паскаль Лекция
Егоров В.В. преп ПЭВМ лекция    

Рис.1 Исходное отношение ПРЕПОДАВАТЕЛЬ

Первая нормальная форма. Отношение находится в 1НФ, если все его атрибуты являются простыми (имеют единственное значение). Исходное отношение строится таким образом, чтобы оно было в 1НФ.

Исходное отношение ПРЕПОДАВАТЕЛЬ (рис. 1), используемое для иллюстрации метода, имеет составной ключ ФИО, Предм, Группа и находится в 1НФ, поскольку все его атрибуты простые.

В этом отношении в соответствии с рис. 2 можно выделить частичную зависимость атрибутов Стаж, Д_Стаж, Каф, Должн, Оклад от ключа – указанные атрибуты находятся в функциональной зависимости от атрибута ФИО, являющегося частью составного ключа.

Нормализация отношений - student2.ru

Рис.2 Зависимости между атрибутами

Эта частичная зависимость от ключа приводит к следующему:

1.В отношении присутствует явное и неявное избыточное дублирование данных, например:

- повторение сведений о стаже, должности и окладе преподавателей, проводящих

занятия в нескольких группах и/или по разным предметам;

- повторение сведений об окладах для одной и той же должности или о надбавках за

одинаковый стаж.

2.Следствием избыточного дублирования данных является проблема их редактирования. Например, изменение должности у преподавателя Иванова И. М. потребует просмотра всех кортежей отношения и внесения изменений в те из них, которые содержат сведения о данном преподавателе.

Часть избыточности устраняется при переводе отношения в 2НФ.

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

Для устранения частичной зависимости и перевода отношения в 2НФ необходимо, используя операцию проекции, разложить его на несколько отношений следующим образом:

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

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

В результате получим два отношения R1 и R2 в 2НФ (рис. 3).

В отношении R1 первичный ключ является составным и состоит из атрибутов ФИО, Предм, Группа. Напомним, что каждый преподаватель в одной группе по одному предмету может либо читать лекции, либо проводить практические занятия. В отношении R2 ключ ФИО.

Исследование отношений R1 и R2 показывает, что переход к 2НФ позволил исключить явную избыточность данных в таблице R2 – повторение строк со сведениями о преподавателях. В R2 по-прежнему имеет место неявное дублирование данных.

Для дальнейшего совершенствования отношения необходимо преобразовать его в 3НФ.

R1

ФИО Предм Группа ВидЗан
Иванов И. М. СУБД Практ
Иванов И. М ПЛ/1 Практ
Петров М. И. СУБД Лекция
Петров М. И. Паскаль Практ
Сидоров Н. Г. ПЛ/1 Лекция
Сидоров Н. Г Паскаль Лекция
Егоров В. В. ПЭВМ Лекция
ФИО   Предм   Нормализация отношений - student2.ru Группа  
ВидЗан

R2

ФИО Должн Оклад Стаж Д_Стаж Каф
Иванов И. М. Преп
Петров М. И. Ст. преп
Сидоров Н. Г. Преп
Егоров В. В. Преп

Нормализация отношений - student2.ru

Рис 3. Отношение БД в 2НФ

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

Определение 1. Отношение находится в 3НФ, если оно находится в 2НФ и каждый неключевой атрибут не транзитивно зависит от первичного ключа.

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

Если в отношении R1 транзитивные зависимости отсутствуют, то в отношении R2 они есть:

ФИОàДолжнàОклад,

ФИОàОкладàДолжн,

ФИОàСтажàД_Стаж

Транзитивные зависимости также порождают избыточное дублирование информации в отношении. Устраним их. Для этого используя операцию проекции на атрибуты, являющиеся причиной транзитивных зависимостей, преобразуем отношение R2, получив при этом отношения R3, R4 и R5, каждое из которых находится в 3НФ (рис. 4). Заметим, что отношение R2 можно преобразовать по-другому, а именно: в отношении R3 вместо атрибута Должн взять атрибут Оклад.

Нормализация отношений - student2.ru R3


ФИО Должн Стаж Каф
Иванов И. М. Преп
Петров М. И. Ст. преп
Сидоров Н. Г. Преп
Егоров В. В. Преп

R4

Должн Нормализация отношений - student2.ru Оклад
Преп
Ст. преп

R5

Стаж Нормализация отношений - student2.ru Д_Стаж

Нормализация отношений - student2.ru Рис. 4. Отношения БД в 3НФ

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