Нормальная форма Бойса – Кодда

Отношение R находится нормальной форме Бойса – Кодда (НФБК) в том и только в том случае, если каждый его детерминант является возможным ключом.

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

Пример. Имеем отношение с именем СОТРУДНИК и атрибутами НОМЕР СОТРУДНИКА, ФАМИЛИЯ, НОМЕР ПРОЕКТА, ЗАДАНИЕ НА ПРОЕКТ.

Пусть предметная область такова, что личность сотрудника однозначно определяется и его номером (атрибут НОМЕР СОТРУДНИКА), и его фамилией (атрибут ФАМИЛИЯ). Каждый сотрудник работает только над одним проектом, а каждый проект закреплен только за одним конкретным сотрудником. Для каждого сотрудника для реализации проекта выдается конкретное задание. Исходя из приведенного описания предметной области, данное отношение имеет два возможных составных ключа:

Сотрудник.(Номер сотрудника + Номер проекта)

Сотрудник.(Фамилия + Номер проекта)

т.е. имеются следующие функциональные зависимости:

Сотрудник.Номер сотрудника ® Сотрудник.Фамилия

Сотрудник.Фамилия ® Сотрудник.Номер сотрудника

Сотрудник.Номер сотрудника ® Сотрудник.Номер проекта

Сотрудник.Фамилия ® Сотрудник.Номер проекта

Сотрудник.(Номер сотрудника + Номер проекта) ® Сотрудник.Задание на проект

Сотрудник.(Фамилия + Номер проекта) ® Сотрудник.Задание на проект

Независимо от того, какой из возможных ключей выбран в качестве первичного ключа, это отношение находится в 3НФ. Однако так как имеются функциональные зависимости атрибутов отношения от атрибута, являющегося частью первичного ключа, данное отношение не удовлетворяет условию нормальной формы Бойса – Кодда. Нормализация отношения СОТРУДНИК основывается на теореме Хеза и заключается в его декомпозиции на два отношения:

Сотрудник1 (Номер сотрудника, Фамилия)

Сотрудник2 (Номер сотрудника, Номер проекта, Задание на проект)

Для отношения СОТРУДНИК1 возможными ключами являются следующие атрибуты:

Сотрудник1.Номер сотрудника

Сотрудник1.Фамилия

Для отношения СОТРУДНИК2 возможный ключ один, и он является составным:

Сотрудник2.(Номер сотрудника + Номер проекта)

Для этих отношений имеются следующие функциональные зависимости между информационными единицами:

.Номер сотрудника ® Сотрудник1.Фамилия

Сотрудник1.Фамилия ® Сотрудник1.Номер сотрудника

Сотрудник2.(Номер сотрудника + Номер проекта) ® Сотрудник. Задание на проект

Полученные отношения находятся в НФБК.

Для данного примера возможна следующая альтернативная декомпозиция отношения СОТРУДНИК:

Сотрудник1 (Номер сотрудника, Фамилия)

Сотрудник2 (Фамилия, Номер проекта, Задание на проект)

В этом случае полученные отношения также удовлетворяют условию НФБК.


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



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