В.Н.Лукин. Базы данных. Конспект лекций, ред 3.51, 08.12.09
Уточнение нормальных форм
2 нормальная форма
Определение. Множество Y для ФЗ X Y из F
+
называется полностью зависимым от
X, если X Y полная ФЗ, то есть не X X (X Y) F
+
. В противном случае мно-
жество Y называется частично зависимым от X.
Определение. Атрибут, не содержащийся ни в каком ключе схемы R, называется не-
первичным в R.
Определение. Схема отношения R находится во второй НФ относительно множест-
ва ФЗ F, если для каждого атрибута A значения adom(A) атомарны и каждый атри-
бут, не содержащийся ни в каком ключе схемы R (он называется непервичным в R),
полностью зависит от каждого ключа для R.
Схема БД R имеет вторую НФ относительно F, если каждая схема отношения из
R находится во второй НФ относительно F.
3 нормальная форма
Определение. Схема отношения R находится в третьей НФ относительно множест-
ва ФЗ F, если для каждого атрибута A значения adom(A) атомарны и ни каждый не-
первичный атрибутов не зависит транзитивно от ключа для R.
Утверждение. Любая схема отношения, находящаяся в третьей НФ относительно
некоторого множества ФЗ, находится во второй НФ относительно того же множе-
ства.
Схема БД R находится в третьей НФ относительно F, если каждая схема отно-
шения из R находится в третьей НФ относительно F.
Нормализация через декомпозицию
Некоторую схему отношения R, не находящуюся в третьей НФ относительно множест-
ва ФЗ F, всегда можно разложить в схему БД, находящуюся в третьей НФ относитель-
но F. Рассмотрим алгоритм, позволяющий выполнить это преобразование.
Предположим, что в R = (S, K) существует транзитивная зависимость от ключа в
R. Это означает, что есть ключ K K, множество Y R и непервичный элемент A R,
A KY, такие, что {K Y, Y A} F и Y K F. Определим новые отношения со схе-
мами R
1
и R
2
. Пусть R
1
= R – A, R
2
= YA. Пусть K – множество выделенных ключей для
R
1
, а {Y} – соответственно, для R
2
. Если K K такой, что A K, определим для R
1
но-
вое множество выделенных ключей K = K - {K} {K }, где K
= K – A.
Можно доказать [17], что для любого r(R), удовлетворяющего F, верно равенст-
во r =
R1
(r) ||
R2
(r). Таким образом, путѐм декомпозиции R на R
1
и R
2
транзитивная за-
висимость удалена, хотя этот результат и получен ценой увеличения количества отно-
шений.
Если в R
1
или в R
2
остались транзитивные зависимости, можно выполнить де-
композицию ещѐ раз. Процесс конечен, так как на каждом шаге получаются всѐ более
короткие схемы, а в схеме с двумя атрибутами транзитивной зависимости быть не мо-
жет. Процесс декомпозиции можно ускорить, проверяя в R – KY наличие других непер-
вичных атрибутов, зависящих от Y. Такие атрибуты тоже зависят от K, и их можно уда-