Скачиваний:
102
Добавлен:
02.05.2014
Размер:
2.3 Mб
Скачать

12.3. Зависимости соединения и пятая нормальная форма

До сих пор в настоящей главе и на протяжении всей предыдущей главы предполага­лось, что единственной необходимой или допустимой операцией в процессе нормализа­ции является замена переменной-отношения по правилам декомпозиции без потерь только двумя ее проекциями. Такое допущение нас вполне устраивало вплоть до дости­жения 4НФ. Однако, хотя это может показаться удивительным, существуют переменные-отношения, для которых нельзя выполнить декомпозицию без потерь на две проекции, но которые можно подвергнуть декомпозиции без потерь на три или более проекций. Подобные переменные-отношения обозначим не очень удачным, но достаточно удобным термином "n-декомпозируемая переменная-отношение" (для некоторого п > 2). Это зна­чит, что для данной переменной-отношения возможна декомпозиция без потерь на п проекций, но не на m проекций для любого m < п. Таким образом, переменную-отношение, для которой можно выполнить декомпозицию на две проекции, следовало бы называть 2-декомпозируемой.

Замечание. Впервые возможность n-декомпозируемости для п > 2 была упомянута в работе Ахо (Aho), Бери (Beeri) и Ульмана (Ullman) [12.1], а частный случай для п = 3 был описан Николасом (Nicolas) [12.25].

В качестве примера рассмотрим переменную-отношение SPJ из базы данных постав­щиков, деталей и проектов, представленную на рис. 12.4 целях упрощения изложения атрибут QTY исключен). Обратите внимание, что эта переменная-отношение состоит только из ключевых атрибутов, не содержит нетривиальных функциональных и много­значных зависимостей и потому находится в 4НФ. Заметим также, что на этом рисунке показаны следующие компоненты.

  1. Три бинарные проекции, SP, Р J и JS, переменной-отношения SP J.

  2. Результат соединения проекций SP и PJ по атрибуту Р#.

  3. Соединение этого результата с проекцией JS по комбинации атрибутов (Jt, SI).

Обратите внимание, что в результате первого соединения получается копия исходной переменной-отношения SPJ с одним дополнительным (излишним) кортежем, а в резуль­тате второго соединения этот лишний кортеж исключается. Иначе говоря, исходная пе­ременная-отношение SPJ является 3-декомпозируемой.

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

SPJ

SP

s#

P#

J#

S1

P1

J2

S1

P2

Л

S2

P1

Л

S1

Л

s#

P#

PJ

P#

J#

от

J#

s#

S1

PI

P1

J2

J2

S1

S1

P2

P2

J1

J1

S1

S2

P1

P1

Л

Л

S2

SPJ

Излишний кортеж

Соединение по комбинации атрибутов j#,s#

1

Исходное состояние spj

Рис. 12.4. Переменная-отношение SPJ может быть получена только в резуль­тате соединения всех трех ее бинарных проекций, но не любых двух из них

Далее, представленный на рис. 12.4 пример, безусловно, выполнен в терминах отноше­ний, а не переменных-отношений. Однако 3-декомпозируемость переменной-отношения SPJ может быть более фундаментальным и не зависящим от времени свойством (т.е. свойством, которое удовлетворяется для всех допустимых значений данной переменной-отношения), ес­ли данная переменная-отношение удовлетворяет определенному не зависящему от времени ограничению целостности. Для того чтобы понять, каким именно должно быть это ограниче­ние, прежде всего заметим, что утверждение "переменная-отношение SPJ равна соединению трех своих проекций SP, PJ и JS" в точности эквивалентно следующему утверждению.

ЕСЛИ

И

И

ТО пара пара пара тройка

(si, pi)

(Pi, J1)

(jl, si) (si, pi, jl) присутствует в SP присутствует в PJ, присутствует в JS, присутствует в SPJ.

Это верно, поскольку очевидно, что тройка (si, pi, j 1) обязательно присутствует в соединении проекций SP, PJ и JS. (Обратное утверждение, т.е. если тройка (si, pi, jl) присутствует в переменной-отношении SPJ, то, например, пара (si, pi) присутствует в проекции SP, является истинным для любой переменной-отношения SPJ третьего поряд­ка.) Так как пара (si, pi) присутствует в отношении SP тогда и только тогда, когда тройка (si, pi, J2) присутствует в отношении SPJ для некоторого значения J2 (аналогично для (pi, jl) и (jl, si)), приведенное выше утверждение можно переписать в виде ограни­чения, накладываемого на переменную-отношение SPJ.

ЕСЛИ кортежи (si, pi, j2j, (s2, pi, jl), (si, p2, jl) присутствуют в SPJ

TO кортеж (si, pi, jl) также присутствует в SPJ.

Если это утверждение выполняется всегда, т.е. для всех допустимых значений пере­менной-отношения SPJ, то будет получено не зависящее от времени (хотя и несколько странное) ограничение для данной переменной-отношения. Обратите внимание на цик­лическую структуру этого ограничения ("если значение si связано с pi и pi связано с jl, a jl связано опять с si, то si, pi и jl должны находиться в одном кортеже"). Пере­менная-отношение будет п-декомпозируемой для п>2 тогда и только тогда, когда она удовлетворяет некоторому циклическому ограничению.

Предположим теперь, что переменная-отношение SPJ действительно удовлетворяет этому не зависящему от времени ограничению (представленный на рис. 12.4 пример данных соответствует такой гипотезе). Далее ограничение 3-декомпозируемости для краткости будем называть ЗД-ограничением. Что означает ЗД-ограничение с практиче­ской точки зрения? Для получения ответа на этот вопрос рассмотрим пример, в котором под такими ограничениями подразумевается, что если в реальном мире для переменной-отношения SPJ верны утверждения

а) Смит поставляет гаечные ключи,

б) Гаечные ключи используются в Манхэттенском проекте,

в) Смит является поставщиком для Манхэттенского проекта, то

г) Смит поставляет гаечные ключи для Манхэттенского проекта.

Обратите внимание, что (как уже упоминалось в главе 1, раздел 1.3) из взятых в сово­купности утверждений а, б и в обычно не следует утверждение г. Действительно, точно такой же пример был рассмотрен в главе 1 для демонстрации "ловушки соединения". Однако в данном частном случае следует отметить, что никакой ловушки здесь нет, по­скольку существует дополнительное ЗД-ограничение, имеющее место в реальном мире, благодаря чему вывод утверждения г на основе утверждений а, б к в является вполне правомочным.

Возвращаясь к главной теме нашего обсуждения, отметим, что, поскольку ЗД-ограничение удовлетворяется тогда и только тогда, когда переменная-отношение равно­сильна соединению некоторых ее проекций, такое ограничение называется зависимо­стью соединения (ЗС). Зависимость соединения является таким же ограничением для данной переменной-отношения, как многозначная и функциональная зависимости. Ниже дается определение этого понятия.

■ Пусть R является переменной-отношением, а А, В, ..., Z — произвольными под­множествами множества ее атрибутов. Переменная-отношение R удовлетворяет зависимости соединения

*{А, В, ... , Z} (читается "звездочка А, В, Z")

тогда и только тогда, когда любое допустимое значение переменной-отношения R эквивалентно соединению ее проекций по подмножествам атрибутов А, В,Z.

Например, если использовать сокращенную символьную запись SP для подмножества {St, Pi} множества атрибутов переменной-отношения SPJ и аналогично использовать сокращения PJ и JS для двух других подмножеств, то переменная-отношение SPJ будет удовлетворять зависимости соединения *{SP, PJ, JS}.

Отсюда ясно, что переменная-отношение SPJ с зависимостью соединения *{SP, PJ, JS} может быть 3-декомпозируемой. Однако вопрос состоит в том, следует ли выполнять такую декомпозицию? По всей видимости, следует, так как в связи с нали­чием зависимости соединения переменная-отношение SPJ характеризуется многочис­ленными аномалиями обновления, которые можно устранить лишь с помощью 3-декомпозиции. Некоторые примеры подобных аномалий приведены на рис. 12.5. Отве­тить на вопрос, что произойдет после выполнения 3-декомпозиции, читателям предлага­ется самостоятельно в качестве упражнения.

SPJ

SPJ

s#

р#

J#

S1

Р1

J2

S1

Р2

Л

Если вставляется кортеж (S2,P1,J1), то также должен быть вставлен кортеж (S1,P1,J1)

Обратное утверждение не является истинным

Если удаляется кортеж (S1.P1.J1), то также должен быть удален еще один кортеж (но какой?)

Рис. 12.5. Примеры аномалий обновления в переменной-отношении SPJ

Теорема Фейгина (которая рассматривалась в разделе 12.2) утверждает, что перемен­ная-отношение R{A, В, С} может быть декомпозирована без потерь на проекции с атри­бутами {А, В} и {А, С} тогда и только тогда, когда для переменной-отношения R вы­полняются многозначные зависимости А —»-» В и А —^ С.

Теперь теорема Фейгина может быть сформулирована иначе.

■ Переменная-отношение R{A, В, С} удовлетворяет зависимости соединения *{АВ, АС} тогда и только тогда, когда она удовлетворяет многозначной зависимо­сти А ->-» В I С.

Поскольку эту теорему можно использовать в качестве определения многозначной за­висимости, то либо многозначная зависимость является частным случаем зависимости соединения, либо (что эквивалентно) зависимость соединения является обобщением по­нятия многозначной зависимости.

Формально получим следующее.

А В I С = *{ АВ, АС }

Замечание. Более того, из определения зависимости соединения сразу же следует, что из всех возможных форм это наиболее общая форма зависимости (конечно, имеется в виду, что термин "зависимость" употребляется в узком специальном смысле). Это значит, что для переменных-отношений, которые подвергаются декомпозиции на проекции и об­ратной композиции с соединением проекций, не существует более высокой степени зави­

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

Возвратившись к рассматриваемому примеру, можно обнаружить следующую пробле­му: переменная-отношение SPJ содержит зависимость соединения, которая не является ни многозначной, ни функциональной. (Упражнение. Объясните, почему возникает эта про­блема?) Можно также заметить, что можно (и, по всей вероятности, желательно) декомпо­зировать такую переменную-отношение на меньшие компоненты, а именно— на проекции, определяемые зависимостью соединения. Данный процесс декомпозиции может повторяться до тех пор, пока все результирующие переменные-отношения не будут нахо­диться в пятой нормальной форме. Дадим определение этой нормальной формы.

■ Переменная-отношение R находится в пятой нормальной форме (5НФ), которую иногда иначе называют проекционно-соединительной нормальной формой

(ПСНФ), тогда и только тогда, когда каждая нетривиальная4 зависимость соеди­нения в переменной-отношении R подразумевается ее потенциальными ключами.

Замечание. Понятие зависимости соединения, "подразумеваемой потенциальными ключами", разъясняется ниже.

Переменная-отношение SPJ не находится в 5НФ. Она удовлетворяет некоторой зави­симости соединения, а именно — ЗД-ограничению, которое, конечно же, не подразуме­вается ее единственным потенциальным ключом (этот ключ является комбинацией всех ее атрибутов). Иначе говоря, переменная-отношение SPJ не находится в 5НФ, поскольку она может быть 3-декомпозирована и возможность такой декомпозиции не подразуме­вается тем фактом, что комбинация атрибутов {St, Pi, Ji} является ее потенциальным ключом. Наоборот, после 3-декомпозиции проекции SP, PJ и JS находятся в ЗНФ, по­скольку в них вовсе нет нетривиальных зависимостей соединения.

Поскольку еще не было дано объяснение выражения "зависимость соединения, подра­зумеваемая потенциальными ключами", вероятно, пока не вполне очевиден тот факт, что любая переменная-отношение в 5НФ автоматически находится в 4НФ. Однако это так, по­скольку многозначная зависимость является частным случаем зависимости соединения. Действительно, Фейгин в [12.14] показал, что любая многозначная зависимость, подразу­меваемая потенциальным ключом, на самом деле должна быть функциональной зависимо­стью, в которой потенциальный ключ является детерминантом. В той же работе Фейгин показал, что любая переменная-отношение может быть подвергнута декомпозиции без по­терь на эквивалентный набор переменных-отношений в 5НФ, т.е. 5НФ всегда достижима.

Теперь следует объяснить, что означает понятие "зависимость соединения, подразу­меваемая потенциальными ключами". Для начала в качестве простого примера (который использовался в разделе 11.5 главы 11) рассмотрим переменную-отношение поставщи­ков S с потенциальными ключами Si и SNAME. Такая переменная-отношение удовлетво­ряет нескольким зависимостям соединения, в частности следующей зависимости.

*{ { Si, SNAME, STATUS }, { Si, CITY } }

Это значит, что переменная-отношение S равносильна соединению ее проекций с атрибу­тами {St, SNAME, STATUS} и {Sf, CITY}. Поэтому она может быть подвергнута декомпози­ции без потерь на указанные проекции. (Заметьте, что ее не следует, а лишь можно подвер­гать подобной декомпозиции.) Существование данной зависимости соединения предполагает­ся на основании того факта, что атрибут {St} является потенциальным ключом данной пере­менной-отношения (в действительности это следует из теоремы Хита [11.4]). Аналогично пе­ременная-отношение S удовлетворяет еще одной зависимости соединения.

*{ { St, SNAME }, { St, STATUS }, { SNAME, CITY } }

Она следует из того, что оба атрибута, {Sf} и {SNAME}, являются потенциальными ключами.

Как следует из приведенного выше примера, заданная зависимость соединения *{А, В, Z} подразумевается потенциальными ключами тогда и только тогда, когда ка­ждое подмножество атрибутов А, В, ..., Z фактически является суперключом для данной переменной-отношения. Таким образом, относительно заданной переменной-отношения R можно утверждать, что она находится в 5НФ, только при условии, что из­вестны все ее потенциальные ключи и все зависимости соединения, существующие в ней. Однако в отличие от функциональных и многозначных зависимостей (для которых обычно существует вполне очевидное обоснование в реальном мире) обнаружить все за­висимости соединения совсем непросто. Суть в том, что смысловое значение зависимо­стей соединения, которые не являются одновременно многозначными и функциональ­ными, далеко не всегда очевидно. Следовательно, процедура определения того, что не­которая переменная-отношение все еще находится в 4НФ, а не в 5НФ, и, таким образом, существует возможность ее дальнейшей выгодной декомпозиции, все еще остается не вполне ясной. Однако, как следует из опыта, подобные переменные-отношения достаточ­но экзотичны и чрезвычайно редко встречаются на практике.

В заключение заметим, что, как следует из определения, 5НФ является окончатель­ной нормальной формой по отношению к операциям проекции и соединения (что от­ражено в ее альтернативном названии — проекционно-соединительная нормальная фор­ма). Таким образом, если переменная-отношение находится в 5НФ, то гарантируется, что она не содержит аномалий, которые могут быть исключены посредством ее раз­биения на проекции5. Если переменная-отношение находится в ЗНФ, то единственными в ней являются те зависимости соединения, которые подразумеваются ее потенциальны­ми ключами, и тогда единственными допустимыми декомпозициями будут декомпози­ции, которые основаны на этих потенциальных ключах. (Каждая проекция в подобной декомпозиции будет состоять из одного или нескольких потенциальных ключей плюс нуль или более дополнительных атрибутов.) Например, переменная-отношение постав­щиков S находится в ЗНФ. Как упоминалось выше, эта переменная-отношение может быть подвергнута дальнейшей декомпозиции без потерь, причем в нескольких вариантах, но каждая проекция в любом из этих вариантов по-прежнему будет содержать один из исходных потенциальных ключей. Следовательно, подобная декомпозиция не даст ника­ких дополнительных преимуществ.

Соседние файлы в папке Дейт К. Дж. Введение в системы баз данных [7 издание]