Многозначная зависимость

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

Определения

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

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

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

.


Формально

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

  • Множество является надмножеством ;
  • Объединение и образует весь заголовок отношения.

Пример

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

Учебные дисциплины
ДисциплинаКнигаЛектор
МатАнКудрявцевИванов А.
МатАнФихтенгольцПетров Б.
МатАнКудрявцевПетров Б.
МатАнФихтенгольцИванов А.
МатАнКудрявцевСмирнов В.
МатАнФихтенгольцСмирнов В.
ВМКудрявцевИванов А.
ВМКудрявцевПетров Б.

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

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

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

Теоремы

Связные пары

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

.

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

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

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

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

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

Пусть у нас есть отношение и множества атрибутов . Для сокращения записи вместо будем писать просто .


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

  • Дополнение
  • Транзитивность
  • Рефлексивность
  • Приращение


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

  • Псевдотранзитивность
  • Объединение
  • Декомпозиция


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

  • Репликация (копирование)
  • Слияние


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


Правила вывода Армстронга вместе с изложенными здесь правилами групп 1 и 3 образуют полный (используя их, можно вывести все остальные многозначные зависимости, подразумеваемые данным их множеством) и надежный («лишних» многозначных зависимостей вывести нельзя; выведенная многозначная зависимость справедлива везде, где справедливо то множество многозначных зависимостей, из которого она была выведена) набор правил вывода многозначных зависисмостей.

Применение

Теорема Феджина

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

Эта теорема является более строгой версией теоремы Хита.

См. также

Литература

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.