Функциональная зависимость: найти ключ кандидата

Рассмотрим следующее отношение R = (ABCDEFGH), на котором держится этот набор функциональных зависимостей: {BE -> GH, G -> FA, D -> C, F -> B} Что является ключом-кандидатом в R?

Я нашел ответ может быть BED, DEG, FED. Однако этот вопрос является вопросом с несколькими вариантами ответов, поэтому я не могу выбрать несколько ответов...

Надеюсь, кто-то может дать мне правильный ответ и метод, который он использовал.

2 ответа

Позвольте мне объяснить, как найти ключи-кандидаты простым способом:

Сформируйте три колонки, слева, справа и посередине

В левом столбце добавьте атрибуты, которые появляются только в левой части FD

В правом столбце добавьте атрибуты, которые появляются только в правой части FD

В среднем столбце добавьте атрибуты, которые появляются как справа, так и слева от FD

Объяснение:

Атрибуты в левом столбце указывают, что все возможные ключи-кандидаты должны включать эти атрибуты

а также

Атрибуты в правом столбце указывают, что ключи-кандидаты не должны включать его

а также

Атрибуты в середине могут или не могут быть включены в ключи-кандидаты

В этом примере мы получаем E, D в левом столбце,B,F,G в среднем и A,C,H в правом столбце

Затем примените свойство Closure,

Кровать +=ABCDEFGH

поскольку

BE->GH дано

BE->FA Правило разложения и правило транзитивности BE-> G и G-> FA

BED-> C дано с D->H

Точно так же DEF и DEG могут быть подтверждены как ключи-кандидаты.

Таким образом, все три ключа- кандидата

Надеюсь, поможет!

Набор ключей-кандидатов {{BDE}, {DEF}, {DEG}}

Отношение может иметь несколько ключей-кандидатов. Однако вы можете выбрать только один из них в качестве первичного ключа.

Эта ссылка дает объяснение того, как ключи-кандидаты оцениваются для вашего примера.

Другие вопросы по тегам