模式的分解
模式分解的三个定义
从三个角度衡量分解的等价:① 分解要具有“无损连接性”②分解要“保持函数依赖”③分解既要“保持函数依赖”,又要具有“无损连接性”
- 无损连接性:分解后的关系通过自然连接还可以恢复原样;
- 保持函数依赖性:
如何判断无损连接?
例如:R<U,F>,U={A,B,C,D,E},F={AB→C,C →D,D →E},R的一个分解为R1(A,B,C),R2(C,D),R3(D,E)。
R<U,F>的一个分解{R1<U1,F1>,R2<U2,F2>}具有无损连接性的充分必要条件是:U1∩U2→U1-U2∈F+或U1∩U2→U2-U1∈F+。也就是说,分解后的两个关系模式的公共属性能函数确定U1或U2中的其他属性,这样的分解就是无损连接的。
- 保持函数依赖时:模式分解一定可以达到3NF,不一定达到BCNF。
- 既保持函数依赖,又保证无损连接:模式分解可以达到3NF,不一定达到BCNF。
- 只要求保证无损连接性:模式分解一定可以达到4NF。
如何转换为3NF 的算法
保持函数依赖转化为3NF
既无损连接性又保持函数依赖的分解算法
例题没看懂!!!!!!!!!!!!!!!!!!!