2

Соотношение R = (A, B, C, D, E) и функциональные зависимости F даны следующим образом:Кандидаты на функциональные зависимости?

F = {A-> BC, CD-> E, B-> D, E- > A}

E, BC и CD могут быть ключами-кандидатами, но B не может.


Любой мог указать мне, как рассчитывается этот факт? Я google, но не мог понять больше, чем раньше.

ответ

2

Вы можете найти все зависимые атрибуты заданного набора атрибутов, вычислив закрытие его функциональных зависимостей. Позвольте мне продемонстрировать:

A -> ABC -> ABCD -> ABCDE 

A определяет BC (данные), а также сами (тривиально) поэтому A -> ABC. Добавьте факт, что B -> D, чтобы получить ABC -> ABCD. Наконец, добавьте CD -> E, чтобы получить ABCD -> ABCDE. Мы останавливаемся здесь, потому что мы определили все отношение, поэтому A является ключом кандидата.

Вы должны убедиться, что, начиная с E, BC и CD, вы действительно можете определить все отношение.

Начиная с B, мы получаем:

B -> BD 

и это все. Остальная часть отношения не может быть определена от BD, так что это не ключ кандидата.

Более визуальный способ сделать это состоит в эскизе функциональных зависимостей:

Functional dependency graph

Начиная с любого набора атрибутов, попытаться найти путь к любому другому атрибуту, следуя стрелки. Вы можете добраться только до E, если вы начнете с E или посетите оба C и D.

От B, вы можете достичь D, но без C, вы не разрешали ходить в E, что также исключает A. Таким образом, B не может быть ключом-кандидатом.

+0

Так как он вычисляет сверху диаграмму? – user355834

+0

, пожалуйста, добавьте больше о кратчайшем пути, который вы предложили здесь (например, графике)? – user355834

+0

Следуйте каждой доступной стрелке, начиная с заданного набора атрибутов. Если вы можете связаться со всеми другими узлами, у вас есть ключ-кандидат. Если нет, то нет. – reaanb