Функциональные зависимости
Определение и примеры
Правила вывода функциональных зависимостей
Замыкание множества функциональных зависимостей
Определение: |
Замыкание множества функциональных зависимостей [math]S[/math] - множество всех функциональных зависимостей, обозначаемое [math]S^+[/math], которые следуют из заданного множества функциональных зависимостей [math]S[/math]. |
Построение
Set<E> buildClosure(s: Set<E>):
closure = Set<E>(s.addAll())
changed = true
while (changed):
changed = false
for f in closure:
for rule in rules: //rules - правила вывода
new_f = rule.apply(f)
changed = closure.add(new_f) //add - возвращает true, если элемент был добавлен, false - иначе
return closure
Эквивалентность множеств функциональных зависимостей
Определение: |
Множество ФЗ [math]S[/math] слабее множества ФЗ [math]P[/math] ([math]P[/math] накрывает [math]S[/math]) тогда и только тогда, когда [math]S^+[/math] является подмножеством [math]P^+[/math]:
[math]S \sqsubset P \Longleftrightarrow S^+ \subset P^+[/math] |