Ключи-кандидаты в базу данных из функциональных зависимостей - специфические особенности
Я работаю с набором атрибутов реляционной базы данных и набором функциональных зависимостей, и у меня есть конкретный вопрос о том, какие ключи будут рассматриваться как ключи-кандидаты этой схемы.
Набор атрибутов, с которыми я работаю:
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.