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

时间:2018-09-28 06:16:33

标签: candidate-key

编写一个程序,该程序可以从一组超级键输入,并将所有可能的候选键从输入输出到输出文件(名为“候选键”)。 一个示例的超键如下所示: ABCF CDF ACDF BCDF ABCDF ABCEF CDEF ACDEF BCDEF ABCDEF

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

在该示例中,我不理解如何从超级键获取该结果,任何信息都将有所帮助。谢谢

1 个答案:

答案 0 :(得分:1)

我认为,如果提供的超级键是关系的所有可能的超级键,则在其中找到候选键的算法如下:

考虑一对超级键S1,S2。如果S2中包含S1,则消除S2。如果S1中包含S2,则消除S1。否则请保留两者。

对所有对重复该操作,直到无法消除超级键为止。其余的应该是关系的候选键。