Функциональные зависимости: замыкание атрибутов, неприводимые множества функциональных зависимостей, их построение — различия между версиями
Darkey (обсуждение | вклад) (→Замыкание атрибутов) |
Darkey (обсуждение | вклад) (→Основное свойство замыкания множества атрибутов) |
||
Строка 15: | Строка 15: | ||
Данная теорема позволяет проверять эквивалентность множеств ФЗ без вычисления замыканий ФЗ: <br/> | Данная теорема позволяет проверять эквивалентность множеств ФЗ без вычисления замыканий ФЗ: <br/> | ||
− | Даны множества <tex>S</tex> и <tex>P | + | Даны множества функциональных зависимостей <tex>S</tex> и <tex>P</tex>, необходимо проверить является ли <tex>P</tex> эквивалентным <tex>S</tex>, то есть требуется показать, что <tex>S^+ \subset P^+</tex> и <tex>P^+ \subset S^+</tex>. Теорема выше позволяет проверять принадлежит ли ФЗ некоторому замыканию функциональных зависимостей, тогда чтобы показать, что <tex>S^+ \subset P^+</tex> достаточно проверить, что <tex>\forall A \to B \in S</tex> выполняется <tex>A \to B \subset P^+</tex>, то есть для каждой базовой функциональной зависимости <tex>A \to B</tex> из <tex>S</tex> построить <tex>A^+_P</tex> замыкание атрибутов над <tex>P</tex> и проверить, что <tex>B \subset A^+_P</tex>. |
− | |||
{{Утверждение | {{Утверждение | ||
|statement= | |statement= |
Версия 23:10, 19 января 2021
Содержание
Замыкание атрибутов
Определение: |
Замыкание множества атрибутов | над множеством ФЗ — максимальное по включению множество атрибутов, обозначаемое , функционально зависящих от .
Максимальный размер равен числу атрибутов в отношении.
Основное свойство замыкания множества атрибутов
Теорема: |
Доказательство: |
По определению замыкания атрибутов. |
Данная теорема позволяет проверять эквивалентность множеств ФЗ без вычисления замыканий ФЗ:
Даны множества функциональных зависимостей и , необходимо проверить является ли эквивалентным , то есть требуется показать, что и . Теорема выше позволяет проверять принадлежит ли ФЗ некоторому замыканию функциональных зависимостей, тогда чтобы показать, что достаточно проверить, что выполняется , то есть для каждой базовой функциональной зависимости из построить замыкание атрибутов над и проверить, что .
Утверждение: |
Следствие: — надключ — множество всех атрибутов |
— множество всех атрибутов и по теореме , то по определению функциональной зависимости соответствует ровно один и значит — надключ. |
Данное следствие позволяет формально выделять ключи и надключи.
Построение замыкания атрибутов
= X do foreach : if then while есть изменения
Теорема: |
Доказательство: |
1) |
Неприводимые множества функциональных зависимостей
Определение: |
Множество ФЗ
| неприводимо, если:
Определение: |
Множество ФЗ | минимально по включению, если ни одна функциональная зависимость из множества не может быть удалена из множества без изменения его замыкания .
Теорема: |
Для любого множества ФЗ существует эквивалентное неприводимое множество ФЗ (НМФЗ). |
Доказательство: |
Доказательство по построению:
|
Оценка времени построения
- Расщепление правых частей - линейно по размеру правых частей.
- Удаление атрибута . На данном этапе из одной ФЗ возможно получить множество ФЗ минимальных по включению. Синтетическая оценка множества потенциальных множеств минимальных по включению мощностью это . То есть на ФЗ с большой левой частью возможен экспоненциальный рост количества ФЗ с минимальной по включению левой частью. Но на реальных данных большая левая часть в ФЗ практически не встречается.
- Удаление правила . На этом этапе не добавляем ФЗ, а только удаляем, поэтому сложность этот этап не добавит. Заметим, что каждую ФЗ на этом этапе можно рассматривать лишь один раз, т.к. все операции по приведению множества к неприводимому сохраняют исходное замыкание ФЗ.
Замечания о НМФЗ
- Неприводимые множества ФЗ обычно много меньше множеств исходного множества ФЗ.
- Неприводимое множество ФЗ может не являться минимальным по мощности.