关系模式的分解举例.pptVIP

  • 83
  • 0
  • 约2.03千字
  • 约 8页
  • 2017-06-12 发布于天津
  • 举报
关系模式的分解举例.ppt

二、关系模式的分解 关系模式SL(Sno,Sdept,Sloc) 有函数依赖集: Sno Sdept Sdept Sloc Sno Sloc SL∈2NF,该关系存在插入异常、删除异常、数据冗余大和修改异常。因此需要分解成为更高范式的关系模式。 假设下面是该关系模式的一个关系 * * 关系模式的规范化 一、关系模式规范化的步骤 1NF 消除非主属性对码的部分函数依赖 2NF 消除非主属性对码的传递函数依赖 3NF 消除非主属性对码的部分和传递函数依赖 BCNF 消除非平凡且非函数依赖的多值依赖 4NF 消除不是由候选码所蕴涵的连接依赖 5NF B PH 04005 B IS 04004 C MA 04003 B IS 04002 A CS 04001 Sloc Sdept Sno SN SD SO 第一种分解: SN(Sno) SD(Sdept) SO(Sloc) 04005 04004 04003 04002 04001 Sno PH MA IS CS Sdept C B A Sloc 如果分解的关系可以通过自然连接恢复原来的关系,那么这种分解就没有丢失信息。 第二种分解: NL(Sno,Sloc) DL(Sdept,Sloc) 分解后的关系为: NL DL B 04005 B 04004 C 04003 B 04002 A 04001 Sloc Sno B PH C MA B IS A CS Sloc Sdept NL DL ? B PH 04004 B PH 04005 B IS 04005 B IS 04004 C MA 04003 B PH 04002 B IS 04002 A CS 04001 Sloc Sdept Sno 比原来的关系多了两个元组,因此也是丢失了信息 第三种分解: ND(Sno,Sdept) NL(Sno,Sloc) 分解后的关系为: ND NL PH 04005 IS 04004 MA 04003 IS 04002 CS 04001 Sdept Sno B 04004 B 04005 C 04003 B 04002 A 04001 Sloc Sno ND NL ? B PH 04005 B CS 04004 C MA 04003 B IS 04002 A CS 04001 Sloc Sdept Sno 没有丢失信息 ★设R是一个关系模式,F是R上的一个FD集。R分解成数据库模式ρ={ R1,…,Rk }。如果对R中满足F的每一个关系r,都有: r=∏R1(r)? ∏ R2(r)? … ? ∏ Rk(r) 那么称分解ρ相对于F是“无损联接分解”(lossless join decomposition),简称为“无损分解”,否则称为“损失分解”(lossy decomposition)。 第三种方法当然具有无损连接分解,保证了不丢失原有关系中的信息。但还是存在插入异常、删除异常和更新异常等问题。之所有出现这问题,是因为SL中函数依赖Sdept Sloc没有投影到分解的两个关系模式上。也就是说这种分解没有保持原来关系的函数依赖。 设ρ={ R1,…,Rk }是R的一个分解,F是R上的FD集,如果有 ∪∏Ri(F)?F,那么称分解ρ保持函数依赖集F。 第四种分解 判断关系模式的一个分解是否与原关系模式等价有三种方法: ① 分解具有无损连接性; ②分解要保持函数依赖; ③分解既要保持函数依赖,又要具有无损连接性。 无损连接分解保证了信息不丢失;函数依赖保持分解可以减轻或者解除各种异常情况。 第四种分解: ND(Sno,Sdept) DL(Sdept,Sloc) 分解后的关系为: ND DL PH 04005 IS 04004 MA 04003 IS 04002 CS 04001 Sdept Sno B PH C MA B IS A CS Sloc Sdept NL DL ? B PH 04005 B CS 04004 C MA 04003 B IS 04002 A CS 04001 Sloc S

文档评论(0)

1亿VIP精品文档

相关文档