double arrow

Вторая нормальная форма (2НФ)

Пусть X,Y - наборы атрибутов схемы отношения R= PN, ST, GOR, DN, KOL, которое находится в 1НФ и на котором справедливо множество функциональных зависимостей F = {PN ® GOR, GOR ® ST, PN ® ST, (PN, DN) ® KOL}.

Говорят, что Y находится в полной функциональной зависимости от X, если Y функционально зависит от X и не зависит от любого собственного подмножества X.

Пусть X = {PN, DN}, Y = {KOL}. Выясним, находится ли Y в полной функциональной зависимости от X. Анализируя данный экземпляр, делаем вывод о том, что ни одно подмножество набора X функционально не определяет Y. Действительно, атрибут PN функционально не определяет KOL (PN ↛ KOL), и атрибут DN также функционально не определяет KOL (DN ↛ KOL), но набор атрибутов X = {PN, DN} функционально определяет KOL, т.е. (PN,DN) ® KOL. Следовательно, набор атрибутов{PN, DN } функционально полно определяет атрибут KOL:

F.P.

(PN, DN) ® KOL

Если определить X = {PN,DN} и Y = {GOR}, то в этом случае простая функциональная зависимость между X и Y имеет место, так как {PN,DN} ® GOR, но существует также зависимость PN ® GOR. Поэтому

F. P.

{PN,DN} ↛GOR.

Аналогично можно показать, что нет функционально полной зависимости между атрибутом ST и набором {PN, DN}.

Очевидно, если левая часть простой функциональной зависимости представляет собой одиночный атрибут, то такая зависимость всегда будет функционально полной. Всюду ниже запись X ® Y будем понимать как функционально полную зависимость и для наборов и для одиночных атрибутов.

Как было показано в разделе 1.3.1, первичным ключом отношения R является набор атрибутов (PN, DN), так как (PN, DN)+ = PN, DN, ST, GOR, KOL = U (все атрибуты схемы R), но PN+ = (PN, ST, GOR) U и DN+ = DN U. Альтернативного первичного ключа в отношении R нет.

Атрибуты PN и DN, входящие в состав первичного ключа являются ключевыми, остальные атрибуты ST, GOR, KOL – неключевыми.

Выше было показано, что атрибут KOL функционально полно зависит от ключа (PN, DN), чего нельзя сказать о неключевых атрибутах ST и GOR.

Улучшить схему отношения R, сделав все зависимости функционально полными от ключа, можно, используя декомпозицию исходного отношения R на две декомпозиционные подсхемы. Рассмотрим декомпозицию r1 = {R1, R2} схемы R, где

R1 = PN, ST, GOR и R2 = PN, DN, KOL

Первичные ключи в подсхемах выделены.

Теперь неключевые атрибуты ST и GOR в подсхеме R1 также функционально полно зависят от первичного ключа PN, так как первичный ключ – одиночный атрибут.

Остается проверить, обладает ли декомпозиция r1 двумя свойствами.

Проверяем свойство соединения без потерь информации. Для этого воспользуемся алгоритмом из раздела 1.8.2.1. Строим матрицу, столбцами которой являются атрибуты отношения R, а строками – декомпозиционные подсхемы R1 и R2 . Заполняем матрицу символами “а” и “bi” по правилу, изложенному в разделе 1.8.2.1. Просматривая зависимости из F, например, в направлении слева - направо, после анализа зависимостей PN ® ST и PN ® GOR получим в ниже приведенной таблице строку, сплошь состоящую из символов “a”:

PN ST GOR DN KOL

PN, ST, GORa a a b1b1

PN, DN, KOL a b2a b2a a a

Следовательно, рассматриваемая декомпозиция обладает свойством соединения без потерь информации.

Декомпозиция r1 также обладает и свойством сохранения функциональных зависимостей, так как F1 = pR1(F) = {PN ® GOR, GOR ® ST, PN ® ST},

F2 = pR2(F) = {(PN,DN) ® KOL} и (F1 ÈF2)+ = F+ (см. раздел 1.8.2.2).

Таким образом, исходное отношение R может быть заменено двумя отношениями R1 = PN, ST, GOR и R2 = PN, DN, KOL, в которых неключевые атрибуты функционально полно зависят от ключа и на которых справедливы множества функциональных зависимостей: на R1 – множество F1 и на R2 – множество F2.

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

Таким образом, полученные отношения R1 и R2 находятся во второй нормальной форме.


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



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