• 测试技术
  • 博客
  • 视频
  • 开源
  • 论坛
  • 沙龙
  • 下载
  • 杂志
  • 招聘

您的位置:您的位置:软件测试技术网 >> 软件测试技术 >> 开发语言 >> 数据库 >> 查看资讯

字号: | 推荐给好友 上一篇 | 下一篇

数据库设计三大范式应用实例剖析

发布: 2008-10-22 10:49 | 作者: 不详 | 来源: 领测软件测试网采编 | 查看: 35次 | 进入领测软件测试网论坛讨论

领测软件测试网 软件测试技术网#SR ^]+k#l

软件测试技术网)C;`#KI `
  选课关系:SelectCourse(学号, 课程名称, 成绩)。
q'oHW jC软件测试技术网i l$ut!U q;y&S
  这样的数据库表是符合第二范式的,消除了数据冗余、更新异常、插入异常和删除异常。
"["bW4YR(]@m软件测试技术网N/a"rCy'm$tVc!d
  另外,所有单关键字的数据库表都符合第二范式,因为不可能存在组合关键字。
}of/yRco4n!c软件测试技术网,c kU l5E_1UB q
  第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。所谓传递函数依赖,指的是如果存在"A → B → C"的决定关系,则C传递函数依赖于A。因此,满足第三范式的数据库表应该不存在如下依赖关系: 软件测试技术网9`#\/W&N'YE"^f&B
软件测试技术网!YV5H0Oy}
  关键字段 → 非关键字段x → 非关键字段y 软件测试技术网.V+o]f PE/i
软件测试技术网st3y2sO"P
  假定学生关系表为Student(学号, 姓名, 年龄, 所在学院, 学院地点, 学院电话),关键字为单一关键字"学号",因为存在如下决定关系:
P N2q)uu AbZ
G h,t;Q$V7T;G1E+\_1y7w  (学号) → (姓名, 年龄, 所在学院, 学院地点, 学院电话)
3f Z3c