Введение в системы БД (542480), страница 114
Текст из файла (страница 114)
главу б, раздел !.б), повторяющееся до тех пор, пока необходимый результат не будет достигнут. В этой связи описанная процедура гарантирует, что одновременно исключаются все те многозначные зависимости, которые не являются функциональными. Поэтому полученные в результате выполнения предложенной процедуры переменные-отношения на самом деле находятся в 4НФ, а не в НФБ)ч' !см.
главу !2). 460 Часть 111. Проектирование базы данньп ОГГ1СЕ1 ( ОЕРТ4, ОГГ4, АКЕй ) РК1МАКХ КЕХ ( ОЕРТ4, ОГГ4 ГНОМЕ) ( ОЕРТ4, ОГГ4, РНОНЕ4 ) РК1МАКХ КЕХ ( ОЕРТ4, ОГГ4, РНОНЕ4 Этап 2. Приведение отношений к 2НФ Теперь переменные-отношения, находящиеся в ! НФ, можно привести к эквива- лентной совокупности переменных-отношений в 2НФ, исключив те функциональ- ные зависимости, которые не являются неприводимыми. Ниже все такие перемен- ные-отношения рассматриваются последовательно одна за другой. ОЕРТ1 ЕМР1 Эта переменная-отношение уже находится в 2НФ.
Прежде всего следует отметить, что атрибут ОЕРТ4 является избыточным компонентом первичного ключа данной переменной-отношения. В качестве первичного ключа здесь можно принять атрибут ЕМР4, причем в таком виде данная переменная-отношение уже будет находиться в 2НФ. Опять отметим, что необязательно использовать атрибут ОЕРТ4 в качестве компонента первичного ключа. Поскольку атрибут ОЕРТ4 функционально зависит от атрибута ЕМР4, имеется неключевой атрибут (ОЕРТ4), зависимость которого от первичного ключа (комбинапии атрибутов (ЕМР4, БОВТ1ТЬЕ)) не является неприводимой и, следовательно, переменная-отношение ЮОВ1 не находится во 2НФ. Эту переменную- отношение можно заменить двумя другими.
ЮОВ2А ( ЕМР4 ЛОВТ1ТЬЕ РК1МАКХ КЕХ ( ЕМР4, ТОВТ1ТЬЕ ) ЛОВ1 ЮОВ2В ( ЕМР4, ОЕРТ4 ) РК1МАКХ КЕХ ( ЕМР4 Однако переменная-отношение БОВ2А является проекцией переменной- отношения БАЬН1БТ2 (ниже это описано подробнее), а переменная- отношение ЛОВ2 — проекцией переменной-отношения ЕМР! (ниже она будет переименована в ЕМР2). Следовательно, обе вновь созданные переменные-отношения могут быть просто удалены. БАЬН1БТ1 Так же, как и в случае переменной-отношения ЛОВ1, атрибут ОЕРТ4 можно полностью удалить.
Более того, как компонент первичного ключа атрибут БОВТ1ТЬЕ не требуется. В качестве первичного ключа достаточно использовать комбинацию атрибутов (ЕМР4, ВАТЕ]. В результате будет получена следующая переменная-отношение, находящаяся в 2НФ. БА1Н1БТ2 ( ЕМР4, ВАТЕ, ЮОВТ1ТЬЕ, БАЬАКХ ) РК1МАКХ КЕХ ( ЕМР4, ОйТЕ ) РК011 Так же, как и в случае с переменной-отношением ЕМР1, можно рассмат- ривать атрибут ОЕРТ4 как неключевой, причем данная переменная- отношение будет находиться в 2НФ.
Здесь можно применить аналогичное рассуждение. ОГГ1СЕ1 Глава 11. Дальнейшая нормалшацияг формы 1НФ, 2НФ, ЗНФ и НФБК 461 РНОНЕ1 Атрибут ОЕРТ$ можно удалить совсем, поскольку переменная-отношение (ОЕРТ$, ОГГ$) является проекцией переменной-отношения ОГГ1СЕ1 (переименованной далее в ОГГ1СЕ2). Кроме того, атрибут ОГГ$ функционально зависит от атрибута РНОНЕ$, поэтому в качестве первичного ключа достаточно принять только атрибут РНОНЕ$, в результате чего будет получена приведенная ниже переменная-отношение в 2НФ. РНОНЕ2 ( РНОНЕ$, ОГГ4 ] РВ1МАВХ КЕХ ( РНОНЕ$ ) Обратите внимание, что эта переменная-отношение необязательно является проекцией переменной-отношения ЕМР2(телефоны и офисы могут существовать и без их соотнесения с конкретными сотрудниками), поэтому ее нельзя удалить. Таким образом, мы получили следующий набор переменных-отношений в 2НФ.
ОЕРТ2 ( ОЕРТ$, ВВОООЕТ, МОВ ЕМР$ ) РВ1МАВХ КЕХ ( ОЕРТ$ ) АЬТЕВНАТЕ КЕХ ( МОР. ЕМР$ ] ЕМР2 ( ЕМР$, ОЕРТ$, РВОМ, ОГГ$, РНОНЕ$ ) РВ1МАВХ КЕХ ( ЕМР$ ) ЯАЬН1ЯТ2 ( ЕМР$, ВАТЕ, ЮОВТ1ТЬЕ, ЯАЬАВХ ] РВ1МАВХ КЕХ ( ЕМР$, ВАТЕ ) РВОЮ2 ( РВОЮ$, ОЕРТ$, РВОООЕТ ) РВ1МАВХ КЕХ ( РВОУ$ ОГГХСЕ2 ( ОГГ$, ОЕРТ4, АВЕА ] РВ1МАВХ КЕХ ( ОГГ$ РНОНЕ2 ( РНОНЕ$, ОГГ$ РВ1МАВХ КЕХ ( РНОНЕ$ ) Эгнан 3.
Приведение к ЗНФ Теперь можно привести переменные-отношения, находящиеся в 2НФ, к эквивалентному набору переменных-отношений в ЗНФ, для чего необходимо исключить транзитивные зависимости. Единственной переменной-отношением, которая находится в 2НФ и ие находится в ЗНФ, является переменная-отношение ЕМР2, в которой атрибуты ОГГ$ и ВЕРТ$ транзитивно зависят от первичного ключа ЕМР$: атрибут ОГГ$ через атрибут РНОНЕ$, а атрибут ОЕРТ$ — через атрибут РВОЗ$, а также через атрибут ОГГ$ (следовательно, и через атрибут РНОНЕ$).
Таким образом, переменной-отношению ЕМР2 соответствует следующий набор переменных-отношений (проекций) в ЗНФ. ЕМРЗ ( ЕМР$, РВОЛ$, РНОНЕ$ ] РВХМАВХ КЕХ ( ЕМР$ ) Х ( РНОНЕ$, ОГГ4 РВ1МАВХ КЕХ ( РНОНЕ$ ) 462 Часть 111 Проектирование базы данньп Х ( РКОЗ$, ОЕРТ$ ) РК1ИАКУ КЕУ ( РКО1$ 8 ( ОГГ$, ОЕРТ$ ) РК1ИАКУ КЕУ ( ОГГ$ ) Однако переменная-отношение Х вЂ” это аналог переменной-отношения РНОИЕ2, переменная-отношение У вЂ” это проекция переменной-отношения РКОЮ2, а переменная-отношение 8 — это проекция переменной-отношения ОГГ1СЕ2. Следовательно, окончательная совокупность переменных-отношений в ЗНФ будет выглядеть слелуюшим образом.
ОЕРТЗ ( ОЕРТ$, ОВНООЕТ, МОК ЕМР$ РК1МАКУ КЕУ ( ОЕРТ$ АЬТЕКИАТЕ КЕХ ( МОК ЕМР$ ] ЕМРЗ ( ЕИР$, РКОЗ$, РНОИЕ$ РК1ИАКУ КЕУ ( ЕМР$ ) БАЬН1ЯТЗ ( ЕМР$, ВАТЕ, ЮОВТ1ТЬЕ, ЯАЬАКУ ) РК1МАКУ КЕУ ( ЕМР$, ВАТЕ ) РКОЗЗ ( РКОЗ$, ОЕРТ$, РВОООЕТ ) РК1ИАКУ КЕУ ( РКОЛ$ ) ОГГ1СЕЗ ( ОГГ$, ОЕРТ$, АКЕА ) РК1ИАКУ КЕУ ( ОГГ$ РНОИЕЗ ( РНОИЕ$, ОГГ$ ) РК1ИАКУ КЕУ ( РНОИЕ$ Наконец, отметим, что каждая из этих переменных-отношений в ЗНФ уже находится в НФБК. ° Следует указать на то, что при учете некоторых (разумных) дополнительных семантических ограничений этот набор переменных-отношений становится сильно избыточным (5,1], так как проекция переменной-отношения РКОЛЗ по атрибутам (РКОЗ$, ОЕРТ$) практически всегда эквивалентна проекции, выполненной для результата соединения переменных-отношений ЕИРЗ, РНОИЕЗ и ОГГ1СЕЗ.
В заключение отметим, что полученный набор переменных-отношений в НФБК можно было "выделить" непосредственно на диаграмме ФЗ. (Вопрос. Как именно это можно сделать?) Зачечание. Это не значит, что "выделить" результирующий набор переменных- отношений в НФБК можно всегда; на самом деле определить результаты декомпозиции подобным образом можно лишь в некоторых конкретных случаях. Точнее говоря, для данной переменной-отношения К, удовлетворяющей множеству функциональных зависимостей Б, представленный ниже алгоритм (этапы Π— 8) гарантирует декомпозицию 0 переменной-отношения К на переменные-отношения в ЗНФ (но не НФБК), которая выполняется одновременно без потерь информации и с сохранением зависимостей.
Глава 11. Дальнейшая нормализация: формы 1НФ, 2НФ, 3НФ и НФБК 463 О. В качестве начального значения для декомпозиции Р зададим пустое множество. 1. Пусть множество 1 является неприводимым покрьпием для множества функциональных зависимостей Я. 2. Пусть Х является множеством атрибутов в левой части некоторой зависимости Х вЂ” > Т, входящей в множество 1. 3. Пусть полное множество ФЗ в 1 с левой частью, равной множеству атрибутов Х, состоит из зависимостей Х вЂ” э У1, Х вЂ” э У2, ..., Х вЂ” > Ул.
4. Пусть Х является объединением множеств атрибутов У1, Х2, ..., Тп. 5. Заменим декомпозицию Р объединением текущего значения Р с проекцией переменной-отношения й по атрибутам Х и Х. 6. Повторим пп. 3 — 5 для каждого атрибута из множества Х. 7. Пусть А1, й2, ..., Лп являются неучтенными до сих пор атрибутами переменной- отношения й (т.е, такими, которые еще не включены в какую-либо из переменных-отношений в множестве Р). Заменим декомпозицию Р объединением текущего значения Р с проекцией переменной-отношения й по атрибутам А1, А2, ..., Хп.
8. Если ни одна из переменных-отношений в декомпозиции Р не содержит потенциального ключа й, заменим декомпозицию Р объединением текущего значения Р с проекцией переменной-отношения й по ее некоторому потенциальному ключу. В приведенном ниже алгоритме гарантируется получение декомпозиции Р переменной-отношения й на переменные-отношения в НФБК, которая выполняется без потерь информации, но необязательно с сохранением зависимостей.
О, Зададим в качестве начального значения для декомпозиции Р переменную- отношение й. 1. Для каждой переменной-отношения Т (которая не находится в НФБК) из состава декомпозиции Р выполним действия, перечисленные в пп. 2 и 3. 2. Пусть Х вЂ” э Т является функциональной зависимостью в переменной-отношении Т, в которой нарушаются некоторые требования НФБК.
3. Заменим переменную-отношение Т в декомпозиции Р двумя проекциями, а именно: одной по атрибутам Х и У, а другой — по всем атрибутам, за исключением Т. Возвращаясь к примеру с персоналом компании, можно предложить читателю еще одно упражнение, которое относится не только к самой процедуре нормализации, но и к проектированию базы данных в целом. Попробуйте расширить описанный выше макет базы данных, включив в него все необходимые определения внешних кяючей.
11.4. На рис. 11.21 показаны наиболее важные функциональные зависимости, а соответствующие семантические допущения приведены ниже. ° Никакие два клиента не имеют одинаковых адресов доставки. ° Каждый заказ имеет уникальный номер. ° Каждая детальная строка заказа характеризуется номером строки, уникальным для данного заказа.
464 Часть 1П. Проектирование базы данных Рлс. 11.21, Диаераима зависимостей для упр. 11.4 Соответствующий набор переменных-отношений в НФБК будет выглядеть приблизительно так. СПЯТ ( СПЯТ(, ВАЕ, СВЕПЫМ, ПТБСОПМТ ) РВ1МАВУ КЕУ ( СПЯТЯ ) ЯН1РТО ( АППВЕЯЯ, СПЯТ$ ) РВ1МАВУ КЕУ ( АППВЕЯЯ ) ОВПНЕАП ( ОВПч, АППВЕЯБ, ПАТЕ ) РВ1МАВТ КЕУ ( ОВП( ОВПЫМЕ ( ОВПР, ЫМЕР, 1ТЕМЯ, ОТЦОВО, ОТУОПТ ) РВ1МАВТ КЕУ ( ОВПБ, ЫНЕБ ) 1ТЕМ ( 1ТЕМ(, ПЕЯСЕ ) РВ1МАВУ КЕУ ( 1ТЕМ» ) 1Р ( 1ТЕМ(, РЬАМТБ, ()ТРОН, ПАМОЕВ ) РВХМАВУ КЕУ ( 1ТЕМя, Р1АМТя 11.Я.