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