Каждой нормальной форме соответствует определенный набор ограничений, и отношение находится в некоторой нормальной форме, если удовлетворяет свойственному ей набору ограничений. Примером может служить ограничение первой нормальной формы – значения всех атрибутов отношения атомарны. В теории РБД обычно выделяется следующие нормальные формы:
· первая нормальная форма (1NF);
· вторая нормальная форма (2NF);
· третья нормальная форма (3NF);
· нормальная форма Бойса-Кодда (BCNF);
· четвертая нормальная форма (4NF);
· пятая нормальная форма, или нормальная форма проекции-соединения (5NF или PJ/NF).
Основные свойства нормальных форм состоят в следующем:
· каждая следующая нормальная форма в некотором смысле лучше предыдущей нормальной формы;
· при переходе к следующей нормальной форме свойства предыдущих нормальных форм сохраняются.
Ограничения нормальной формы связаны с понятием функциональной зависимости атрибутов. Дадим определение функциональной зависимости.
Пусть X и Y – атрибуты некоторого отношения R. Если в любой момент времени каждому значению X соответствует единственное значение Y, то Y функционально зависитот X (X→Y).
Атрибут Y функционально полно зависимости от составного атрибута X, если он функционально зависит от X и не зависит функционально от любого подмножества атрибута X.
Теперь введем определения НФ.
Определение 3. Таблица находится в первой нормальной форме (1НФ) тогда и только тогда, когда каждое поле отношение содержит атомарное значение.
Определение 4. Отношение находится во второй нормальной форме (2НФ), если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от ключа.
Определение 5. Отношение находится в третьей нормальной форме (3НФ), если оно находится во 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.
Определение 6. Отношение находится в нормальной форме Бойса-Кодда (НФБК), тогда и только тогда, когда любая функциональная зависимость между его атрибутами сводится к полной функциональной зависимости от вероятностного ключа.
Для получения качественной РБД в большинстве случаев достаточно приведение схемы её отношений в 3НФ или НФБК. Для достижения этого используют процесс нормализации, т.е. приведения отношения в требуемую НФ. Процесс нормализации схемы отношения, входящего в состав РБД, выполняется путём её декомпозиции, разбиения отношения на отношения с более простой схемой. Декомпозицией схемы отношения R называется замена её совокупностью схем отношений Аi таких, что
,
При этом не требуется, чтобы отношения Аi были непересекающимися. Декомпозиция должна удовлетворять двум основным свойствам:
· соединения без потерь
· сохранение зависимостей.
Многозначные зависимости: Пусть А, В и С – подмножества атрибутов R . В à А, тогда и только тогда, когда множество значений В, соответствующее заданной паре (А,С) в R , зависит от А, но не зависит от С.
Теорема Фейгина: (более строгая форма теоремы Хита) Пусть А,В,С – множества атрибутов в R. R будет равна соединению ее проекций {A,B} и {A,C} тогда и только тогда, когда для R выполняется В à А,
Переменная R находится в 4НФ, если она находится в НФБК и все многозначные зависимости фактически представляют собой функциональные зависимости от ее ключей.
Определение 7. Отношение R удовлетворяет зависимости соединения тогда и только тогда, когда любое допустимое значение R эквивалентно соединению ее проекций по подмножествам ее атрибутов.
Определение 8. Отношение R находится в 5НФ (проекционно-соединительной НФ) тогда и только тогда, когда каждая нетривиальная зависимость соединения (т.е. не совпадающая с R) подразумевается ее потенциальными ключами.
Процесс нормализации включает следующие шаги:
1. Отношение в 1НФ разбить на проекции, которые позволяют исключить все функциональные зависимости, не являющиеся неприводимыми. Получаем набор отношений в 2НФ.
2. Отношений в 2НФ разбиваем на проекции, в которых нет транзитивных зависимостей. Получаем набор отношений в 3НФ.
3. Отношения в 3НФ разбиваем на проекции, в которых нет отношений с детерминантами, не являющимися потенциальными ключами. Получаем набор отношений в НФБК.
4. Отношения НФБК разбиваем на проекции, исключающие многозначные зависимости , которые не являются функциональными. Получаем набор отношений в 4НФ.