Функциона́льная зави́симость — бинарное отношение между множествами атрибутов данного отношения и является, по сути, связью типа «один ко многим». Её использование обусловлено тем, что они позволяют формально и строго решить многие проблемы.
Функциона́льная зави́симость — концепция, лежащая в основе многих вопросов, связанных с реляционными базами данных, включая, в частности, их проектирование.
Пусть дано отношение со схемой (заголовком) , и — некоторые подмножества множества атрибутов отношения . Множество функционально зависит от тогда и только тогда, когда каждое значение множества связано в точности с одним значением множества . Обозначается .
Другими словами, если два кортежа совпадают по значениям в , то они совпадают и по значениям в .
В этом случае — детерминант, — зависимая часть.
Функциональная зависимость называется тривиальной, если зависимая часть является подмножеством детерминанта.
Одни функциональные зависимости могут подразумевать другие функциональные зависимости. Например, функциональная зависимость,
Множество всех функциональных зависимостей, которые подразумеваются данным множеством функциональных зависимостей называется замыканием множества .
Пусть — некоторое множество атрибутов отношения , а — множество функциональных зависимостей этого отношения. Замыканием множества атрибутов в пределах называется такое множество всех атрибутов отношения , что функциональная зависимость является членом замыкания .
Пусть и — некоторые множества функциональных зависимостей.
В 1974 году Вильям Армстронг предложил набор правил вывода новых функциональных зависимостей на основе данных.
Пусть у нас есть отношение и множества атрибутов . Для сокращения записи вместо будем писать просто .
Правила вывода Армстронга полны (используя их, можно вывести все остальные функциональные зависимости, подразумеваемые данным их множеством) и надежны («лишних» функциональных зависимостей вывести нельзя; выведенная функциональная зависимость справедлива везде, где справедливо то множество функциональных зависимостей, из которого она была выведена).
Кроме того, из данных правил довольно просто выводятся несколько дополнительных правил, упрощающих задачу вывода функциональных зависимостей.
Теорема: Функциональная зависимость выводима из данного множества функциональных зависимостей по правилам вывода Армстронга тогда и только тогда, когда .
Если применять правила из предыдущего раздела до тех пор, пока создание новых функциональных зависимостей не прекратится само собой, то мы получим замыкание для заданного множества функциональных зависимостей. На практике редко требуется вычислять это замыкание само по себе, чаще всего нам гораздо интереснее узнать, будет ли та или иная функциональная зависимость входить в замыкание. Для этого нам достаточно вычислить замыкание детерминанта. Для этого существует довольно простой алгоритм.
Функциональные зависимости являются ограничениями целостности и определяют семантику хранящихся в БД данных. При каждом обновлении СУБД должна проверять их соблюдение. Следовательно, наличие большого количества функциональных зависимостей нежелательно, иначе происходит замедление работы. Для упрощения задачи необходимо сократить набор функциональных зависимостей до минимально необходимого.
Если является неприводимым покрытием исходного множества функциональных зависимостей , то проверка выполнения функциональных зависимостей из автоматически гарантирует выполнение всех функциональных зависимостей из . Таким образом, задача поиска минимально необходимого набора сводится к отысканию неприводимого покрытия множества функциональных зависимостей, которое и будет использоваться вместо исходного множества.
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .