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