Функциональные зависимости: замыкание, эквивалентность и правила вывода — различия между версиями
Darkey (обсуждение | вклад) (→Эквивалентность множеств функциональных зависимостей) |
Darkey (обсуждение | вклад) (→Эквивалентность множеств функциональных зависимостей) |
||
| Строка 29: | Строка 29: | ||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
| − | <tex>S</tex> '''эквивалентно''' <tex>P</tex> (<tex>P</tex> накрывает <tex>S</tex>) | + | <tex>S</tex> '''эквивалентно''' <tex>P</tex> (<tex>P</tex> накрывает <tex>S</tex>)<br/><tex>S \equiv P\!\Leftrightarrow\! S \sqsubset P\! \textrm{and}\! P \sqsubset S\! \Leftrightarrow\! S^+ = P^+ </tex> |
}} | }} | ||
Версия 23:24, 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
Эквивалентность множеств функциональных зависимостей
Здесь и далее - множества функциональных зависимостей.
| Определение: |
| слабее ( накрывает ) тогда и только тогда, когда является подмножеством : |
| Определение: |
| эквивалентно ( накрывает ) |