Функциональные зависимости: замыкание атрибутов, неприводимые множества функциональных зависимостей, их построение

Материал из Викиконспекты
Версия от 13:34, 29 декабря 2020; Darkey (обсуждение | вклад) (Построение)
Перейти к: навигация, поиск

Замыкание атрибутов

Определение:
Замыкание множества атрибутов X над множеством ФЗ S - максимальное по включению множество атрибутов X+S функционально зависящих от S.


Максимальный размер X+S равен числу атрибутов в отношении.

Основное свойство замыкания множества атрибутов

Теорема:
ABS+BA+S
Доказательство:
По определению замыкания атрибутов.

Данная теорема позволяет проверять эквивалентность множеств ФЗ без вычисления замыканий ФЗ:
Даны множества S и P и пусть для простоты PS, необходимо проверить является ли P эквивалентным S. Для этого достаточно построить замыкание P+S и по теореме проверить все фз из S, которые отсутствуют в P. Если доказать, что из P выводимы все базовые правила S, то их замыкания ФЗ будут совпадать, следовательно, два множества эквивалентны. Например, пусть ABS,ABP, тогда если BP+S, то ABP+.

Утверждение:
Следствие:
X- надключ X+ - множество всех атрибутов

(=>)
По определению замыкания атрибутов, т.к все атрибуты функционально зависят от X.

(<=)
X+ - множество всех атрибутов и по теореме XX+, то по определению функциональной зависимости X соответствует ровно один X+ и значит X - надключ.

Данное следствие позволяет формально выделять ключи и надключи.

Построение

XS = X
do
   foreach ABS:
      if AXS then XS=XSB
while есть изменения
Теорема:
X+S=XS
Доказательство:

1) X+SXS
AXS=>XA(по правилу расщепления, т.к. XS изначально содержит в себе X) =>XB, то есть B входит в замыкание.
2) X+SXS

Доказательство от обратного: Пусть X+SXS=>A:AX+S and AXS.AX+S=>XA=> есть вывод XX+1,...,X+nA. В этой цепочке найдём первую свежую ФЗ, то есть она не была в базовых ФЗ X. Такая фз точно есть в этой цепочке, например, X+nA, т.к. AX+S and AXS=> такое правило не могло быть в X. Получается, что атрибут A не был добавлен в XS в алгоритме, такое может быть только если атрибут A уже содержался в X=> противоречие.

Неприводимые множества функциональных зависимостей

Определение:
Множество ФЗ S неприводимо, если:
  • Каждая правая часть ФЗ содержит ровно один атрибут
  • Каждая левая часть ФЗ минимальна по включению
  • S минимально по включению


Определение:
Множество ФЗ S минимально по вклюючению, если ни одна функциональная зависимость из множества S не может быть удалена из множества S без изменения его замыкания S+.


Теорема:
Для любого множества ФЗ существует эквивалентное неприводимое множество ФЗ (НМФЗ).
Доказательство:

Доказательство по построению:

  • По правилу расщепления делаем все части единичными. Понятно, что замыкание множества ФЗ от такой операции не изменится, т.к. старая ФЗ может быть получена по правилу объединения.
  • Для левой части каждого правила пытаемся удалить по одному атрибуту A{X}B. Если BA+S выполняется, то AB, то можно минимизировать левую часть, отбросив X.
  • Пытаемся удалить по одному правилу AB. Если BA+S{AB}B выполняется, то по теореме ABS+, значит от этого правила можно избавится.

Оценка времени построения

  • Расщепление правых частей - линейно по размеру правых частей.
  • Удаление атрибута A{X}B. На данном этапе из одной ФЗ возможно получить множество ФЗ минимальных по включению. Синтетическая оценка множества потенциальных множеств минимальных по включению мощностью n2 это (nn2)2n. То есть на ФЗ с большой левой частью возможен экспоненциальный рост количества ФЗ с минимальной по включению левой частью. Но на реальных данных большая левая часть в ФЗ практически не встречается.
  • Удаление правила AB. На этом этапе не добавляем ФЗ, а только удаляем, поэтому сложность этот этап не добавит. Заметим, что каждую ФЗ на этом этапе можно рассматривать лишь один раз, т.к. все операции по приведению множества к неприводимому сохраняют исходное замыканиче ФЗ.

Выводы о НМФЗ

  • Неприводимые множества ФЗ обычно много меньше множеств исходного множества ФЗ.
  • Неприводимое множество ФЗ может не являться минимальным по мощности.