Программирование >>  Хронологические базы данных 

1 ... 147 148 149 [ 150 ] 151 152 153 ... 348


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

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

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

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

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

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

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

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

*{ { SI, SNAME, STATUS }, { Sl, CITY } }

Зависимость соединения * {A, В, ..., Z} называется тривиапьной тогда и только тогда, когда одна из проекций А, В, ..., Z является проекцией, идентичной R (т.е. проекцией по всем атрибутам переменной-отношения R).



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

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

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

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

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

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



12.4. Общая схема процедуры нормализации

До данного момента в этой (и предшествующей) главе описывалась технология декомпозиции без потерь, предназначенная для использования в процессе проектирования базы данных. Основная идея состоит в следующем. Пусть дана некоторая переменная-отношение R, представленная в 1НФ, в совокупности с набором определенных для нее функциональных зависимостей, многозначных зависимостей и зависимостей соединения. Задача заключается в систематическом разбиении исходной переменной-отношения R на набор меньших (т.е. имеющих меньшую степень) переменных-отношений, который в некотором заданном смысле будет эквивалентен переменной-отношению R, но с определенной точки зрения будет более предпочтительным. (Исходная переменная-отношение R может быть получена за счет предварительного исключения тех атрибутов, которые принимают в качестве значений отношения, как было описано в разделе 12.2 или в ответе к упр. 11.3.) Каждый этап процесса нормализации заключается в разбиении на проекции переменных-отношений, полученных на предыдущем этапе. При этом на каждом этапе нормализации существующие ограничения используются для выбора тех проекций, которые будут получены в этот раз. Весь процесс можно неформально определить с помощью перечисленных ниже правил.

1. Переменную-отношение в 1НФ следует разбить на такие проекции, которые позволят исключить все функциональные зависимости, не являющиеся неприводимыми. В результате будет получен набор переменных-отношений в 2НФ.

2. Полученные переменные-отношения в 2НФ следует разбить на такие проекции, которые позволят исключить все существующие транзитивные функциональные зависимости. В результате будет получен набор переменных-отношений в ЗНФ.

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

Замечание. Правила 1-3 могут быть объединены в одно: Исходную переменную-отношение следует разбить на проекции, позволяющие исключить все функциональные зависимости, в которых детерминанты не являются потенциальными ключами .

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

Замечание. На практике такие многозначные зависимости обычно исключаются перед выполнением этапов 1-3 ( устранение независимых МЗЗ ), как упоминалось при рассмотрении примера с переменной-отношением СТХ в разделе 12.2.

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



1 ... 147 148 149 [ 150 ] 151 152 153 ... 348

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика