14 Нормализация на основе декомпозиции

Итак, схему отношения БД, не находящуюся в 3НФ необходимо к ней привести. Приведение осуществляется через разбиение схемы отношения на пару схем отношений R1 и R2 так, чтобы любое отношение r(R), удовлетворяющее F, разлагалось на R1 и R2. Если какое-то отношение из R1 и R2 не окажется в 3НФ, то процесс декомпозиции придется повторить. Этот процесс продолжается до тех пор, пока все полученные отношения не окажутся в 3НФ  относительно F.  

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

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

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

R

A           

B

C

a1           a1

a2

a2

b1

b2

b3

b2

c1

c2

c1

c2

в соответствии с некоторой декомпозицией можно получить две проекции, которые будут выглядеть так:

Pac (R)    P bc (R)

A

C

 

 

 

B

C

a1

a1

a2

a2

c1

c2

c1

c2

 

 

 

b1

b2

b3

c1

c2

c1

Соединение же этих проекций даст следующее отношение:

P P ac (R) ►◄ P bc (R)

A

B

C

a1

a1

b1

b3

c1

c1

a1

a2

b2

b1

c2

c1

a2

a2

b3

b2

c1

c2

Данная декомпозиция не является полной, так как при соединении её проекций появляются кортежи, отсутствовавшие в исходном отношении (в примере они выделены курсивом и подчеркнуты). В рассматриваемом примере ни зависимость C®A, ни зависимость C®B не являются корректными, поэтому естественное соединение проекций порождает два новых кортежа.

Четвертая нормальная форма

Однако в ходе дальнейших исследований был выявлен еще один тип зависимостей — многозначная зависимость. Возможность существования в отношении многозначных зависимостей возникает в процессе приведения исходных таблиц к 1НФ. Вспомним, что первая нормальная форма запрещает отношениям иметь неатомарные, многозначные атрибуты. Однако существует множество ситуаций моделиро­вания, требующих многозначных атрибутов. Например, в университете преподаватель факультета отвечает за преподавание не­скольких предметов, или отдел некоторой фирмы выполняет ряд проектов. То есть многозначность присутствует в тех отношениях, где моделируется связи типа 1:М. Если в отношении моделируется одна связь такого рода, то такая многозначность называется тривиальной.

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

В 1971 году Фейгин предложил строго теоретически обоснованный выход из этой ситуации  с помощью понятия многозначной зависимости.

Условие, обеспечивающее независимость атрибутов путем обязательного повторения значений, называется многозначной зависимостью (MЗ). Определим формально условие существования многозначной зависимости: многозначная зависимость имеет место в том отношении, в котором содержится две независимые связи типа 1:М. И все проблемы данной ситуации вызваны именно этой независимостью связей.

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

В отношении  R(A, B, C) существует  многозначная  зависимость  A->>B в том и только в том случае, если множество значений B, соответствующее паре значений A и C, зависит только от A и не зависит от С.

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

Легко показать, что в общем случае в отношении R (A, B, C) существует многозначная зависимость A ->> B в том и только в том случае, когда существует многозначная зависимость A ->> C.

 

Hosted by uCoz