数据库关系分解为BCNF范式

来源:百度知道 编辑:UC知道 时间:2024/07/08 17:22:07
R = {A ,B, C, D}

I. C → D, C → A, B → C

II. ABC → D, D → A

如果R不是一个BCFN, 将它分解为BCFN范式。

作业,实在没弄明白。请教高人, 过程详细点哦
多谢~

1: 很容易由 C → D, C → A, B → C
判断出 B 是主码 由于存在 B->C->D 和 B->C->A 故不是3NF,更不是BCNF
分解如下:(B,C)(C,A,D) 这两个关系都是BCNF

2:由于ABC →D,D →A 可知 ABC 是主码,但存在非主属性决定主属性(D->A)
不满足BCNF
分解如下:(A,B,C)(D,A) 这两个关系都是BCNF

由于C → D, C → A, B → C故而为了使R满足3NF,可以将R划为:
R1={B,C},R2={C,A,D}
由 ABC → D, D → A可将R2再划为R3={C,A},R4={D,A}。
仅供参考!还望提宝贵意见!

C → D, C → A, B → C
判断出 B 是主码 由于存在 B->C->D 和 B->C->A 故不是3NF,更不是BCNF
分解如下:(B,C)(C,A,D) 这两个关系都 是,

R(A,B,C,D)和函数依赖AB→C,C→D和D→A.
找出违反BCNF的依赖(不必找出右边多于一个属性的),并将其分解成BCNF关系的聚集.

首先找出了非平凡依赖:
C→A,C→D,D→A,AB→D,AB→C,AC→D,BC→A,BC→D,BD→A,BD→C,CD→A,ABC→D,ABD→C和BCD→A.
违反BCNF的有:
C→A,C→D,D→A,AC→D,CD→A.

然后就是分解了

标准答案给的是

AC,BC,CD

楼主。我看下面的评论都是分解成 bc ca cd。 我想问为什么没有da这一个关系?