如何从一组超级键中找到所有可能的候选键?

时间:2015-10-04 22:01:52

标签: database candidate-key

一个例子的超级键看起来如下:ABCF CDF ACDF BCDF ABCDF ABCEF CDEF ACDEF BCDEF ABCDEF

包含所有可能候选键的输出:ABCF CDF

在上面的示例中,如何从该组超级密钥中获取可能的候选键输出?我不明白如何得到这个结果,请帮助。

1 个答案:

答案 0 :(得分:0)

从所有可能的键和超级键的集合中查找所有候选键的一种非常简单的算法如下(伪代码):

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将包含预期的结果。