有关系模式R(ABCDE),回答下面几个问题:

有关系模式R(ABCDE),回答下面几个问题:

(1)若A是R的候选码,具有函数依赖BC → DE,在 什么条件下 R是BCNF?

(2)如果存在函数依赖A →B,BC →D,DE →A,找出R的所有码(要有步骤)。

(3)如果存在函数依赖A →B,BC →D,DE →A,R属于几范式,为什么?

(1):要确保R是BCNF,就要在3NF的基础上,满足条件消除主属性对码的部分依赖与传递依赖。
则:当属性组BC也是关系模式R的候选码时,R是BCNF。
此时有:A →BC,BC →A成立。

(2):对于左侧为多属性的函数依赖集求所有候选码
有关系模式R(ABCDE),回答下面几个问题:_第1张图片①:F={A →B,BC →D,DE →A}

②:令G=F-{A →B},(A)G+={A},B∉(A)G+,A →B留下。
令G=F-{BC →D},(BC)G+={BC},D∉(BC)G+,BC →D留下。
令G=F-{DE →A},(DE)G+={DE},A∉(DE)G+,DE →A留下。
F={A →B,BC →D,DE →A}

③:BC →D?去掉B:(C)F+={C},D∉(C)F+,不能去掉。
去掉C:(B)F+={B},D∉(B)F+,不能去掉。
DE→A?去掉D:(E)F+={E},A∉(E)F+,不能去掉。
去掉E:(D)F+={D},A∉(D)F+,不能去掉。
F’={A →B,BC →D,DE →A}=F

L类:C、E
R类:
LR类:A、B、D
N类:
取X=CE,且(CE)+=CE≠U;
取Y中的A:(XA)+=(ACE)={ABCDE}=U,所以ACE为一个候选码
去Y中的B:(XB)+=(BCE)={ABCDE}=U,所以BCE为一个候选码
去Y中的D:(XD)+=(DCE)={ABCDE}=U,所以DCE为一个候选码

所以R的候选码包括:ACE,BCE,DCE;

(3):3NF
因为不存在传递函数依赖,所以R属于3NF。因为每个函数依赖的决定因素都不包含码,所以R不属于BCNF。

你可能感兴趣的:(sqlserver)