以下步骤正确吗?
R = (P, N, O, C, E)
N -> P
E -> P
O -> C
O -> P
在上面的关系中,我们可以看到有两个违例。 N-> P和E-> P是多对一关系,而O-> C和O-> P是一对多关系。这意味着,对于X的1个值,Y的2个值存在。该关系可以重写为NE-> P和O-> CP。
首先,我们计算给定关系的属性闭包。并使用属性闭包,我们将找到关系的候选键。要使R出现在BCNF中,如果X-> Y在R中成立,则X必须是R的超键。
P+ = P
N+ = NP
O+ = OCP
C+ = C
E+ = EP
NEO+ = NEOCP
因此,候选密钥(最小超级密钥)为NEO。现在我们开始算法。 对于关系,NE-> P
S = {N,E,O,C,P} S = {NE,OCP},因为功能依赖性NE-> P违反了BCNF。因此,我们将该关系分解为两个关系。 S = {NE,OC,OP},因为违反了BCNF的功能依赖性O-> CP。现在,我们有3种BCNF形式的关系。