最小依赖集 无损联接分解 保持函数依赖
- 最小依赖集:
对于一个给定的函数依赖集F,当F`满足如下条件时,称为F的最小函数依赖集:
⑴ F`中的每个函数依赖的右部都是单个属性。
⑵ 对于F`中的任一函数依赖X→Y来说,F`-{X→Y}与F`都不等价。[没有冗余关系]
⑶ 对于F`中的任一函数依赖X→Y来说,F`-{X→Y}∪{Z→Y}与F`都不等价,其中Z为X的真子集。[左边属性没有冗余]
步骤:
⑴ 将F中的所有以来变为右部是单属性的依赖。
⑵ 依次考察F中的函数依赖。假设为X→Y,在F-{X→Y}中求X+,看X+是否包含Y,如果是则删去X→Y,否则不能删去X→Y。直到F中的最后一个。
⑶ 逐个检查F中每个函数依赖左部的每个属性,消去冗余属性,判断XY→Z中属性Y是否冗余,即判断F-{XY→Z}∪{X→Z}与F是否等价。在F中求X+,如果中X+包含Z,则X→Z成立,XY→Z可以用X→Z代替。否则,Y不能消去。
- 无损联接分解
多于两个的分解就太复杂了,两个的有公式判断:
U1∩U2-> U1-U2∈f+
- 保持函数依赖的分解
用眼睛判断,比照原来的都能从分解结果中推理出来就可以。
也就是说,对于多个分解,只要原来每个关系中属性都同时出现在分解后的某一个之中即可。
- 怎样得到候选码:
将左边出现的集合,去掉右边出现的,就可得到候选码。