Отношение имеет вторую нормальную форму (2НФ), если оно соответствует 1НФ и не содержит неполных ФЗ.
Неполная ФЗ – это две зависимости:
- вероятный ключ отношения функционально определяет некоторый неключевой атрибут;
- часть вероятного ключа функционально определяет этот же неключевой атрибут.
Отношение, не соответствующее 2НФ, характеризуется избыточностью хранимых данных, которая может быть устранена разбиением исходного отношения на несколько новых.
База данных находится в 2НФ, если все ее отношения находятся в 2НФ.
Пусть дано отношение :
Завод | Изделие | Цена | План |
Луч | Ч-15 | ||
Луч | Ч-17 | ||
Чайка | Ч-15 | ||
Чайка | Ч-20 |
Вероятный ключ отношения является двухатрибутным:
.
В этом отношении имеются следующие функциональные зависимости:
; (1)
; (2)
; (3)
; (4)
. (5)
В отношении имеет место избыточность информации, т.к. цена указана столько раз, сколько заводов производят некоторое изделие.
Функциональные зависимости вида (3) и (2) образуют неполную функциональную зависимость.
Для приведения отношения к 2НФ необходимо разбить его на два новых отношения:
и
.
Отношения и соответствуют 2НФ, поскольку первое отношение содержит двухатрибутный ключ, а второе содержит только два атрибута, между которыми существует единственная функциональная зависимость.
Ниже приведены отношения и :
Завод | Изделие | План |
Луч | Ч-15 | |
Луч | Ч-17 | |
Чайка | Ч-15 | |
Чайка | Ч-20 |
Изделие | Цена |
Ч-15 | |
Ч-17 | |
Ч-20 |
Отношение соответствует третьей нормальной форме, если оно имеет 2НФ и среди его атрибутов отсутствуют транзитивные ФЗ.
|
Транзитивная ФЗ – это две зависимости:
- вероятный ключ отношения функционально определяет неключевой атрибут;
- этот неключевой атрибут функционально определяет другой неключевой атрибут.
База данных находится в 3НФ, если все ее отношения находятся в 3НФ.
Пусть дано отношение :
ФИО | Группа | Факультет |
Гришин Б.С. | ВТ | |
Милорадов В.Д. | ВТ | |
Князев Е.Е. | РТ | |
Рожкова А.Н. | РТ |
Вероятным ключом отношения является атрибут ФИО.
.
В этом отношении имеются следующие функциональные зависимости:
; (6)
; (7)
; (8)
В отношении имеет место избыточность информации, т.к. принадлежность группы к факультету указана столько раз, сколько студентов в группе.
Функциональные зависимости вида (6) и (7) образуют транзитивную функциональную зависимость.
Для приведения отношения к 3НФ необходимо разбить его на два новых отношения:
и
.
Ниже приведены отношения и :
ФИО | Группа |
Гришин Б.С. | |
Милорадов В.Д. | |
Князев Е.Е. | |
Рожкова А.Н. |
Группа | Факультет |
ВТ | |
РТ |
Отношения и соответствуют 3НФ, т.к. отношения, в которых имеется либо одна функциональная зависимость, либо ни одной, соответствуют 3НФ, т.к. неполная ФЗ и транзитивная ФЗ предполагают существование двух функциональных зависимостей.
Алгоритм приведения БД к 3НФ сохраняет первоначальные ФЗ, обеспечивает соединение без потерь, а результат декомпозиции в 3НФ обычно содержит меньше значений атрибутов, чем исходное отношение.
Алгоритм приведения БД к 3НФ содержит следующие действия.
|
1. Получить исходное множество ФЗ для атрибутов рассматриваемой БД.
Для определения ФЗ можно использовать перечисление и отбраковку допустимых вариантов ФЗ. При этом рассматриваются сочетания:
по два атрибута;
по три атрибута, где первые два функционально определяют третий;
по четыре атрибута, где первые три функционально определяют четвертый, и т.д.
Перечисление вариантов заканчивается, как только сочетания атрибутов станут содержать первичный ключ.
Если в исходных отношениях имеется различных атрибутов и первичный ключ содержит атрибутов, то требуется проверок зависимостей, где – число сочетаний из по .
2. Получить минимальное покрытие множества ФЗ, в котором должны отсутствовать ФЗ, являющиеся следствием оставшихся ФЗ. ФЗ с одинаковой левой частью должны быть объединены в одну ФЗ.
Обозначим минимальное покрытие ФЗ через .
3. Для каждой ФЗ , полученной на шаге 2, создать проекцию исходного отношения , где – объединение атрибутов из левой и правой частей .
4. Если первичный ключ исходного отношения не вошел полностью ни в одну проекцию, то создать отдельное отношение из атрибутов ключа.
Для взаимно однозначных соответствий принято выделение старшего атрибута, который затем представляет все атрибуты взаимно однозначного соответствия.
В качестве примера рассмотрим отношение со сведениями о научно-исследовательских работах. Список атрибутов отношения приведен в таблице.
Для атрибутов НИИ, ДИРЕКТОР, АДРЕС существует взаимно однозначное соответствие.
В качестве атрибута-представителя выберем НИИ.
|
Таблица. Список атрибутов
№ п/п | Наименование атрибута | Идентификатор |
Название НИИ Директор НИИ Адрес НИИ Код отдела Число сотрудников в отделе Код темы НИР Дата начала темы Дата окончания темы Приоритет темы Заказчик темы Объем финансирования темы Код работы в теме Продолжительность работы ФИО исполнителя работы | НИИ ДИРЕКТОР АДРЕС ОТДЕЛ КСОТР ТЕМА ДАТАНАЧ ДАТАКОН ПРИОР ЗАКАЗ ОБФИН РАБОТА ПРОД ФИО |
Список ФЗ имеет вид:
ОТДЕЛ → НИИ
ОТДЕЛ → ДИРЕКТОР
ОТДЕЛ → КСОТР
ТЕМА → ДАТАНАЧ
ТЕМА → ДАТАКОН
ТЕМА → ПРИОР
ФИО → НИИ
ФИО → ДИРЕКТОР
ФИО → ОТДЕЛ
ТЕМА, ЗАКАЗ → ОБФИН
ТЕМА, РАБОТА, ФИО → ПРОД
Структура реляционной БД имеет вид:
R1(НИИ, ДИРЕКТОР, АДРЕС)
R2(НИИ, ОТДЕЛ, КСОТР)
R3(ТЕМА, ДАТАНАЧ,ДАТАКОН, ПРИОР)
R4(ФИО, ОТДЕЛ)
R5(ТЕМА, ЗАКАЗ, ОБФИН)
R6 (ТЕМА, РАБОТА, ФИО, ПРОД)
R7(ТЕМА, ЗАКАЗ, РАБОТА, ФИО)
Последнее отношение содержит ключ для исходного множества атрибутов, а остальные отношения построены на основе зависимостей из минимального покрытия.