Аксиомы многозначной зависимости. Многозначная зависимость. Нормализация, функциональные и многозначные зависимости

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

В свое время было обращено внимание на то, что функциональных зависимостей недостаточно для представления в реляционной модели той семантики предметных областей, которая относится к характеристике связей объект-свойство. В связи с этим было введено понятие многозначной зависимости .

Мы не случайно представили эти атрибуты в виде иерархической структуры, так как именно она наиболее адекват­но отражает смысл связей между указанными атрибутами. У нас нет конкретной информации о связи преподавате­лей с учебниками, мы не знаем по какому учебнику тот или иной преподаватель излагает конкретную дисциплину. Тем не менее, при представлении этого отношения мы должны в каждом его кортеже указать значения всœех трех атрибутов (по крайней мере потому, что эти атрибуты составляют ключ, а значения ключевых атрибутов всœегда должны быть определœены). Единственным выходом из данной ситуации является следующий: если с предметом, к примеру БД, связаны преподаватели Иванов и Петров и учебники Основы БД, Введение в БД и Теория БД, то в отношении каждый из этих преподавателœей должен быть связан (ассоциирован) с каждым учебником, как это показано на примере ниже. Другого выхода нет.

ЛЕКЦИЯ Предмет Преподаватель Учебник
БД Иванов Основы БД
БД Иванов Введение в БД
БД Иванов Теория БД
БД Петров Основы БД
БД Петров Введение в БД
БД Петров Теория БД

Другими словами, мы должны констатировать следующую семантику связи между преподавателями и учебника­ми: "Данный предмет преподают такие-то преподаватели и для чтения лекций по этому предмету всœе они исполь­зу­­ю­т ВСЕ указанные учебники".

Мы здесь приходим к следующему тезису:

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

Отметим, что независимость преподавателœей от учебников и наоборот, а также трактовка такой независимости согласно приведенному выше тезису свидетельствует, что в нашем отношении Лекции атрибуты Преподаватель и Учебники обладают следующим важным свойством:

Множество учебников, которые связаны с конкретным предметом, совпадает со множеством учебников, которые связаны с парой значений <предмет, преподаватель> (с предметом "БД" связаны три учебника, эти же три учебника связаны с парами значений <"БД","Иванов"> и <"БД","Петров">). И наоборот, множество преподавате­лей, которые связаны с конкретным предметом, совпадает с множеством преподавателœей, которые связаны с парой значений <предмет, учебник>.

Данное свойство является принципиальным в понимании многозначной зависимости.

Очевидно, что такое отношение избыточно и приводит к трудностям в выполнении операций манипу­ли­ро­ва­ния. Лектор входит в атрибут Преподаватель столько раз, сколько имеется учебников и об этом следует помнить вся­кий раз, производя операции вставки удаления и замены преподавателœей. То же самое имеет место и для учебников.

В связи с этим было введено понятие многозначной зависимости.

Определœение . Пусть задано отношение R с атрибутами (или наборами атрибутов) А, В, С. Говорят, что существует многозначная зависимость (multivalued dependecy ) В от А (или А многозначно определяет В), и это обозначается как А ®® В, в случае если при заданных значениях атрибутов из А существует множество связанных значений атрибутов из В и это множество В-значений не зависит каким-либо образом от значений атрибутов из С.

К примеру, в отношении ЛЕКЦИЯ атрибут Преподаватель многозначно зависит от атрибута Предмет (Предмет ®® Преподаватель) и атрибут Учебник многозначно зависит от Предмет (Предмет ®® Учебник).

Дадим формальное определœение многозначной зависимости. Пусть отношение R определœено на множестве атрибутов M и А, В – подмножества М, причем А и В могут пересекаться. Определим через В R (а) множество проекций кортежей отношения R по атрибутам В, которые связаны с конкретным кортежем, спроецированным по атрибутам А, то есть:

В R (а) = {b | $r Î R, r[A] = a & r[B] = b}

Пусть С = М – (А В). Тогда будем говорить, что В R (а) в R имеет место многозначная зависимость А ®® В, если

"ас Î R В R (аc) = В R (а)

Другими словами, совокупность значений атрибутов В, которая появляется в кортежах отношения R с хаданным значением а атрибутов А, появляется также с каждой комбинацией значений а и с Î С, ас Î R. Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, множество значений В для заданного а не зависит от значений С, появляющихся вместе с а.

По определœению А ®® Æ для любой совокупности атрибутов А из R. Более того всœеда имеет место А ®® В, в случае если R определœено только на множестве атрибутов А В. Эти два вида многозначных зависимостей называются тривиальными так как они присутствуют во любых отношениях.

Очевидно, что любая функциональная зависимость является многозначной, но не наоборот. Тем не менее, функциональные и многозначные зависимости существенно различаются. Функциональная зависимость А ® В определяется только через А и В, существование же многозначной зависимости А ®® В является свойством всœей совокупности атрибутов R.

До сих пор, определяя нормальные формы всех уровней, включая НФБК, мы пользовались понятием функциональной зависимости между атрибутами отношения R. Для дальнейшего продолжения нормализации, в частности, для перехода к обсуждению четвертой нормальной формы, нам придется ввести понятие многозначной зависимости (МЗЗ). Многозначная зависимость между атрибутами A и B записывается A®®B и читается как "В многозначно зависит от А" или "А многозначно определяет В".

Пусть А, В, С произвольные подмножества множества атрибутов отношения R. Тогда В многозначно зависит от А ( A ®® B ) тогда и только тогда, когда множество значений В, соответствующее значениям А и С отношения R , зависит только от А, но не зависит от С. Многозначные зависимости всегда образуют связанные пары, т.е. если для отношения R{A,B,C} выполняется A®®B, то выполняется также и A®®С. Эти зависимости символически представляются в виде:

А ®® В/С

Многозначная зависимость может быть определена как тривиальная и нетривиальная.

Многозначная зависимость А®®В некоторого отношения R определяется как тривиальная , если атрибут В является подмножеством атрибута А или если объединение А и В образуют все множества атрибутов R, т.е.

А È В = R

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

Теорема Фейгина . Пусть А, В и С являются множествами атрибутов отношения R {А, В, С}. Отношение R будет равно соединению его проекций {А, В} и {А, С}, тогда и только тогда, когда для отношения R выполняется многозначная зависимость А ®® В/С.

4.4. Четвертая нормальная форма (4нф)

Использование 4НФ обосновано тем, что в ряде случаев при структурировании предметной области мы можем составить реляционное отношение, включающее в себя несколько независимых повторяющихся групп данных. Так, например, некоторая фирма разливает свою продукцию в тару, имеющую несколько размеров. Эту тару фирма получает от нескольких поставщиков. Тогда отношение Продукт в ненормализованном варианте будет выглядеть так:

Рис. 4.11. Ненормализованное отношение Продукт

Следует заметить, что каждый поставщик предоставляет фирме все необходимые ей размеры тары. Для нормализации отношения Продукт нам следует включить в него дополнительные кортежи. В результате получим отношение, показанное на Рис. 4.12.

Рис. 4.12. Нормализованное отношение НПродукт

В отношении Продукт потенциальным ключом является атрибут Товар, а в отношении НПродукт – полный набор атрибутов {Товар, Поставщик, Тара }

Отношение НПродукт характеризуется значительной избыточностью. Это означает, что в нем может возникнуть аномалия обновления. Так, например, информация о том, что появился новый поставщик, приведет к обновлению трех кортежей в отношении.

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

если А ® В, то А ®® В

Декомпозиция отношения НПродукт привела к тому, что в проекциях Товар_Поставщик и Товар_Тара исчезли нетривиальные многозначные зависимости. Поэтому они более желательны, чем исходное отношение.

Для рассматриваемого нами отношения Продукт можно записать две многозначные зависимости:

Товар ®® Поставщик / Тара

Товар ®® Тара / Поставщик

Согласно теореме Фейгина, можно произвести декомпозицию исходного отношения и представить его в виде двух проекций. В качестве исходного отношения возьмем нормализованное отношение НПродукт , а в качестве проекции -- Товар_Поставщик и Товар_Тара :

Рис. 4.13. Проекции Товар_Поставщик и Товар_Тара

Поскольку выполнена декомпозиция без потерь, обратное соединение проекции Товар_Поставщик и Товар_Тара восстановит отношение НПродукт .

В случае, представленном на Рис.4.13., для добавления информации о том, что "Святой источник" будет разливаться в тару, предоставленную новым поставщиком, достаточно включить в проекцию Товар_Поставщик один кортеж.

Определение . Отношение находится в 4НФ, если оно находится в НФБК и не содержит нетривиальных зависимостей.

r со схемой R, а также два произвольных подмножества атрибутов A,B\subseteq R. Пусть C\overset{\mathop{=}}\,R\backslash (A\cup B).

В этом случае B многозначно зависит от A, тогда и только тогда, когда множество значений атрибута B, соответствующее заданной паре отношения r, зависит от a и не зависит от c.

Символически выражается записью

A \twoheadrightarrow B.

Формально

\begin{align} & r\left(R \right),\ A,B\subseteq R,\ C=R\backslash (A\cup B) \\ & \left(A\twoheadrightarrow B \right)\Leftrightarrow \forall {{t}_{1}},{{t}_{2}}\in r\ \exists {{t}_{3}},{{t}_{4}}\in r\ :\ \left\{ \begin{align} & {{t}_{1}}\left(A \right)={{t}_{2}}\left(A \right)={{t}_{3}}\left(A \right)={{t}_{4}}\left(A \right) \\ & {{t}_{3}}\left(B \right)={{t}_{1}}\left(B \right) \\ & {{t}_{3}}\left(C \right)={{t}_{2}}\left(C \right) \\ & {{t}_{4}}\left(B \right)={{t}_{2}}\left(B \right) \\ & {{t}_{4}}\left(C \right)={{t}_{1}}\left(C \right) \\

\end{align} \right. \\ \end{align}

Многозначная зависимость A\twoheadrightarrow B называется тривиальной , если выполняется хотя бы одно из условий:

  • Множество A является надмножеством B; B\subseteq A
  • Объединение A и B образует весь заголовок отношения. A\cup B=R

Пример

Предположим, у нас есть отношение, в которое входит список учебных дисциплин, рекомендованная литература и имена лекторов, читающих соответствующие курсы:

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

Формально, здесь две МЗЗ: {Дисциплина} \twoheadrightarrow {Книга}|{Лектор} .

Во-первых, это избыточно. А во-вторых, для такого отношения необходимо разрабатывать дополнительный механизм контроля целостности. Оптимальным решением проблемы будет декомпозиция отношения на два с заголовками {Дисциплина, Книга} и {Дисциплина, Лектор} . Такая декомпозиция будет находиться в 4NF . Допустимость декомпозиции устанавливает теорема Феджина (см. далее).

Теоремы

Связные пары

Феджин показал, что многозначные зависимости образуют связные пары (в обозначениях определения):

\left(A\twoheadrightarrow B \right)\Leftrightarrow \left(A\twoheadrightarrow C \right).

Поэтому их часто представляют вместе в символической записи:

A\twoheadrightarrow B|C

Функциональные зависимости

Всякая функциональная зависимость является многозначной. Другими словами, функциональная зависимость - это многозначная зависимость, в которой множество зависимых значений, соответствующее заданному значению детерминанта, всегда имеет единичную мощность .

Правила вывода

В 1977 году Бэри, Феджин и Ховард установили, что правила вывода Армстронга можно обобщить и распространить, как на функциональные, так и на многозначные зависимости.

Пусть у нас есть отношение r\left(R \right) и множества атрибутов A,B,C,D\subseteq R. Для сокращения записи вместо X\cup Y будем писать просто XY.

Группа 1: базовые правила.

  • Дополнение \left(A\cup B\cup C=R \right)\wedge \left(B\cap C\subseteq A \right)\Rightarrow \left(\left(A\twoheadrightarrow B \right)\Leftrightarrow \left(A\twoheadrightarrow C \right) \right)
  • Транзитивность \left(A\twoheadrightarrow B \right)\wedge \left(B\twoheadrightarrow C \right)\Rightarrow \left(A\twoheadrightarrow C\backslash B \right)
  • Рефлексивность \left(B\subseteq A \right)\Rightarrow \left(A\twoheadrightarrow B \right)
  • Приращение \left(A\twoheadrightarrow B \right)\wedge \left(C\subseteq D \right)\Rightarrow \left(AD\twoheadrightarrow BC \right)

Группа 2: выводятся несколько дополнительных правил, упрощающих задачу вывода многозначных зависимостей.

  • Псевдотранзитивность \left(A\twoheadrightarrow B \right)\wedge \left(BC\twoheadrightarrow D \right)\Rightarrow \left(AC\twoheadrightarrow D\backslash BC \right)
  • Объединение \left(A\twoheadrightarrow B \right)\wedge \left(A\twoheadrightarrow C \right)\Rightarrow \left(A\twoheadrightarrow BC \right)
  • Декомпозиция \left(A\twoheadrightarrow BC \right)\Rightarrow \left(A\twoheadrightarrow B\cap C \right)\wedge \left(A\twoheadrightarrow B\backslash C \right)\wedge \left(A\twoheadrightarrow C\backslash B \right)

Группа 3: устанавливается связь между функциональными и многозначными зависимостями.

  • Репликация (копирование) \left(A\to B \right)\Rightarrow \left(A\twoheadrightarrow B \right)
  • Слияние \left(A\twoheadrightarrow B \right)\wedge \left(C\to D \right)\wedge \left(D\subseteq B \right)\wedge \left(B\cap C=\varnothing \right)\Rightarrow \left(A\to D \right)

Группа 4: для функциональных зависимостей, выводятся из вышеприведенных правил.

  • \left(A\twoheadrightarrow B \right)\wedge \left(AB\to C \right)\Rightarrow \left(A\to C\backslash B \right)

См. также

Напишите отзыв о статье "Многозначная зависимость"

Литература

  • К. Дж. Дейт. Введение в системы баз данных = Introduction to Database Systems. - 8-е изд. - М .: «Вильямс» , 2006. - С. 1328. - ISBN 0-321-19784-4 .

Отрывок, характеризующий Многозначная зависимость

Лицо стало утешать ее; Элен же сквозь слезы говорила (как бы забывшись), что ничто не может мешать ей выйти замуж, что есть примеры (тогда еще мало было примеров, но она назвала Наполеона и других высоких особ), что она никогда не была женою своего мужа, что она была принесена в жертву.
– Но законы, религия… – уже сдаваясь, говорило лицо.
– Законы, религия… На что бы они были выдуманы, ежели бы они не могли сделать этого! – сказала Элен.
Важное лицо было удивлено тем, что такое простое рассуждение могло не приходить ему в голову, и обратилось за советом к святым братьям Общества Иисусова, с которыми оно находилось в близких отношениях.
Через несколько дней после этого, на одном из обворожительных праздников, который давала Элен на своей даче на Каменном острову, ей был представлен немолодой, с белыми как снег волосами и черными блестящими глазами, обворожительный m r de Jobert, un jesuite a robe courte, [г н Жобер, иезуит в коротком платье,] который долго в саду, при свете иллюминации и при звуках музыки, беседовал с Элен о любви к богу, к Христу, к сердцу божьей матери и об утешениях, доставляемых в этой и в будущей жизни единою истинною католическою религией. Элен была тронута, и несколько раз у нее и у m r Jobert в глазах стояли слезы и дрожал голос. Танец, на который кавалер пришел звать Элен, расстроил ее беседу с ее будущим directeur de conscience [блюстителем совести]; но на другой день m r de Jobert пришел один вечером к Элен и с того времени часто стал бывать у нее.
В один день он сводил графиню в католический храм, где она стала на колени перед алтарем, к которому она была подведена. Немолодой обворожительный француз положил ей на голову руки, и, как она сама потом рассказывала, она почувствовала что то вроде дуновения свежего ветра, которое сошло ей в душу. Ей объяснили, что это была la grace [благодать].
Потом ей привели аббата a robe longue [в длинном платье], он исповедовал ее и отпустил ей грехи ее. На другой день ей принесли ящик, в котором было причастие, и оставили ей на дому для употребления. После нескольких дней Элен, к удовольствию своему, узнала, что она теперь вступила в истинную католическую церковь и что на днях сам папа узнает о ней и пришлет ей какую то бумагу.
Все, что делалось за это время вокруг нее и с нею, все это внимание, обращенное на нее столькими умными людьми и выражающееся в таких приятных, утонченных формах, и голубиная чистота, в которой она теперь находилась (она носила все это время белые платья с белыми лентами), – все это доставляло ей удовольствие; но из за этого удовольствия она ни на минуту не упускала своей цели. И как всегда бывает, что в деле хитрости глупый человек проводит более умных, она, поняв, что цель всех этих слов и хлопот состояла преимущественно в том, чтобы, обратив ее в католичество, взять с нее денег в пользу иезуитских учреждений {о чем ей делали намеки), Элен, прежде чем давать деньги, настаивала на том, чтобы над нею произвели те различные операции, которые бы освободили ее от мужа. В ее понятиях значение всякой религии состояло только в том, чтобы при удовлетворении человеческих желаний соблюдать известные приличия. И с этою целью она в одной из своих бесед с духовником настоятельно потребовала от него ответа на вопрос о том, в какой мере ее брак связывает ее.
Они сидели в гостиной у окна. Были сумерки. Из окна пахло цветами. Элен была в белом платье, просвечивающем на плечах и груди. Аббат, хорошо откормленный, а пухлой, гладко бритой бородой, приятным крепким ртом и белыми руками, сложенными кротко на коленях, сидел близко к Элен и с тонкой улыбкой на губах, мирно – восхищенным ее красотою взглядом смотрел изредка на ее лицо и излагал свой взгляд на занимавший их вопрос. Элен беспокойно улыбалась, глядела на его вьющиеся волоса, гладко выбритые чернеющие полные щеки и всякую минуту ждала нового оборота разговора. Но аббат, хотя, очевидно, и наслаждаясь красотой и близостью своей собеседницы, был увлечен мастерством своего дела.
Ход рассуждения руководителя совести был следующий. В неведении значения того, что вы предпринимали, вы дали обет брачной верности человеку, который, с своей стороны, вступив в брак и не веря в религиозное значение брака, совершил кощунство. Брак этот не имел двоякого значения, которое должен он иметь. Но несмотря на то, обет ваш связывал вас. Вы отступили от него. Что вы совершили этим? Peche veniel или peche mortel? [Грех простительный или грех смертный?] Peche veniel, потому что вы без дурного умысла совершили поступок. Ежели вы теперь, с целью иметь детей, вступили бы в новый брак, то грех ваш мог бы быть прощен. Но вопрос опять распадается надвое: первое…
– Но я думаю, – сказала вдруг соскучившаяся Элен с своей обворожительной улыбкой, – что я, вступив в истинную религию, не могу быть связана тем, что наложила на меня ложная религия.
Directeur de conscience [Блюститель совести] был изумлен этим постановленным перед ним с такою простотою Колумбовым яйцом. Он восхищен был неожиданной быстротой успехов своей ученицы, но не мог отказаться от своего трудами умственными построенного здания аргументов.
– Entendons nous, comtesse, [Разберем дело, графиня,] – сказал он с улыбкой и стал опровергать рассуждения своей духовной дочери.

Элен понимала, что дело было очень просто и легко с духовной точки зрения, но что ее руководители делали затруднения только потому, что они опасались, каким образом светская власть посмотрит на это дело.
И вследствие этого Элен решила, что надо было в обществе подготовить это дело. Она вызвала ревность старика вельможи и сказала ему то же, что первому искателю, то есть поставила вопрос так, что единственное средство получить права на нее состояло в том, чтобы жениться на ней. Старое важное лицо первую минуту было так же поражено этим предложением выйти замуж от живого мужа, как и первое молодое лицо; но непоколебимая уверенность Элен в том, что это так же просто и естественно, как и выход девушки замуж, подействовала и на него. Ежели бы заметны были хоть малейшие признаки колебания, стыда или скрытности в самой Элен, то дело бы ее, несомненно, было проиграно; но не только не было этих признаков скрытности и стыда, но, напротив, она с простотой и добродушной наивностью рассказывала своим близким друзьям (а это был весь Петербург), что ей сделали предложение и принц и вельможа и что она любит обоих и боится огорчить того и другого.

Реляционная целостность состоит из двух аспектов:

1) Целостность сущностей , заключается в том, что в базовом отношении ни один атрибут первичного ключа не может содержать отсутствующих значений, обозначаемых определителем NULL.

2) Ссылочная целостность , заключается в том, что если в отношении существует внешний ключ, то значение внешнего ключа должно либо соответствовать значению потенциального ключа некоторого кортежа в его базовом отношении, либо задаваться определителем NULL.

Нормализация, функциональные и многозначные зависимости

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

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

Денормализация (denormalization) - намеренное приведение структуры базы данных в состояние, не соответствующее критериям нормализации, обычно проводимое с целью ускорения операций чтения из базы за счет добавления избыточных данных.

Теория нормализации основывается на наличии той или иной зависимости между полями таблицы. Определены два вида таких зависимостей: функциональные и многозначные.

Функциональная зависимость . Поле В таблицы функционально зависит от поля А той же таблицы в том и только в том случае, когда в любой заданный момент времени для каждого из различных значений поля А обязательно существует только одно из различных значений поля В. Отметим, что здесь допускается, что поля А и В могут быть составными.

В паре атрибутов одного отношения, X и Y, атрибут Y функционально зависит от атрибута X, если в данном отношении одному значению X соответствует в точности одно значение Y.

Полная функциональная зависимость. Поле В находится в полной функциональной зависимости от составного поля А, если оно функционально зависит от А и не зависит функционально от любого подмножества поля А.

Многозначная зависимость. Поле А многозначно определяет поле В той же таблицы, если для каждого значения поля А существует хорошо определенное множество соответствующих значений В.

Таблица находится в первой нормальной форме (1НФ) тогда и только тогда, когда ни одна из ее строк не содержит в любом своем поле более одного значения и ни одно из ее ключевых полей не пусто. Другими словами каждый её атрибут атомарен и все строки различны.

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

Функционально полная зависимость означает, что атрибут функционально зависит от всего первичного ключа, но при этом не находится в функциональной зависимости от какой-либо его части.

Таблица находится в третьей нормальной форме (3НФ), если она удовлетворяет определению 2НФ и не одно из ее неключевых полей не зависит функционально от любого другого неключевого поля.

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

Данная нормальная форма - это модификация третьей нормальной формы. Таблица может находиться в 3НФ, но не в НФБК, только в одном случае: если она имеет, помимо первичного ключа, ещё по крайней мере один составной возможный ключ, и по крайней мере один из атрибутов таблицы входит и в первичный, и в возможный ключи. Такое бывает достаточно редко, в остальном 3НФ и НФБК эквивалентны.

Таблица находится в четвертой нормальной форме (4НФ), если она находится в НФБК и не содержит нетривиальных многозначных зависимостей. Многозначная зависимость не является функциональной, она существует в том случае, когда из факта, что в таблице содержится некоторая строка X, следует, что в таблице обязательно существует некоторая определённая строка Y.

Таблица находится в пятой нормальной форме (5НФ) тогда и только тогда, когда в каждой ее полной декомпозиции все проекции содержат возможный ключ. Таблица, не имеющая ни одной полной декомпозиции, также находится в 5НФ.

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

такой проверки. Поэтому остановимся лишь на процедуре приведения таблиц к НФБК.

Эта процедура основывается на том, что единственными функциональными зависимостями в любой таблице должны быть зависимости вида K->F, где K - первичный ключ, а F - некоторое другое поле. Заметим, что это следует из определения первичного ключа таблицы, в соответствии с которым K->F всегда имеет место для всех полей данной таблицы. "Один факт в одном месте" говорит о том, что не имеют силы никакие другие функциональные зависимости. Цель нормализации состоит именно в том, чтобы избавиться от всех этих "других" функциональных зависимостей, т.е. таких, которые имеют иной вид, чем K->F.

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

Следует рассмотреть два случая:

1) Таблица имеет составной первичный ключ вида, скажем, (К1,К2), и включает также поле F, которое функционально зависит от части этого ключа, например, от К2, но не от полного ключа. В этом случае рекомендуется сформировать другую таблицу, содержащую К2 и F (первичный ключ - К2), и удалить F из первоначальной таблицы:

2) Таблица имеет первичный (возможный) ключ К, не являющееся возможным ключом поле F1, которое, конечно, функционально зависит от К, и другое неключевое поле F2, которое функционально зависит от F1. Решение здесь, по существу, то же самое, что и прежде - формируется другая таблица, содержащая F1 и F2, с первичным ключом F1, и F2 удаляется из первоначальной таблицы:

и T2(F1,F2), первичный ключ F1.

Для любой заданной таблицы, повторяя применение двух рассмотренных правил, почти во всех практических ситуациях можно получить в конечном счете множество таблиц, которые находятся в "окончательной" нормальной форме и, таким образом, не содержат каких-либо функциональных зависимостей вида, отличного от K->F.

Лабораторная работа №3

Задание для лабораторной работы №3. Цели работы:

Нормализовать таблицы.

Выделить все ключевые поля (суперключи, потенциальные ключи, первичные ключи и внешние ключи).

Составить ER (IDEF, UML по вариантам) диаграммы.

Записать формулы реляционной алгебры, выводящие на основе нормализованных таблиц исходные таблицы.

Таблица 1

Должность

Зелёная форма

Кузовщик

Синяя форма

тех контроль

Жёлтая форма

13-12, 14-23, 12-

Кузовщик

Синяя форма

тех контроль

Жёлтая форма

16-25, 12-54, 13-

Зеленков

Кузовщик

Синяя форма

Халтурин

Зелёная форма

Таблица 2

Продукция

Упаковка

Краска ТУ 124-89

Банка 3 кг,

Балончик 100 гр, Балон-

чик 250 гр.

Краска ТУ 512-2005

Банка 1 кг,

Балончик 100 гр

Растворитель

Пэт 100 гр, Пэт 500 гр,

Цех 1, Цех 3

Банка 1 кг

Растворитель

Пэт 250 гр, Пэт 500 гр.

Цех 2, Цех 3

Растворитель

Пэт 250 гр, Банка 3 кг

законодательство за последние полгода

Журналист

Финансы: краткосрочный прогноз

Хай-тек: Обзор новинок на выставке ИТ

Таблица 4

Водители

автомобиля

Москва, Нижний

Новгород,

Иванов, Петров

Владимир, Казань, Уфа

Петров, Сидоров

Мерседес

Чистополь,

Сидоров, Иванов

Альметьевск

Чистополь,

Иванов, Сидоров

Альметьевск

Москва, Нижний

Новгород,

Петров, Сидоров

Мерседес

Владимир, Казань, Уфа

Иванов, Петров

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

Обучение

Рис. 4.5. К иллюстрации многозначных зависимостей

Для примера рассмотрим таблицу "Обучение" (рис. 4.5). В ней есть многозначная зависимость "Дисциплина-Преподаватель": дисциплина (в примере Информатика) может может читаться несколькими преподавателями (в примере Шипиловым и Голованевским). Есть и другая многозначная зависимость "Дисциплина-Учебник": при изучении Информатики используются учебники "Паскаль для всех" и "Язык Си". При этом Преподаватель и Учебник не связныфункциональной зависимостью, что приводит к появлению избыточности (для добавление еще одного учебника придется ввести в таблицу две новых строки). Дело улучшается при замене этой таблицы на две: (Дисциплина-Преподаватель и Дисциплина-Учебник).

[ Назад ] [ Содержание ] [ Вперед ]

Базы данных: О нормализации, функциональных и многозначных зависимостях

страницы в данном разделе
Базы данных: Данные и ЭВМ Базы данных: Концепция баз данных
Базы данных: Архитектура СУБД Базы данных: Модели данных
Базы данных: Основные понятия Базы данных: Характеристика связей и язык моделирования