Ключи-кандидаты в базу данных из функциональных зависимостей - специфические особенности

Я работаю с набором атрибутов реляционной базы данных и набором функциональных зависимостей, и у меня есть конкретный вопрос о том, какие ключи будут рассматриваться как ключи-кандидаты этой схемы.

Набор атрибутов, с которыми я работаю:

R = (A, B, C, D, E, F, G, H)

И набор функциональных зависимостей:

F = { AC -> B, AB -> C, AD -> E, C -> D, BC -> A, E -> G, ABE -> D, FG -> E}

Итак, вот что я пытаюсь выяснить: будет ли этот набор атрибутов иметь какие-либо ключи-кандидаты, поскольку H не определяется / не упоминается вообще в наборе функциональных зависимостей?

По определению, ключи-кандидаты определяют все остальное, верно? Если H не определяется ничем, кроме себя, будут ли еще какие-либо ключи-кандидаты в этом наборе?

Любое понимание приветствуется. Спасибо!

1 ответ

Напомним ( Wikipedia), что

В реляционной модели баз данных ключ-кандидат отношения является минимальным суперключем для этого отношения; то есть набор атрибутов, такой, что отношение не имеет двух разных кортежей (то есть строк или записей на общем языке базы данных) с одинаковыми значениями для этих атрибутов (что означает, что набор атрибутов является суперключом), не существует подмножество этих атрибутов, для которых выполняется (1) (что означает, что множество минимально).

Следовательно,

Итак, вот что я пытаюсь выяснить: будет ли этот набор атрибутов иметь какие-либо ключи-кандидаты, поскольку H не определяется / не упоминается вообще в наборе функциональных зависимостей?

Это просто означает, что H будет содержаться в каждом ключе-кандидате R. Например, ACFH является ключом-кандидатом. Вы можете вывести B из-за AC->B, D из-за C->D, E из-за AD->E и G из-за E->G. С другой стороны, вы не можете вывести F из ACH, H из ACF, C из AFH и A из CFH.

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