Функциональные зависимости: замыкание, эквивалентность и правила вывода
Версия от 20:40, 8 января 2021; Darkey (обсуждение | вклад) (→Замыкание множества функциональных зависимостей)
Содержание
Функциональные зависимости
Определение и примеры
Правила вывода функциональных зависимостей
Замыкание множества функциональных зависимостей
| Определение: |
| Замыкание множества функциональных зависимостей - множество всех функциональных зависимостей, обозначаемое , которые следуют из заданного множества функциональных зависимостей . |
Построение
Set<E> buildClosure(s: Set<E>):
closure = Set<E>(s)
changed = true
while (changed):
changed = false
for f in closure:
for rule in rules: //rules - правила вывода
new_f = rule.apply(f, closure)
changed = closure.add(new_f) //add - возвращает true, если элемент был добавлен, false - иначе
return closure
Эквивалентность множеств функциональных зависимостей
Здесь и далее - множества функциональных зависимостей.
| Определение: |
| слабее ( накрывает ) тогда и только тогда, когда является подмножеством : |
| Определение: |
| эквивалентно : |
Задача минимизации ФЗ
Постановка задачи
Найти минимальное множество ФЗ эквивалентное заданному. То есть необходимо найти множество ФЗ такое, что замыкание и совпадают и множество имеет меньшую мощность, чем . Это позволит снизить нагрузку на базу данных. Но такой подход к решению задачи не применим на практике из-за большой мощности замыкания.