Функциональные зависимости: замыкание, эквивалентность и правила вывода — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Добавила структуру конспекта.)
 
(Замыкание множества функциональных зависимостей)
Строка 2: Строка 2:
 
=== Определение и примеры ===
 
=== Определение и примеры ===
 
=== Правила вывода функциональных зависимостей ===
 
=== Правила вывода функциональных зависимостей ===
=== Замыкание множества функциональных зависимостей ===
+
== Замыкание множества функциональных зависимостей ==
TODO
+
{{Определение
 +
|definition=
 +
Замыкание множества функциональных зависимостей <tex>S</tex> - множество всех функциональных зависимостей, обозначаемое <tex>S^+</tex>, которые следуют из заданного множества функциональных зависимостей <tex>S</tex>.
 +
}}
 +
=== Построение ===
 +
 
 +
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
 
TODO

Версия 22:53, 28 декабря 2020

Функциональные зависимости

Определение и примеры

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

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

Определение:
Замыкание множества функциональных зависимостей [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

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

TODO