double arrow

Продолжение алгоритма нормализации (приведение к 5НФ)


Глава 7 Нормальные формы более высоких порядков

Выводы

При разработке базы данных можно выделить несколько уровней моделирования:

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

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

  • Адекватность базы данных предметной области.
  • Легкость разработки и сопровождения базы данных.
  • Скорость выполнения операций обновления данных (вставка, обновление, удаление).
  • Скорость выполнения операций выборки данных.

Первая нормальная форма (1НФ) – это обычное отношение. Отношение в 1НФ обладает следующими свойствами:

  • В отношении нет одинаковых кортежей.
  • Кортежи не упорядочены.
  • Атрибуты не упорядочены.
  • Все значения атрибутов атомарны.

Отношения, находящиеся в 1НФ являются «плохими» в том смысле, что они не удовлетворяют выбранным критериям – имеется большое количество аномалий обновления, для поддержания целостности базы данных требуется разработка сложных триггеров.




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

Отношения в 2НФ «лучше», чем в 1НФ, но еще недостаточно «хороши» – остается часть аномалий обновления, по-прежнему требуются триггеры, поддерживающие целостность базы данных.

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

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

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

Корректность процедуры нормализации (декомпозиция без потери информации) доказывается теоремой Хеза.


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



НФБК (Нормальная Форма Бойса-Кодда)

При приведении отношений при помощи алгоритма нормализации к отношениям в 3НФ неявно предполагалось, что все отношения содержат один потенциальный ключ. Это не всегда верно. Рассмотрим следующий пример отношения, содержащего два ключа.

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

Таблица 1 Отношение «Поставки»
Номер поставщика PNUM Наименование поставщика PNAME Номер детали DNUM Поставляемое количество VOLUME
Фирма 1
Фирма 1
Фирма 1
Фирма 2
Фирма 2
Фирма 3

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

  • PNUM PNAME – наименование поставщика зависит от номера поставщика.
  • PNAME PNUM – номер поставщика зависит от наименования поставщика.
  • {PNUM, DNUM} VOLUME – поставляемое количество зависит от первого ключа отношения.
  • {PNUM, DNUM} PNAME – наименование поставщика зависит от первого ключа отношения.
  • {PNAME, DNUM} VOLUME – поставляемое количество зависит от второго ключа отношения.
  • {PNAME, DNUM} PNUM – номер поставщика зависит от второго ключа отношения.

Данное отношение не содержит неключевыхатрибутов, зависящих от части сложного ключа (см. определение 2НФ). Действительно, от части сложного ключа зависят атрибуты PNAME и PNUM, но они сами являются ключевыми. Таким образом, отношение находится в 2НФ.



Кроме того, отношение не содержит зависимых друг от друга неключевыхатрибутов, т.к. неключевой атрибут всего один – VOLUME (см. определение 3НФ). Таким образом, показано, что отношение «Поставки» находится в 3НФ.

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

Таблица 2 Отношение «Поставщики»
Номер поставщика PNUM Наименование поставщика PNAME
Фирма 1
Фирма 2
Фирма 3
Таблица 3 Отношение «Поставки-2»
Номер поставщика PNUM Номер детали DNUM Поставляемое количество VOLUME

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

Замечание. Если отношение находится в НФБК, то оно автоматически находится и в 3НФ. Действительно, это сразу следует из определения 3НФ.

Отношение «Поставки» не находится в НФБК, т.к. имеются зависимости (PNUM PNAME и PNAME PNUM), детерминанты которых не являются потенциальными ключами.

Для того чтобы устранить зависимость от детерминантов, не являющихся потенциальными ключами, необходимо провести декомпозицию, вынося эти детерминанты и зависимые от них части в отдельное отношение. Отношения «Поставщики» и «Поставки-2», полученные в результате декомпозиции находятся в НФБК.

Замечание. Приведенная декомпозиция отношения «Поставки» на отношения «Поставщики» и «Поставки-2» не является единственно возможной. Альтернативной декомпозицией является декомпозиция на следующие отношения:

Таблица 4 Отношение «Поставщики»
Номер поставщика PNUM Наименование поставщика PNAME
Фирма 1
Фирма 2
Фирма 3
Таблица 5 Отношение «Поставки-3»
Наименование поставщика PNAME Номер детали DNUM Поставляемое количество VOLUME
Фирма 1
Фирма 1
Фирма 1
Фирма 2
Фирма 2
Фирма 3

На первый взгляд, такая декомпозиция хуже, чем первая. Действительно, наименования поставщиков по-прежнему повторяются, и при изменении наименования поставщика, это наименование придется менять одновременно в нескольких местах (тем более сразу в двух отношениях!). Кажется, что ситуация стала еще хуже, чем была до декомпозиции. Однако такое ощущение возникает оттого, что мы интуитивно считаем, что наименования поставщиков могут меняться, а номера – нет. Если же предположить, что номера поставщиков тоже могут меняться (почему бы нет – директор приказал перенумеровать поставщиков!), то первая декомпозиция получается такой же «плохой» как и вторая – повторяющиеся номера придется менять одновременно в нескольких местах и также сразу в двух отношениях.

На самом деле никакого противоречия тут нет. В отношении «Поставки-3» атрибут «Наименование поставщика» (PNAME) является внешним ключом, служащим для связи с отношением «Поставщики». Поэтому, при изменении наименования поставщика, это изменение производится в отношении «Поставщики» и каскадно (см. стратегии поддержания ссылочной целостности в гл. 3) распространяется на отношение «Поставки-3» совершенно так, как изменение номера поставщика каскадно распространяется на отношение «Поставки-2». Поэтому, формально обе декомпозиции совершенно равноправны. В реальной работе разработчик выберет, конечно, первую декомпозицию, но тут важно подчеркнуть, что его выбор основан совсем на других соображениях, не имеющих отношения к формальной теории нормальных форм.

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

Пример 2. Предположим, что нам по-прежнему необходимо учитывать поставки, но каждый акт поставки должен иметь некоторый уникальный номер (назовем его «сквозной номер поставки»). Отношение может иметь следующий вид:

Таблица 6 Отношение «Поставки-с-номером»
Номер поставщика PNUM Номер детали DNUM Поставляемое количество VOLUME Сквозной номер поставки NN

Одним потенциальным ключом данного отношения является, как и раньше, пара атрибутов {PNUM, DNUM}. Другим ключом, в силу уникальности сквозного номера, является атрибут NN. В данном отношении имеются следующие функциональные зависимости:

  1. Зависимость атрибутов от первого ключа отношения:
    • {PNUM, DNUM} VOLUME,
    • {PNUM, DNUM} NN,
  2. Зависимость атрибутов от второго ключа отношения:
    • NN PNUM,
    • NN DNUM,
    • NN VOLUME,
  3. Зависимости, являющиеся следствием зависимостей от ключей отношения:

· {PNUM, DNUM} {VOLUME, NN},

· NN {PNUM, DNUM},

· NN {PNUM, VOLUME},

· NN {DNUM, VOLUME},

· NN {PNUM, DNUM, VOLUME}.

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

4НФ (Четвертая Нормальная Форма)

Рассмотрим следующий пример. Пусть требуется учитывать данные об абитуриентах, поступающих в ВУЗ. При анализе предметной области были выделены следующие требования:

  • Каждый абитуриент имеет право сдавать экзамены на несколько факультетов одновременно.
  • Каждый факультет имеет свой список сдаваемых предметов.
  • Один и тот же предмет может сдаваться на нескольких факультетах.
  • Абитуриент обязан сдавать все предметы, указанные для факультета, на который он поступает, несмотря на то, что он, может быть, уже сдавал такие же предметы на другом факультете.

Предположим, что нам требуется хранить данные о том, какие предметы должен сдавать каждый абитуриент. Попытаемся хранить данные в одном отношении «Абитуриенты-Факультеты-Предметы»:

Таблица 7 Отношение «Абитуриенты-Факультеты-Предметы»
Абитуриент Факультет Предмет
Иванов Математический Математика
Иванов Математический Информатика
Иванов Физический Математика
Иванов Физический Физика
Петров Математический Математика
Петров Математический Информатика

В данный момент в отношении хранится информация о том, что абитуриент Иванов поступает на два факультета (математически и физический), а абитуриент Петров – только на математический. Кроме того, можно сделать вывод, что на математическом факультете нужно сдавать математику и информатику, а на физическом – математику и физику.

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

Таблица 8 Модифицированное отношение «Абитуриенты-Факультеты-Предметы»
Номер Абитуриента Номер Факультета Номер Предмета
Таблица 9 Отношение «Абитуриенты»
Номер Абитуриента Абитуриент
Иванов
Петров
Таблица 10 Отношение «Факультеты»
Номер Факультета Факультет
Математический
Физический
Таблица 11 Отношение «Предметы»
Номер Предмета Предмет
Математика
Информатика
Физика

Теперь каждое наименование встречается только в одном месте.

И все-таки как в исходном, так и в модифицированном отношении имеются аномалии обновления, возникающие при попытке вставить или удалить кортежи.

Аномалия вставки. При попытке добавить в отношение «Абитуриенты-Факультеты-Предметы» новый кортеж, например (Сидоров, Математический, Математика), мы обязаныдобавить также и кортеж (Сидоров, Математический, Информатика), т.к. все абитуриенты математического факультета обязаныиметь один и тот же список сдаваемых предметов. Соответственно, при попытке вставить в модифицированное отношении кортеж (3, 1, 1), мы обязаны вставить в него также и кортеж (3, 1, 2).

Аномалия удаления. При попытке удалить кортеж (Иванов, Математический, Математика), мы обязаныудалить также и кортеж (Иванов, Математический, Информатика) по той же самой причине.

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

Кроме того, если мы удалим кортеж (Иванов, Физический, Математика), а вместе с ним и кортеж (Иванов, Физический, Физика), то будет потеряна информация о предметах, которые должны сдаваться на физическом факультете.

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

Определение 2. Пусть R – отношение, и X, Y, Z – некоторые из его атрибутов (или непересекающиесямножества атрибутов).

Тогда атрибуты (множества атрибутов) Y и Z многозначно зависят от X (обозначается ), тогда и только тогда, когда из того, что в отношении R содержатся кортежи и следует, что в отношении R содержится также и кортеж .

Замечание. Меняя местами кортежи r1 и r2 в определении многозначной зависимости, получим, что в отношении R должен содержаться также и кортеж . Таким образом, атрибуты Y и Z, многозначно зависящие от X, ведут себя «симметрично» по отношению к атрибуту X.

В отношении «Абитуриенты-Факультеты-Предметы» имеется многозначная зависимость ФакультетАбитуриент|Предмет.

Словами это можно выразить так – для каждого факультета (для каждого значения из X) каждый поступающий на него абитуриент (значение из Y) сдает один и тот же списокпредметов (набор значений из Z), и для каждого факультета (для каждого значения из X) каждый сдаваемый на факультете экзамен (значение из Z) сдается одним и тем же спискомабитуриентов (набор значений из Y). Именно наличие этой зависимости не позволяет независимо вставлять и удалять кортежи. Кортежи обязаны вставляться и удаляться одновременно целыми наборами.

Замечание. Если в отношении R имеется не менее трех атрибутов X, Y, Z и есть функциональнаязависимость , то есть и многозначнаязависимость .

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

Таким образом, понятие многозначной зависимости является обобщением понятия функциональной зависимости.

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

В отношении «Абитуриенты-Факультеты-Предметы» имеется именно нетривиальная многозначная зависимость ФакультетАбитуриент|Предмет. В силу нетривиальности этой зависимости мы не можем воспользоваться теоремой Хеза для декомпозиции отношения. Однако Фейджином Р. [52] доказана следующая теорема:

Теорема (Фейджина). Пусть X, Y, Z – непересекающиеся множества атрибутов отношения. Декомпозиция отношения R на проекции и будет декомпозицией без потерь тогда и только тогда, когда имеется многозначная зависимость .

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

Доказательство теоремы.

Необходимость. Пусть декомпозиция отношения R на проекции и является декомпозицией без потерь. Докажем что .

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

Достаточность. Пусть имеется многозначная зависимость . Докажем, что декомпозиция отношения R на проекции и является декомпозицией без потерь.

Как и в доказательстве теоремы Хеза, нужно доказать, что для любого состоянияотношения R.

Включение доказывается как в теореме Хеза. Такое включение выполняется всегда для любой декомпозиции отношения R.

Докажем включение . Пусть кортеж . Это означает, что в проекции содержится кортеж , а в проекции содержится кортеж . По определению проекции, найдется такое значение z1 атрибута Z, что отношение R содержит кортеж . Аналогично, найдется такое значение y1 атрибута Y, что отношение R содержит кортеж . Тогда по определению многозначной зависимости кортеж . Включение доказано. Достаточность доказана.

Теорема доказана.

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

Отношение «Абитуриенты-Факультеты-Предметы» находится в НФБК, но не в 4НФ. Согласно теореме Фейджина, это отношение можно без потерь декомпозировать на отношения:

Таблица 12 Отношение «Факультеты-Абитуриенты»
Факультет Абитуриент
Математический Иванов
Физический Иванов
Математический Петров
Таблица 13 Отношение «Факультеты-Предметы»
Факультет Предмет
Математический Математика
Математический Информатика
Физический Математика
Физический Физика

В полученных отношениях устранены аномалии вставки и удаления, характерные для отношения «Абитуриенты-Факультеты-Предметы».

Заметим, что полученные отношения остались полностью ключевыми, и в них по-прежнему нет функциональных зависимостей.

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

5НФ (Пятая Нормальная Форма)

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

Пример 3. Рассмотрим следующее отношение R:

Таблица 14 Отношение R
X Y Z

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

Таблица 15 Проекция R1=R[X,Y]
X Y
Таблица 16 Проекция R2=R[X,Z]
X Z
Таблица 17 Проекция R3=R[Y,Z]
Y Z

Как легко заметить, отношение R не восстанавливается ни по одному из попарныхсоединений , или . Действительно, соединение имеет вид:

Таблица 18 R1 JOIN R2
X Y Z

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

Однако отношение R восстанавливается соединением всех трехпроекций: .

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

Определение 5. Пусть R является отношением, а A, B, …, Z – произвольными (возможно пересекающимися) подмножествамимножества атрибутов отношения R. Тогда отношение R удовлетворяет зависимости соединения тогда и только тогда, когда оно равносильно соединению всех своих проекций с подмножествами атрибутов A, B, …, Z, т.е. .

Можно предположить, что отношение R в примере 3 удовлетворяет следующей зависимости соединения:

.

Утверждать, что это именно так мы пока не можем, т. к. определение зависимости соединения должно выполняться для любогосостояния отношения R, а не только для состояния, приведенного в примере.

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

Теорема Фейджина (другая формулировка). Отношение удовлетворяет зависимости соединения тогда и только тогда, когда имеется многозначная зависимость .

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

Определение 6. Зависимость соединения называется нетривиальной зависимостью соединения, если выполняется два условия:

  1. Одно из множеств атрибутов не содержит потенциального ключа отношения R.
  2. Ни одно из множеств атрибутов не совпадает со всем множеством атрибутов отношения R.

Для удобства работы сформулируем это определение так же и в отрицательной форме:

Определение 7. Зависимость соединения называется тривиальной зависимостью соединения, если выполняется одно из условий:

  1. Либо все множества атрибутов содержат потенциальный ключ отношения R.
  2. Либо одно из множеств атрибутов совпадает со всем множеством атрибутов отношения R.

Определение 8. Отношение R находится в пятой нормальной форме (5НФ) тогда и только тогда, когда любая имеющаяся зависимость соединения является тривиальной.

Определения 5НФ может стать более понятным, если сформулировать его в отрицательной форме:

Определение 9. Отношение R не находитсяв 5НФ, если в отношении найдется нетривиальная зависимость соединения.

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

(i) Отношение R является полностью ключевым (т. е. потенциальным ключом отношения является все множество атрибутов).

(ii) Имеется следующая зависимость (довольно странная, с практической точки зрения): если в отношении R содержатся кортежи , и , то отсюда следует, что в отношении R содержится также и кортеж .

Утверждение. Докажем, что при наличии ограничений (i) и (ii), отношение находится в 4НФ, но не в 5НФ.

Доказательство. Покажем, что отношение R находится в 4НФ. Согласно определению 4НФ, необходимо показать, что отношение находится в НФБК и не содержит нетривиальныхмногозначных зависимостей. Т. к. отношение является полностью ключевым, то оно автоматически находится в НФБК. Если бы в отношении имелась многозначная зависимость (необязательно нетривиальная), то, согласно теореме Фейджина, отношение можно было бы декомпозировать без потерь на две проекции. Но пример 3 показывает, что таких декомпозиций нет (здесь мы воспользовались тем, что для доказательства возможности декомпозиции необходимо доказать ее для всехвозможных состояний отношения, а для доказательства невозможности достаточно привести одинконтрпример). Поэтому в отношении нет никаких многозначных зависимостей.

Покажем, что отношение не находится в 5НФ. Для этого нужно привести пример нетривиальной зависимости соединения. Естественным кандидатом на нее является . Если это действительно зависимость соединения, то она нетривиальна. Действительно, ни одно из множеств атрибутов XY, XZ и YZ не совпадает с множеством всех атрибутов отношения R и не содержит потенциального ключа.

Но является ли такая декомпозиция именно зависимостью соединения? Для этого нужно показать, что декомпозиция на три проекции , и является декомпозицией без потерь для любого состоянияотношения R (именно здесь содержится ключевая тонкость, обычно пропускаемая при анализе конкретного состояния отношения R в примере 3, и именно здесь нам понадобятся знания о предметной области, выраженные в утверждении (ii)).

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

Включение доказывается как в теореме Хеза. Такое включение выполняется всегда для любой декомпозиции отношения R.

Докажем включение .

Пусть кортеж . Это означает, что в проекции содержится кортеж , в проекции содержится кортеж , а в проекции содержится кортеж . По определению проекции, найдутся такие значения x1, y1, z1 атрибутов X, Y и Z соответственно, что отношение R содержит кортежи , и . Но тогда по условию (ii) в отношении R содержится также и кортеж . Этим доказано необходимое включение. Утверждение доказано.

В предыдущей главе был описан алгоритм нормализации как алгоритм приведения отношений к 3НФ. Теперь мы можем продолжить этот алгоритм, доведя его до алгоритма приведения к 5НФ.

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

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

Шаг 6 (Приведение к 5НФ). Если в отношениях обнаружены нетривиальные зависимости соединения, то необходимо провести декомпозицию для исключения и таких зависимостей.







Сейчас читают про: