第2章 关系数据库基本原理汇总.pptVIP

  • 47
  • 0
  • 约1.69万字
  • 约 95页
  • 2016-11-29 发布于湖北
  • 举报
* * * * * 规范化结果 由于系负责人传递函数依赖于学号 (学号 → 系名,系名 → 系负责人) 分解得到 系(系名,系负责人) 学生表(学号,姓名,系名) 系名(8) 系负责人(8) 管理系 李瑞 学号(6) 姓名(8) 系名(8) 060701 张三 管理系 060702 李四 管理系 060703 王五 管理系 060704 丁七 管理系 规范化前学生情况表总字节数= (6+8+8+8)*4=120B 规范化后总字节数=(8+8)*1+(6+8+8)*4=104B * 异常问题缓解 数据冗余降低 更新异常消除 修改管理系负责人只与该系的一个元组有关 插入异常消除 计算机系成立但尚未招生——可以插入 删除异常消除 删除管理系的所有学生并不会将管理系的信息丢失 * 进一步优化 减少作为外码的字段所占空间,即减少重复项的空间占用 如将系名用系号表示(2B),课程名用课程号表示(2B) 系号(2) 系名(8) 系负责人(8) MD 管理系 李瑞 学号(6) 姓名(8) 系号(2) 060701 张三 MD 060702 李四 MD 060703 王五 MD 060704 丁七 MD 优化前总字节数= (8+8)*1+(6+8+8)*4=104B 优化后总字节数= (2+8+8)*1+(6+8+2)*4=82B * 2.3 关系模式的分解 5. Boyce-Codd范式 定义9 设R是一个关系模式,若R的每一个函数依赖关系的左部都是R的一个候选关键字,称R满足Boyce-Codd范式,简记为BCNF。即每个属性,包括主属性或非主属性,都完全依赖于候选键,并且不存在传递依赖情况。 可以证明,BCNF是比3NF更强的规范(证明略),即符合BCNF条件的关系模式一定符合3NF条件,但反过来却不成立。 * 2.3 关系模式的分解 第四范式: 第四范式禁止主键列和非主键列一对多关系不受约束 主要任务:满足第三范式的前提下,消除多值依赖 product | agent | factory Car A1 F1 Bus A1 F2 Car A2 F2 在这里,Car的定位,必须由 agent 和 Factory才能得到(所以主键由agent和factory组成),可以通过 product依赖了agent和factory两个属性,所以正确的是 表1 表2: product | agent factory | product Car A1 F1 Car Bus A1 F2 Car Car A2 F2 Bus * 2.3 关系模式的分解 第五范式: 定义: 如果关系模式R中的每一个连接依赖, 都是由R的候选键所蕴含, 称R是第五范式的 第五范式将表分割成尽可能小的块,为了排除在表中所有的冗余。 看到定义,就知道是要消除连接依赖,并且必须保证数据完整 例子 A | B | C a1 b1 c1 a2 b1 c2 a1 b2 c1 a2 b2 c2 如果要定位到特定行,必须三个属性都为关键字。 * 2.3 关系模式的分解 所以关系要变为 三个关系,分别是A 和B,B和C ,C和A 如下: 表1 表2 表3 A | B B | C C | A a1 b1 b1 c1 c1 a1 a1 b2 b1 c2 c1 a2 a2 b1 b2 c1 a2 b2 b2 c2 范式可以避免数据冗余,减少数据库的空间,减轻维护数据完整性的麻烦,但是操作难,因为需要联系多个表才能得到所需要数据,而且越高范式性能就会越差。要权衡是否使用更高范式是比较麻烦。 一般在做项目中都,用得最多的也就是第三范式,使用到第三范式也就足够了,性能好,而且方便管理数据。

文档评论(0)

1亿VIP精品文档

相关文档