已知:关系模式R(U,F),U=ABCD,F={A→C,C→A,B→AC,D→AC},将模式R无损失连接并保持函数依赖,分解为3NF

已知:关系模式R(U,F),U=ABCD,F={A→C,C→A,B→AC,D→AC},将模式R无损失连接并保持函数依赖,分解为3NF

解答步骤:
①求出候选码
L:B,D
LR:A,C
BD→ABCD
因此候选码是BD
②求出函数F的最小函数依赖集
(极小化处理)

此处F={A→C,C→A,B→AC,D→AC}
继续对F进行分解
得到
F={A→C,C→A,B→A,B→C,D→A,D→C}
经过简化得
F={A→C,C→A,B→C,D→A,D→C}(去掉了B→A)
③求保持函数依赖的3NF
ρ={R1(AC),R2(BC),R3(CD)};
ps:此处因为A→C,C→A,因此可以直接化成R1所示。在关系的表示中没有问题
④检测是否满足无损分解条件

已知:关系模式R(U,F),U=ABCD,F={A→C,C→A,B→AC,D→AC},将模式R无损失连接并保持函数依赖,分解为3NF_第1张图片
按照F中所给的关系模式在表格中进行对应,首先是A->C:

把第一列相同的a1,对应相应行改成与第三列第一行相同的数字:

已知:关系模式R(U,F),U=ABCD,F={A→C,C→A,B→AC,D→AC},将模式R无损失连接并保持函数依赖,分解为3NF_第2张图片
如上图所示没有一行出现全部为a的情况,因此不满足无损分解条件。接下来我们将候选码BD单独作为一个关系放入上面关系中去得到

ρ={R1(AC),R2(BC),R3(CD),R4(BD)};经过再次无损分解验证可以得出此处已经满足无损分解条件

⑤得出结果
ρ={R1(AC),R2(BC),R3(CD),R4(BD)}

你可能感兴趣的:(数据库笔记,数据库,范式,完全函数依赖,无损连接)