分解的无损连接性
- 给定关系模式R<U,F>的一个分解 ρ={ R1<U1,F1>,R2<U2,F2>, …,Rn<Un,Fn>},若R与R1、R2、…、Rn自然连接的结果相等,则称关系模式R的这个分解ρ具有无损连接性。
- 具有无损连接性的分解保证不丢失信息
- 满足无损连接性的模式分解不一定能解决插入异常、删除异常、修改复杂、数据冗余等问题。
chase检验:
- 构造一张k行(R分解为k个关系)),n列(属性有n个)的表格,每列对应一个属性,每行对应一个模式。
- 对于F中一个 FD:X→Y,如果表格中有两行在X分量上相等,在Y分量上不相等,那么把这两行在Y分量上改成相等。(改为下标小的那个)。
- 表格中有一行全无下标,那么可立即断定p相对于F是无损连接分解,否则有损。
- 特别要注意,这里有个循环反复修改的过程,因为一次修改可能导致表格能继续修改。
例题:
A | B | C | D | E | |
R1(A,B,C) | a | b | c | d1 | e1 |
R2(B,C,D) | a2 | b | c | d | e2 |
R3(A,C,E) | a | b3 | c | d3 | e3 |
A | B | C | D | E | |
R1(A,B,C) | a | b | c | d | e |
R2(B,C,D) | a2 | b | c | d | e |
R3(A,C,E) | a | b3 | c | d | e |
因为第一行已经全部无下标,所以该分解是无损的。