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

12.1. Введение

В предыдущей главе были описаны основные идеи дальнейшей нормализации вплоть до нормальной формы Бойса-Кодда (НФБК) включительно (т.е. до формы, которой можно достичь, используя понятие функциональной зависимости). В этой главе обсуждение во­проса дальнейшей нормализации завершается рассмотрением четвертой и пятой нор­мальных форм (4НФ и 5НФ). Как будет показано ниже, для определения 4НФ необходимо ввести понятие многозначной зависимости (МЗЗ), которое является обобщением понятия функциональной зависимости. Аналогично для определения понятия 5НФ необходимо вве­сти новый тип зависимости, которая называется зависимостью соединения (ЗС). Она яв­ляется обобщением понятия многозначной зависимости подобно тому, как многозначная зависимость является обобщением понятия функциональной зависимости. В разделе 12.2 будут рассмотрены понятия многозначной зависимости и 4НФ, в разделе 12.3 — понятия зависимости соединения и 5НФ; также будет разъяснено, почему 5НФ в некотором смысле можно считать окончательной нормальной формой. Сразу же следует отметить, что описа­ния многозначной зависимости и зависимости соединения будут менее формальными и полными, чем описание функциональных зависимостей, данное в главе 10. Более подроб­ную информацию заинтересованный читатель может найти в работах, представленных в списке рекомендуемой литературы в конце этой главы.

После описания основных понятий в разделе 12.4 дается обзор процедуры нормализации в целом с дополнительными комментариями. Затем в разделе 12.5 кратко обсуждается понятие ^нормализации. В разделе 12.6 описывается еще один важный принцип проектирования — ортогональное проектирование (orthogonal design). Наконец, в разделе 12.7 коротко обсуж­даются некоторые возможные направления будущих исследований в области нормализации, а заключительный раздел 12.8 представляет собой краткое резюме всей главы.

12.2. Многозначные зависимости и четвертая нормальная форма

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

рибутов названия курса (COURSE), а также атрибута-отношения с именами преподавателей (TEACHERS) и атрибута-отношения с названиями учебников (TEXTS) (на рис. 12.1 показаны два таких кортежа). Смысл каждого кортежа состоит в том, что соответствующий курс может преподаваться любым из указанных преподавателей с использованием всех указанных учеб­ников. Предположим, что для заданного курса может быть определено произвольное количе­ство соответствующих преподавателей и учебников. Более того, допустим, хотя это и не со­всем реалистичное допущение, что преподаватели и рекомендуемые учебники совершенно независимы друг от друга. Это значит, что независимо от того, кто преподает данный курс, всегда используется один и тот же набор учебников. Наконец, допустим, что определенный преподаватель или определенный учебник может быть связан с любым количеством курсов.

НСТХ

COURSE

TEACHERS

TEXTS

Physics

TEACHER

TEXT

Prof. Green Prof. Brown

Basic Mechanics Principles of Optics

Math

TEACHER

TEXT

Prof. Green

Basic Mechanics Vector Analysis Trigonometry

Puc. 12.1. Пример значений данных в переменной-отношении НСТХ

Пусть необходимо (как в разделе 11.6 предыдущей главы) исключить атрибуты, прини­мающие в качестве значений отношения. Один из способов (но не тот, который описан в от­вете к упр. 11.3; к нему мы вернемся в конце этого раздела) заключается в простой замене пе­ременной-отношения НСТХ переменной-отношением СТХ с тремя скалярными атрибутами, COURSE, TEACHER и TEXT, как показано на рис. 12.2. Как видно из этого рисунка, каждый кортеж исходной переменной-отношения НСТХ порождает т * п кортежей в переменной-отношении СТХ, где т и п являются значениями кардинальности для отношений TEACHERS и TEXTS в дан­ном кортеже переменной-отношения НСТХ. Обратите внимание, что все атрибуты результи­рующей переменной-отношения СТХ входят в состав ее ключа (в отличие от переменной-отношения НСТХ, потенциальный ключ которой {COURSE} состоял из единственного атрибута).

СТХ

COURSE

TEACHER

TEXT

Physics

Prof. Green

Basic Mechanics

Physics

Prof. Green

Principles of Optics

Physics

Prof. Brown

Basic Mechanics

Physics

Prof. Brown

Principles of Optics

Math

Prof. Green

Basic Mechanics

Math

Prof. Green

Vector Analysis

Math

Prof. Green

Trigonometry

Puc. 12.2. Набор значений данных в переменной-отношении СТХ, эквивалентный приве­денному выше примеру значений данных в переменной-отношении НСТХ

Данные, помещаемые в переменную-отношение СТХ, имеют следующий смысл: кор­теж {C0URSE;c, TEACHER:t, ТЕХТ:х} появляется в переменной-отношении СТХ тогда и только тогда, когда курс с читается преподавателем t с использованием учебника х. То­гда, принимая во внимание, что для каждого курса указаны все возможные комбинации имени преподавателей и названий учебников, можно утверждать, что для переменной-отношения СТХ верно следующее ограничение.

ЕСЛИ кортежи (с,tl,xl) и{с,t2,х2) присутствуют одновременно,

ТО кортежи (с,tl,х2) и {с, t2, xl) также присутствуют одновременно.

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

Очевидно, что переменная-отношение СТХ характеризуется значительной избыточно­стью, вследствие чего возникнут аномалии обновления. Например, для добавления ин­формации о том, что курс физики может читаться новым преподавателем, необходимо соз­дать два новых кортежа, по одному для каждого используемого учебника. Как можно из­бежать появления таких проблем? Здесь нетрудно заметить две следующие особенности.

  1. Рассматриваемые проблемы возникают в результате того, что преподаватели и учебники совершенно не зависят друг от друга.

  2. Ситуацию можно существенно улучшить, если выполнить декомпозицию перемен­ной-отношения СТХ на две проекции (например, с именами СТ и СХ) с атрибутами {COURSE, TEACHER} и {COURSE, TEXT} соответственно (рис. 12.3).

СТ СХ

COURSE

TEACHER

COURSE

TEXT

Physics

Prof. Green

Physics

Basic Mechanics

Physics

Prof. Brown

Physics

Principles of Optics

Math

Prof. Green

Math

Basic Mechanics

Math

Vector Analysis

Math

Trigonometry

Рис. 12.3. Значения данных в проекциях СТ и СХ, которые соответствуют содержанию переменной-отношения СТХ, показанному на рис. 12.2

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

Замечание. Здесь читатель может возразить, что избыточность данных в переменной-отношении СТХ вовсе не была необходимой по определению, а потому соответствующие ей аномалии обновления также совершенно необязательно были неизбежны. Точнее го­воря, можно предположить, что для описания некоторого курса в переменную-отно­

шение СТХ необязательно включать все возможные комбинации "преподаватель — учеб­ник". Например, двух кортежей вполне достаточно, чтобы показать, что курс физики преподается двумя преподавателями с использованием двух учебников. Проблема за­ключается в том, какие именно два кортежа следует выбрать? Любой вариант выбора приводит к переменной-отношению с совершенно неочевидной интерпретацией и до­вольно странным характером обновления. (Попробуйте подобрать предикат для такой переменной-отношения, т.е. задать критерии приемлемости для данной переменной-отношения операции обновления того или иного типа.)

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

Существование "проблем", которые связаны с переменными-отношениями в НФБК, подобными переменной-отношению СТХ, было замечено достаточно давно, и способы их разрешения также вскоре были определены, по крайней мере интуитивно. Однако только в 1971 году эти идеи были сформулированы Фейгином (Fagin) в строгом теоретическом виде с использованием понятия многозначной зависимости, или МЗЗ [12.13]. Много­значную зависимость можно считать обобщением понятия функциональной зависимости в том смысле, что каждая функциональная зависимость также является многозначной (однако обратное утверждение неверно, поскольку существуют многозначные зависимо­сти, которые не являются функциональными). В переменной-отношении СТХ есть две многозначные зависимости.

COURSE TEACHER

COURSE TEXT

Обратите внимание на двойную стрелку, которая в многозначной зависимости А —>-» В оз­начает, что В многозначно зависит от А или А многозначно определяет В. Первая из

этих зависимостей, COURSE TEACHER, означает, что, хотя для каждого курса не су­ществует одного соответствующего только ему преподавателя, т.е. не выполняется функ­циональная зависимость COURSE —> TEACHER, каждый курс имеет вполне определенное множество соответствующих преподавателей (в общем случае их может быть несколько). Если говорить точнее, под понятием "вполне определенное множество" в нашем случае подразумевается, что для данного курса с и данного учебника х множество преподавателей t, соответствующее паре (с, х) переменной-отношения СТХ, зависит от значения с и совершенно не зависит от значения х. Вторая многозначная зависимость имеет аналогичную интерпретацию.

Исходя из изложенного, можно привести формальное определение многозначной зависимости.

■ Пусть А, В и С являются произвольными подмножествами множества атрибутов переменной-отношения R. Тогда подмножество В многозначно зависит от под­множества А, что символически выражается записью

А -™")"^ В

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

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

А В | С

Для рассматриваемого примера такая запись будет иметь следующий вид. COURSE TEACHER | TEXT

Ранее уже утверждалось, что многозначные зависимости являются обобщениями функциональных зависимостей в том смысле, что всякая функциональная зависимость является многозначной. Точнее говоря, функциональная зависимость — это многознач­ная зависимость, в которой множество зависимых значений, соответствующее заданному значению детерминанта, всегда является одноэлементным множеством. Таким образом, если А —> В, то А —»■» В.

Теперь, возвращаясь к исходной задаче с переменной-отношением СТХ, можно отме­тить следующее: описанная ранее проблема с переменными-отношениями этого типа возникает из-за того, что они содержат многозначные зависимости, которые не являются функциональными. (Следует отметить совсем неочевидный факт, что именно наличие таких МЗЗ требует вставки двух кортежей, когда необходимо добавить сведения о новом преподавателе физики. Данные два кортежа необходимы для поддержания ограничения целостности, представленного этой МЗЗ.) Проекции СТ и СХ не содержат многозначных зависимостей, а потому они действительно представляют собой некоторое усовершенст­вование исходной структуры. Поэтому было бы желательно заменить исходную пере­менную-отношение СТХ двумя рассматриваемыми проекциями. Это действие будет пра­вомочным в соответствии с теоремой Фейгина [12.13], которая приведена ниже.

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

(Обратите внимание, что эта теорема является более строгой версией теоремы Хита, описанной в главе 11.) Теперь, следуя работе Фейгина [12.13], можно дать определение четвертой нормальной формы. (Эта нормальная форма получила такое название потому, что в момент ее появления НФБК все еще считалась третьей нормальной формой.)

■ Переменная-отношение R находится в четвертой нормальной форме (4НФ) то­гда и только тогда, когда в случае существования таких подмножеств А и В атри­бутов этой переменной-отношения R, для которых выполняется нетривиальная3многозначная зависимость А —>-» В, все атрибуты переменной-отношения R также функционально зависят от атрибута А.

Иначе говоря, в переменной-отношении R могут находиться только нетривиальные зависимости (функциональные или многозначные) вида К —> X (т.е. некоторый атрибут X функционально зависит от суперключа К). Это можно также сформулировать в следую­щей эквивалентной форме: переменная-отношение R находится в 4НФ, если она нахо­дится в НФБК и все многозначные зависимости в переменной-отношении R фактически представляют собой функциональные зависимости от ее ключей. Обратите внимание, что, исходя из этого определения, нахождение в 4НФ предполагает обязательное нахож­дение в НФБК.

Переменная-отношение СТХ не находится в 4НФ, поскольку содержит многозначную зависимость, которая не является функциональной, не говоря уже о том, что последняя должна быть еще и функциональной зависимостью от ключа. Однако обе ее проекции, СТ и СХ, находятся в 4НФ. Следовательно, 4НФ обеспечивает лучшую структуру данных по сравнению с НФБК, поскольку позволяет исключить некоторые нежелательные зависи­мости. Кроме того, в [12.13] Фейгин показал, что 4НФ всегда является достижимой, т.е. любая переменная-отношение может быть подвергнута декомпозиции без потерь в экви­валентный набор переменных-отношений в 4НФ. Однако, как показано в разделе 11.5 на примере переменной-отношения SJT, такая декомпозиция (или даже декомпозиция до НФБК) не всегда оказывается полезной и нужной.

Замечание. Следует отметить, что хотя идеи Риссанена, изложенные в посвященной независимым проекциям работе [11.6], сформулированы с использованием функцио­нальных зависимостей, они также справедливы в отношении многозначных зависимо­стей. Напомним, что в соответствии с этими идеями переменную-отношение R{A, В, С}, удовлетворяющую функциональным зависимостям А —> В и В —» С, необходимо разби­вать на проекции (А, В} и (В, С}, а не на проекции {А, В} и {А, С). Это утверждение также будет верно, если вместо функциональных зависимостей использовать многознач­ные зависимости А -»+ В и В —С.

В заключение вернемся, как было обещано, к вопросу об исключении атрибутов, принимающих в качестве значений отношения, или АО (атрибутов-отношений) для краткости. В частности, рассмотрим процедуру такого исключения, описанную в от­вете к упр. 11.3 из предыдущей главы. Суть в том, что на практике для достижения 4НФ достаточно учитывать следующее: если мы имеем дело с переменной-отношением с двумя или более независимыми АО, то прежде всего следует разде­лить эти АО. Данное правило имеет не только интуитивно понятный смысл. Это именно то, что было сделано в ответе к упр. 11.3! Например, в случае переменной-отношения НСТХ прежде всего следует заменить исходную переменную-отношение двумя ее проекциями HCT{COURSE, TEACHERS} и HCX{COURSE, TEXTS}, где перемен­

ные-отношения TEACHERS и TEXTS все еще сохраняют АО. Далее эти АО можно будет исключить из двух полученных проекций (с приведением их к НФБК) обычным спо­собом, и тогда "проблема", свойственная находящейся в НФБК переменной-отношению СТХ, просто никогда не возникнет. Как видите, понятия многозначных зависимостей и 4НФ предоставляют формальное обоснование тех правил, которые в противном случае остались бы чисто эмпирическими.

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