(Следует отметить, что третий вариант декомпозиции с заменой отношения
SECOND проекциями {S#, STATUS} и {CITY, STATUS} не является допустимой
декомпозицией, поскольку выполняется с потерей информации. Упражнение.
Докажите это утверждение.)
Терминология. Отношение, которое не может быть подвергнуто декомпозиции с
получением независимых проекций, называется атомарным [10.6]. Однако это не
значит, что любое неатомарное отношение может быть разбито на атомарные
компоненты. Например, отношения S и Р из рассматриваемой ранее базы данных
поставщиков и товаров (поставщиков и деталей) не являются атомарными, но
дальнейшая их декомпозиция была бы бессмысленной. Отношение SP, наоборот,
является атомарным.
Идея нормализации с декомпозицией на независимые проекции (в смысле
Риссанена) называется декомпозицией с сохранением зависимости. В заключение
следует привести несколько более строгих замечаний по поводу этой идеи.
1. 1.BBBBBB Пусть дано некоторое отношение R, которое после выполнения всех этапов
процедуры нормализации заменяется множеством отношений R1, R2,... Rn
(конечно, все они являются проекциями отношения R).
2. 2.BBBBBB Пусть также задано множество зависимостей S для исходного отношения R,
и множества зависимостей S1, S2,... Sn для отношений R1, R2,... Rn.
3. 3.BBBBBB Каждая ФЗ множества Si будет относиться только к атрибутам множества Ri
(i =1, 2, 3,...,). Таким образом, приведение в действие ограничений (ФЗ) в любом
заданном множестве Si представляется достаточно простой задачей. Однако в
данном случае необходимо задействовать ограничения из исходного множества
S. При этом следовало бы выбрать такую декомпозицию на отношения R1, R2, ...
Rn, для которой совместное приведение в действие отдельных множеств
ограничений S1, S2, ... Sn эквивалентно приведению в действие ограничений в
исходном множестве S. Иначе говоря, декомпозиция должна выполняться с
сохранением зависимостей.
4. 4.BBBBBB Пусть S' является объединением множеств зависимостей S1, S2, ... Sn.
Обратите внимание, что в общем случае равенство S'=S не выполняется, однако
для выполнения декомпозиции с сохранением зависимостей достаточно, чтобы
замыкания S и S' были равны друг другу (понятие замыкания множества ФЗ
рассматривалось в главе 9).
5. 5.BBBBBB В общем случае не существует эффективного способа вычисления
замыкания S
+
множества Ф3, поэтому вычисление и сравнение двух замыканий
трудноосуществимо. Тем не менее, существует эффективный метод проверки,
будет ли данная декомпозиция выполняться с сохранением зависимости.
Описание подробностей этого алгоритма выходит за рамки данной книги, однако
они описываются в книге Ульмана (Ullman) [7.16].
Замечание. В ответах на упражнения в конце этой главы описан алгоритм
выполнения декомпозиции без потерь и с сохранением зависимости для
произвольного отношения с разбиением на множество проекций в ЗНФ.
25. 10.5. Нормальная форма Бойса-Кодда
В этом разделе опускается упрощающее допущение о том, что каждое
отношение имеет только один потенциальный ключ (а именно первичный ключ), и