第四课--规范化和反规范化数据解析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四课--规范化和反规范化数据解析

规范化和反规范化数据 Copyright?2007-2009 创智新程 本课教学内容 规范化 范式 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) Boyce-Codd范式 (BCNF) 非规范化 规范化 规范化的目的就是实现关系数据库设计的优化,那么我们首先需要知道一个好的数据库设计所遵循的标准 每个表格应有一个标识符. 每个表格应当存储单个实体类型的数据. 接受NULL的列应当避免. 值或列的重复应当避免. 规范化 规范化就是用形式更为简洁、结构更加规范的关系模式取代原有关系模式的过程。 任务 首先我们先考虑salary表的结构: (employeeID/员工编号,Name/姓名,class/工资级别,salaryAmount/工资) 任务 Salary表的数据样本 数据冗余 数据在数据库中的重复存放称为数据冗余。 冗余意味着数据的重复,同时增加了更新、加入、和删除数据的时间,也增加了磁盘空间的使用。 冗余的弊端 更新不规则——插入,修改,和删除数据可能导致数据的不一致 不一致性——当事实北重复时,错误很可能会发生。 不必要地使用额外磁盘空间。 范式的定义 一个表结构(属性间的关系)必然是满足某种规则,就像我们表达信息的方式必然是一种自然语言一样。所以表结构总是以某种范式存在。 范式 最重要的和最广泛被使用的范式有: 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) Boyce-Code范式(BCNF) 范式 第一,第二和第三范式由Dr.E.F.Codd.最先定义。之后,Boyce和Codd引进了另外的范式称为Boyce-Codd范式。 第一范式 (1NF) 一个表结构被认为属于第一范式1NF,当表中每个单元恰好包含一个值时。 任务 education表的数据样本 任务 表格中的数据不是规范化因为diploma和graducateTime中单元有一个以上的值。通过运用1NF定义到Education表,你可以得到以下表格。 功能依赖性 已知一个表结构R,属性A是功能依赖于属性B,如果每一个在R中的A值总有一个B值与之精确地关联。 换句话说,属性A是功能依赖于B,当且仅当对每一个B,恰有一个A的值与之相对应。属性B被称之为决定因子。 第二范式 (2NF) 一个表格被称为2NF,当它是1NF且该行中的每个属性是功能依赖于整个键,而不只是部分的键。 任务 employPro表的数据样本 任务 下面是转换为2NF的表结构 表employeeDepart 任务 表employeePro 转换表格到2NF的方法: 找出并抹去功能依赖于键的一部分而不是整个键的属性。将它们放到不同的表中 组合剩余的属性 第三范式(3NF) 一个关系被认为是3NF,仅当它是2NF且每个非键属性只功能依赖于主键。 任务 分析以下employeeDepart表 任务 新的employeeDepart表 任务 新的department表 转换表格到3NF的方法 找到并抹去功能依赖于不是主键属性的非关键属性。把它们放入不同表格。 组合剩余的属性。 Boyce-Code范式(BCNF) chemicalUse表 Boyce-Code范式(BCNF) 我们对上述表进行改造得到以下表格 新的product_table表 Boyce-Code范式(BCNF) 新的project_table表 转换表格到BCNF的方法 发现和抹去覆盖的候选键。把部分的候选键和功能依赖的属性放入新的表中。 组合剩余的属性成为一个表格。 非规范化 前面对规范化的研究目的是为了设计出简洁,规范的表结构。 但是在很多时候我们为了得到一个简单的表结构却要连接查询很多个表,这造成了数据库的大量逻辑运算,降低了查询效率。 所以在一些情况下我们需要在特定的表结构中引入额外的属性,允许一定的冗余度才是明智的。 非规范化的定义 在一个表格中有意地引入冗余以改进性能被称为反规范化。 课堂小节 在本课, 你已学了 : 规范化数据 1NF 2NF 3NF BCNF 非规范化数据 *Copyright? 2007 创智新程 salaryAmount Class Name employeeID salary 630 11 Guillermo 006 630 11 Simon 005 665 8 Carlos 004 680 7 Laurence 003 650 10 Elizabeth 002 650 10 Maria 001 salaryAmount class name

文档评论(0)

little28 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档