Функциональные зависимости: замыкание атрибутов, неприводимые множества функциональных зависимостей, их построение — различия между версиями
Darkey (обсуждение | вклад) (→Основное свойство замыкания множества атрибутов) |
Darkey (обсуждение | вклад) (→Основное свойство замыкания множества атрибутов) |
||
| Строка 22: | Строка 22: | ||
|proof= | |proof= | ||
<tex>(=>)</tex><br>По определению замыкания атрибутов, т.к все атрибуты функционально зависят от X.<br/> | <tex>(=>)</tex><br>По определению замыкания атрибутов, т.к все атрибуты функционально зависят от X.<br/> | ||
| − | <tex>(<=)</tex><br> | + | <tex>(<=)</tex><br><tex>X^+</tex> - множество всех атрибутов и по теореме <tex>\exists \; X \to X^+</tex>, то по определению функциональной зависимости <tex>X</tex> соответствует ровно один <tex>X^+</tex> и значит <tex>X</tex> - надключ. |
}} | }} | ||
Данное следствие позволяет формально выделять ключи и надключи. | Данное следствие позволяет формально выделять ключи и надключи. | ||
Версия 11:40, 29 декабря 2020
Замыкание атрибутов
| Определение: |
| Замыкание множества атрибутов над множеством ФЗ - максимальное по включению множество атрибутов функционально зависящих от . |
Максимальный размер равен числу атрибутов в отношении.
Основное свойство замыкания множества атрибутов
| Теорема: |
| Доказательство: |
| По определению замыкания атрибутов. |
Данная теорема позволяет проверять эквивалентность множеств ФЗ без вычисления замыканий ФЗ:
Даны множества и и пусть для простоты , необходимо проверить является ли эквивалентным . Для этого достаточно построить замыкание и по теореме проверить все фз из , которые отсутствуют в . Если доказать, что из выводимы все базовые правила , то их замыкания ФЗ будут совпадать, следовательно, два множества эквивалентны. Например, пусть , тогда если , то .
| Утверждение: |
Следствие: - надключ - множество всех атрибутов |
|
- множество всех атрибутов и по теореме , то по определению функциональной зависимости соответствует ровно один и значит - надключ. |
Данное следствие позволяет формально выделять ключи и надключи.
Построение
= X do foreach : if then while есть изменения
| Теорема: |
| Доказательство: |
|
1) |