Третья нормальная форма и нормальная форма Бойса-Кодда

Вторая нормальная форма.

Первая нормальная форма.

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

Собственно говоря, любое отношение, соответствующее принципам реляционной модели (в первую очередь, принципу атомарности атрибутов), находится в 1НФ.

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

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

Неприводимость зависимости означает, что зависимость существует только для всего потенциального ключа, и не существует для его части, то есть нельзя исключить из состава потенциального ключа ни одного атрибута без того, чтобы зависимость исчезла.

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

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

Транзитивная зависимость имеет следующий вид. Предположим, что Y функционально зависит от X, а Z функционально зависит от Y. Тогда между X и Z имеется транзитивная функциональная зависимость (через Y).

Рассмотрим ситуацию все на том же примере. Очевидно, что в нашем примере со студентами и группами шифр группы зависит от номера зачетной книжки студента. В свою очередь, наименование группы зависит от шифра группы. Мы имеем дело с транзитивной зависимостью. Для ее устранения необходимо разделить отношение на два меньших: Студенты (НомерЗачетнойКнижки, Фамилия, Имя, Отчество, ДатаРождения, ШифрГруппы) и Группы (ШифрГруппы, НаименованиеГруппы). Легко видеть, что в этом случае у нас уменьшилось дублирование данных – наименование группы хранится для каждой группы однократно. Теперь наши отношения находятся в 3НФ.

Нормальная форма Бойса-Кодда (НФБК, BCNF) – это дополнительно уточненная 3НФ, для которой добавлено еще одно условие.

Определение НФБК звучит следующим образом:

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

Нетривиальной является зависимость, в которой зависимая часть не является подмножеством детерминанта, или, для нашего случая, зависимый атрибут не входит в состав ключа. То есть, все атрибуты, не входящие в состав первичного ключа, зависят от первичного ключа, но не от его части.


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



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