Функциональные зависимости: замыкание, эквивалентность и правила вывода — различия между версиями
Darkey (обсуждение | вклад) (→Построение) |
Darkey (обсуждение | вклад) (→Построение) |
||
| Строка 15: | Строка 15: | ||
changed = false | changed = false | ||
'''for''' f in closure: | '''for''' f in closure: | ||
| − | + | '''for''' rule in rules: //rules - правила вывода | |
| − | + | new_f = rule.apply(f) | |
| − | + | changed = closure.add(new_f) //add - возвращает true, если элемент был добавлен, false - иначе | |
'''return''' closure | '''return''' closure | ||
=== Эквивалентность множеств функциональных зависимостей === | === Эквивалентность множеств функциональных зависимостей === | ||
TODO | TODO | ||
Версия 22:56, 28 декабря 2020
Содержание
Функциональные зависимости
Определение и примеры
Правила вывода функциональных зависимостей
Замыкание множества функциональных зависимостей
| Определение: |
| Замыкание множества функциональных зависимостей - множество всех функциональных зависимостей, обозначаемое , которые следуют из заданного множества функциональных зависимостей . |
Построение
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
Эквивалентность множеств функциональных зависимостей
TODO