Функциональная зависимость: найти ключ кандидата
Рассмотрим следующее отношение 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}}
Отношение может иметь несколько ключей-кандидатов. Однако вы можете выбрать только один из них в качестве первичного ключа.
Эта ссылка дает объяснение того, как ключи-кандидаты оцениваются для вашего примера.