Бойс Кодд и поиск ключей-кандидатов

Нуждающийся в отчаянной помощи с пониманием Бойса Кодда и поиска ключей-кандидатов. я нашел ссылку здесь http://djitz.com/neu-mscs/how-to-find-candidate-keys/ которую я понял по большей части, но я застрял

например

(ABCDEF)

AB → CDE

BCD → A

BCE → AD

BD → E

прямо, насколько я понимаю по ссылке, я знаю, что вы найдете общие наборы слева, который является только B, и общие наборы справа, которые не имеют

теперь куда мне идти отсюда? Я знаю, что все наборы кандидатов будут иметь B, но мне нужно руководство по поиску наборов кандидатов после этого. кто-то объясняет простым языком

2 ответа

Связанная статья написана не очень хорошо. (Это наблюдение, а не критика. Родной язык автора - не английский.) Я попытаюсь переписать алгоритм. Это не я говорю тебе, как это сделать. Это моя интерпретация того, как оригинальный автор говорит вам сделать это.

  1. Определите атрибуты, которые не находятся ни на левой стороне, ни на правой стороне любого FD.
  2. Определите атрибуты, которые находятся только на правой стороне любого FD.
  3. Определите атрибуты, которые находятся только на левой стороне любого FD.
  4. Объедините атрибуты из шагов 1 и 3.
  5. Вычислить закрытие атрибутов из шага 4. Если закрытие включает все атрибуты, то атрибуты из шага 4 составляют единственный ключ-кандидат. (Независимо от того, сколько ключей-кандидатов существует, каждый из них должен содержать эти атрибуты.)
  6. Определите атрибуты, не включенные в шаг 4 и шаг 2.
  7. Вычислить закрытие атрибутов из шага 4 плюс каждую возможную комбинацию атрибутов из шага 6.

Так что для FD, которые вы разместили, вы бы в конечном итоге с этим.

  1. {F}
  2. {}
  3. {B}
  4. {} Б.Ф.
  5. Закрытие {BF} является {BF}. Это не все атрибуты. (Но каждый ключ-кандидат должен содержать {BF}.)
  6. {} ACDE
  7. Вычислить закрытие этих наборов атрибутов.
    • {} АБФ
    • {} БФК
    • {} DBF
    • {} ФВГ
    • {} ACBF
    • {} ADBF
    • {} AEBF
    • {} CDBF
    • {} CEBF
    • {} DEBF
    • {} ACDBF
    • {} ADEBF
    • {} CDEBF

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

http://www.sroede.nl/projects/fdhelper.aspx

это помогло бы 'просто поставить в твою связь и клик FD генерировать внизу

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