保持函数依赖的分解概要.pptVIP

  • 46
  • 0
  • 约2.53千字
  • 约 12页
  • 2017-05-13 发布于湖北
  • 举报
保持函数依赖的分解概要

* 保持函数依赖的分解 定义(FD集的投影): 设F是属性集U上的FD集, Z是U的子集, PZ(F) ={X→Y | X→Y可由F推出, 且X, Y? Z } F={… } R U … Z … F在Z上的投影PZ(F)定义为: PZ(F)={ , … } 投影 如果X→Y可由F推出 X→Y X, Y 例: FD集的投影 设有关系模式R(ABCD), R上的FD集为: F = { A→B, B→C , D→B } 求PACD(F) 和PBD(F) PACD(F)={ , } A→C D→C PBD(F)={ } D→B 设ρ={R1,…,Rk}是关系模式R的一个分解,F是R上的FD集,如果: PR1(F)∪…∪ PRk(F)与F等价, 两个函数依赖集F和G是等价的,当且仅当: 1) 凡是能够由F推出的FD都能够由G推出; 2) 凡是不能由F推出的FD也不能由G推出。 则称分解ρ保持函数依赖集F。 定义(保持函数依赖的分解): 例: 分解是否保持FD集,是否无损分解 设有关系模式:R( N, S, G ) 职工工号 工资级别 工资数目 R上的FD集为: F= { N→S, /* 每个职工只有一个工资级别 */ S →G /* 一个工资级别只有一个工资数目*/ } 将R分解为:ρ ={ NS, NG }, ρ保持依赖?无损分解? 解:PNS(F)={N→S}, PNG(F)={N→G}。 因为根据N→S和N→G推不出S →G, 所以ρ不保持函数依赖; a3 b22 a1 2NG b13 a2 a1 1NS 3G 2S 1N 但是是无损分解: 设有关系模式:R( N, S, G ) 职工工号 工资级别 工资数目 R上的FD集为: F= { N→S, /* 每个职工只有一个工资级别 */ S →G /* 一个工资级别只有一个工资数目*/ } 将R分解为:ρ ={ NS, NG }, ρ保持依赖?无损分解? 解:PNS(F)={N→S}, PNG(F)={N→G}。 因为根据N→S和N→G推不出S →G, 所以ρ不保持函数依赖; a3 a2 a1 2NG b13 a2 a1 1NS 3G 2S 1N 但是是无损分解: 例: 分解是否保持FD集,是否无损分解 思考:不保持函数依赖的分解会导致什么问题? 设有关系模式:R( N, S, G ) 职工工号 工资级别 工资数目 R上的FD集为: F= { N→S, /* 每个职工只有一个工资级别 */ S →G /* 一个工资级别只有一个工资数目*/ } a3 a2 b21 2SG b13 a2 a1 1NS 3G 2S 1N 也是无损分解: 将R分解为:ρ ={ NS, SG }, ρ保持依赖?无损分解? 解:PNS(F)={N→S}, PSG(F)={S→G}。 因为PNS(F)∪PSG(F)= F, 所以ρ保持函数依赖; 例: 分解是否保持FD集,是否无损分解 设有关系模式:R( N, S, G ) 职工工号 工资级别 工资数目 R上的FD集为: F= { N→S, /* 每个职工只有一个工资级别 */ S →G /* 一个工资级别只有一个工资数目*/ } a3 a2 b21 2SG a3 a2 a1 1NS 3G 2S 1N 也是无损分解: 将R分解为:ρ ={ NS, SG }, ρ保持依赖?无损分解? 解:P

文档评论(0)

1亿VIP精品文档

相关文档