关系R= {C,SN,OD,CH,CL,I,S,Y,D,RM,NS}。
以下函数依赖关系成立:
{C} -> {OD,CH,CL}
{C,SN,S,Y} -> {D,RM,NS,I}
{RM,D,S,Y} -> {I,C,SN}
我需要将其转换为BCNF。
我将其分为两个子关系R1 = {C,OD,CH,CL}和R2={C,S,Y,D,RM,SN,I,NS}
现在我可以看到R1在BCNF中,但我不确定R2。这来自于{C,SN,S,Y} -> {D,RM,NS,I}的想法,因此似乎一些非关键属性决定了关键字的一部分。但是非键属性也需要S,Y,它们是键属性,所以我不确定BCNF规则是否成立。
那么R2在BCNF中吗?
发布于 2021-04-06 16:33:52
假设您给出的函数依赖项覆盖了R的所有函数依赖项,则该关系的候选键是{C, S, SN, Y}和{D, RM, S, Y}。这可以通过计算两组属性的闭包来检查,其中包含R的所有属性,而通过从中删除任何属性而获得的闭包并不包含所有属性。
您的分解在BCNF中,而R2在BCNF中。事实上,R2的依赖关系的封面是:
{D, RM, S, Y} -> {C, I, SN}
{C, S, SN, Y} -> {D, NS, RM}我们可以看到,在这两者中,行列式都是一个候选关键字。
https://stackoverflow.com/questions/66960881
复制相似问题