Как найти все возможные ключи-кандидаты из набора суперключей?

Суперключи одного примера выглядят следующим образом: ABCF CDF ACDF BCDF ABCDF ABCEF CDEF ACDEF BCDEF ABCDEF

Вывод, который содержит все возможные ключи-кандидаты: ABCF CDF


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

1 ответ

Очень простой алгоритм поиска всех ключей-кандидатов из набора всех возможных ключей и суперключей заключается в следующем (в псевдокоде):

Input: A set SK of all the (candidate keys and) superkeys of a relation R
Output: The set K of all the candidate keys of SK

Let K = SK
For each k in K do:
    Remove all the keys sk in K such that k is a proper subset of sk

В конце цикла, набор K будет содержать ожидаемый результат.

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