Многозначная зависимость
Многозна́чная зави́симость (тж. МЗЗ) — обобщение понятия функциональной зависимости, широко использующееся в теории баз данных. В концепции нормальных форм вводится для формального определения четвертой нормальной формы
Определения
Пусть существует некоторое отношение со схемой , а также два произвольных подмножества атрибутов . Пусть .
В этом случае многозначно зависит от , тогда и только тогда, когда множество значений атрибута , соответствующее заданной паре отношения , зависит от и не зависит от .
Символически выражается записью
- .
Формально
Многозначная зависимость называется тривиальной, если выполняется хотя бы одно из условий:
- Множество является надмножеством ;
- Объединение и образует весь заголовок отношения.
Пример
Предположим, у нас есть отношение, в которое входит список учебных дисциплин, рекомендованная литература и имена лекторов, читающих соответствующие курсы:
Дисциплина | Книга | Лектор |
---|---|---|
МатАн | Кудрявцев | Иванов А. |
МатАн | Фихтенгольц | Петров Б. |
МатАн | Кудрявцев | Петров Б. |
МатАн | Фихтенгольц | Иванов А. |
МатАн | Кудрявцев | Смирнов В. |
МатАн | Фихтенгольц | Смирнов В. |
ВМ | Кудрявцев | Иванов А. |
ВМ | Кудрявцев | Петров Б. |
Так как лекторы, читающие предмет, и книги, рекомендованные по предмету, друг от друга не зависят, то данное отношение содержит многозначную зависимость. Такое отношение обладает целым рядом аномалий. Одна из них состоит в том, что если мы хотим порекомендовать новую книгу по курсу МатАн, нам придется добавить столько новых записей, сколько лекторов ведут МатАн и наоборот.
Формально, здесь две МЗЗ: {Дисциплина} {Книга}|{Лектор}.
Во-первых, это избыточно. А во-вторых, для такого отношения необходимо разрабатывать дополнительный механизм контроля целостности. Оптимальным решением проблемы будет декомпозиция отношения на два с заголовками {Дисциплина, Книга} и {Дисциплина, Лектор}. Такая декомпозиция будет находиться в 4NF. Допустимость декомпозиции устанавливает теорема Феджина (см. далее).
Теоремы
Связные пары
Феджин показал, что многозначные зависимости образуют связные пары (в обозначениях определения):
- .
Поэтому их часто представляют вместе в символической записи:
Функциональные зависимости
Всякая функциональная зависимость является многозначной. Другими словами, функциональная зависимость — это многозначная зависимость, в которой множество зависимых значений, соответствующее заданному значению детерминанта, всегда имеет единичную мощность.
Правила вывода
В 1977 году Бэри, Феджин и Ховард установили, что правила вывода Армстронга можно обобщить и распространить, как на функциональные, так и на многозначные зависимости.
Пусть у нас есть отношение и множества атрибутов . Для сокращения записи вместо будем писать просто .
Группа 1: базовые правила.
- Дополнение
- Транзитивность
- Рефлексивность
- Приращение
Группа 2: выводятся несколько дополнительных правил, упрощающих задачу вывода многозначных зависимостей.
- Псевдотранзитивность
- Объединение
- Декомпозиция
Группа 3: устанавливается связь между функциональными и многозначными зависимостями.
- Репликация (копирование)
- Слияние
Группа 4: для функциональных зависимостей, выводятся из вышеприведенных правил.
Правила вывода Армстронга вместе с изложенными здесь правилами групп 1 и 3 образуют полный (используя их, можно вывести все остальные многозначные зависимости, подразумеваемые данным их множеством) и надежный («лишних» многозначных зависимостей вывести нельзя; выведенная многозначная зависимость справедлива везде, где справедливо то множество многозначных зависимостей, из которого она была выведена) набор правил вывода многозначных зависисмостей.
Применение
Теорема Феджина
Пусть дано отношение . Отношение будет равно соединению его проекций и тогда и только тогда, когда для отношения выполняется нетривиальная многозначная зависимость .
Эта теорема является более строгой версией теоремы Хита.
См. также
Литература
- К. Дж. Дейт. Введение в системы баз данных = Introduction to Database Systems. — 8-е изд. — М.: «Вильямс», 2006. — С. 1328. — ISBN 0-321-19784-4.