найти все возможные ключи отношения - PullRequest
2 голосов
/ 23 ноября 2011

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

Я обнаружил, что все мои атрибуты являются атрибутами среднего уровняи поэтому не имеют никаких необходимых атрибутов.Шаг 4 алгоритма (стр. 6) гласит: Let L be the list of all non-empty subsets of M (the middle-ground attributes).Однако у меня есть 7 атрибутов среднего уровня, поэтому это означает, что мне нужно 127 элементов в L. Я что-то не так делаю?

Пожалуйста, кто-нибудь может объяснить, как я должен находить ключи-кандидаты с учетом набора функциональных зависимостей?

Ответы [ 2 ]

0 голосов
/ 06 мая 2015

Шаг 4: в PDF-файле вычисляются все суперключи, а не ключи-кандидаты. Вы не получите 127 ключей-кандидатов.

Вот разница между Кандидатом и Супер ключом:

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

Ключи-кандидаты : Ключи-кандидаты - это супер-ключи, для которых ни одно из поднаборов не является супер-ключом. Другими словами, ключи-кандидаты - это минимальные супер-ключи.

А давайте рассмотрим пример:
Отношение be R (A, B, C, D, E)

Функциональные зависимости :

A → BCDE. Это означает, что атрибут «A» однозначно определяет другие атрибуты B, C, D, E. BC → ADE Это означает, что атрибуты «BC» совместно определяют все остальные атрибуты A, D, E в отношении.

Первичный ключ: A

Ключи-кандидаты: A, BC

Супер-ключи: A, BC, ABC, AD

ABC, AD не являются ключами-кандидатами, поскольку оба не являются минимальными супер-ключами.

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

0 голосов
/ 08 апреля 2012

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

...