第四课--规范化和反规范化数据_第1页
第四课--规范化和反规范化数据_第2页
第四课--规范化和反规范化数据_第3页
第四课--规范化和反规范化数据_第4页
第四课--规范化和反规范化数据_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Copyright 2007 创智新程 规范化和反规范化数据规范化和反规范化数据Copyright2007-2009 创智新程Copyright 2007 创智新程本课教学内容本课教学内容y规范化规范化0范式第一范式(1NF) 第二范式(2NF)第三范式(3NF)Boyce-Codd范式 (BCNF)y非规范化非规范化Copyright 2007 创智新程规范化规范化y规范化的目的就是实现关系数据库设计的优化,那么规范化的目的就是实现关系数据库设计的优化,那么我们首先需要知道一个好的数据库设计所遵循的标准我们首先需要知道一个好的数据库设计所遵循的标准0每个表格应有一个标识符.0每个表格应当存储

2、单个实体类型的数据.0接受NULL的列应当避免.0值或列的重复应当避免.Copyright 2007 创智新程规范化规范化y规范化就是用形式更为简洁、结构更加规范的关系模规范化就是用形式更为简洁、结构更加规范的关系模式取代原有关系模式的过程。式取代原有关系模式的过程。 Copyright 2007 创智新程任务任务y首先我们先考虑首先我们先考虑salarysalary表的结构:表的结构: (employeeID/employeeID/员工编号,员工编号,Name/Name/姓名,姓名,class/class/工资级别,工资级别,salaryAmount/salaryAmount/工资)工资)

3、salary employeeID Name Class salaryAmountCopyright 2007 创智新程任务任务ySalarySalary表的数据样本表的数据样本 employeeIDnameclasssalaryAmount001Maria10650002Elizabeth10650003Laurence7680004Carlos8665005Simon11630006Guillermo11630Copyright 2007 创智新程数据冗余数据冗余 y数据在数据库中的重复存放称为数据冗余。数据在数据库中的重复存放称为数据冗余。 y冗余意味着数据的重复,同时增加了更新、加入、

4、和冗余意味着数据的重复,同时增加了更新、加入、和删除数据的时间,也增加了磁盘空间的使用。删除数据的时间,也增加了磁盘空间的使用。 Copyright 2007 创智新程冗余的弊端冗余的弊端 y更新不规则更新不规则插入,修改,和删除数据可能导致数插入,修改,和删除数据可能导致数据的不一致据的不一致y不一致性不一致性当事实北重复时,错误很可能会发生。当事实北重复时,错误很可能会发生。y不必要地使用额外磁盘空间。不必要地使用额外磁盘空间。 Copyright 2007 创智新程范式的定义范式的定义 y一个表结构(属性间的关系)必然是满足某种规则,一个表结构(属性间的关系)必然是满足某种规则,就像我们

5、表达信息的方式必然是一种自然语言一样。就像我们表达信息的方式必然是一种自然语言一样。所以表结构总是以某种范式存在。所以表结构总是以某种范式存在。 Copyright 2007 创智新程范式范式y最重要的和最广泛被使用的范式有:最重要的和最广泛被使用的范式有: 0第一范式(1NF)0第二范式(2NF)0第三范式(3NF)0Boyce-Code范式(BCNF)Copyright 2007 创智新程范式范式y第一,第二和第三范式由第一,第二和第三范式由Dr.E.F.Codd.Dr.E.F.Codd.最先定义最先定义。之后,。之后,BoyceBoyce和和CoddCodd引进了另外的范式称为引进了另外

6、的范式称为Boyce-CoddBoyce-Codd范式。范式。Copyright 2007 创智新程第一范式第一范式 (1NF1NF) y一个表结构被认为属于第一范式一个表结构被认为属于第一范式1NF1NF,当表中每个单,当表中每个单元恰好包含一个值时。元恰好包含一个值时。 Copyright 2007 创智新程任务任务yeducationeducation表的数据样本表的数据样本 employeeIDnamediplomagraduateTime0001SimonCollegemaster 1963 19820002Carloscollege 1989Copyright 2007 创智新程任

7、务任务y表格中的数据不是规范化因为表格中的数据不是规范化因为diplomadiploma和和graducateTimegraducateTime中单元有一个以上的值。通过运用中单元有一个以上的值。通过运用1NF1NF定义到定义到EducationEducation表,你可以得到以下表格。表,你可以得到以下表格。 EmployeeNameDiplomagraduateTime0001SimonCollege 19630001SimonMaster 19820002Carloscollege 1989Copyright 2007 创智新程功能依赖性功能依赖性 y已知一个表结构已知一个表结构R R,

8、属性,属性A A是功能依赖于属性是功能依赖于属性B B,如果,如果每一个在每一个在R R中的中的A A值总有一个值总有一个B B值与之精确地关联。值与之精确地关联。y换句话说,属性换句话说,属性A A是功能依赖于是功能依赖于B B,当且仅当对每一个,当且仅当对每一个B B,恰有一个,恰有一个A A的值与之相对应。属性的值与之相对应。属性B B被称之为决定被称之为决定因子。因子。 Copyright 2007 创智新程第二范式第二范式 (2NF2NF) y一个表格被称为一个表格被称为2NF2NF,当它是,当它是1NF1NF且该行中的每个属性且该行中的每个属性是功能依赖于整个键,而不只是部分的键。

9、是功能依赖于整个键,而不只是部分的键。 Copyright 2007 创智新程任务任务yemployProemployPro表的数据样本表的数据样本 employeeIDnamedepartmanagerprojectIDgrade0002CarlosFinanceTOM YSN0210350005SimonPersonnelPaoloSN0211030007AlexanderTechRolandSN0211020002CarlosFinanceTOM YSN0211040002CarlosFinanceTOM YSN0211650088SergioTechRolandSN020214Copy

10、right 2007 创智新程任务任务y下面是转换为下面是转换为2NF2NF的表结构的表结构 表employeeDepart employeeIDDepartManager0002FinanceTom Y0005PersonnelPaolo0007TechRoland0088TechRolandCopyright 2007 创智新程任务任务y表表employeeProemployeePro employeeIDNameProject grade0002CarlosSN02103 50005SimonSN02110 30007AlexanderSN02110 20002CarlosSN02110

11、 40002CarlosSN02116 50088SergioSN02021 4Copyright 2007 创智新程转换表格到转换表格到2NF2NF的方法:的方法:y找出并抹去功能依赖于键的一部分而不是整个键的属找出并抹去功能依赖于键的一部分而不是整个键的属性。将它们放到不同的表中性。将它们放到不同的表中y组合剩余的属性组合剩余的属性Copyright 2007 创智新程第三范式(第三范式(3NF3NF) y一个关系被认为是一个关系被认为是3NF3NF,仅当它是,仅当它是2NF2NF且每个非键属性且每个非键属性只功能依赖于主键。只功能依赖于主键。 Copyright 2007 创智新程任务任

12、务y分析以下分析以下employeeDepartemployeeDepart表表 employeeIDDepartmanager0002FinanceTOM Y0005PersonnelPaolo0007TechRoland0088TechRoland0016PersonnelPaolo0062SalesTingCopyright 2007 创智新程任务任务y新的新的employeeDepartemployeeDepart表表 employeeIDDepart0002Finance0005Personnel0007Tech0088Tech0016Personnel0062SalesCopyri

13、ght 2007 创智新程任务任务y新的新的departmentdepartment表表 DepartmanagerFinanceTOM.YPersonnelPaoloTechRolandSalesTingCopyright 2007 创智新程转换表格到转换表格到3NF3NF的方法的方法 y找到并抹去功能依赖于不是主键属性的非关键属性。找到并抹去功能依赖于不是主键属性的非关键属性。把它们放入不同表格。把它们放入不同表格。y组合剩余的属性。组合剩余的属性。 Copyright 2007 创智新程Boyce-CodeBoyce-Code范式(范式(BCNFBCNF) ychemicalUseche

14、micalUse表表 productIDSignprojectIDamountA026CCH-4SN02103 2A005DCR-1SN02110 1A026CCH-4SN02121 1A026CCH-4SN02110 1A031CHR-2SN02116 3A088KSD-3SN02021 5Copyright 2007 创智新程Boyce-CodeBoyce-Code范式(范式(BCNFBCNF)y我们对上述表进行改造得到以下表格我们对上述表进行改造得到以下表格 新的product_table表 productIDsignA026CCH-4A005DCR-1A026CCH-4A026CCH-

15、4A031CHR-2A088KSD-3Copyright 2007 创智新程Boyce-CodeBoyce-Code范式(范式(BCNFBCNF)y新的新的project_tableproject_table表表 productIDprojectIDamountA026SN02103 2A005SN02110 1A026SN02121 1A026SN02110 1A031SN02116 3A088SN02021 5Copyright 2007 创智新程转换表格到转换表格到BCNFBCNF的方法的方法 y发现和抹去覆盖的候选键。把部分的候选键和功能依发现和抹去覆盖的候选键。把部分的候选键和功能依

16、赖的属性放入新的表中。赖的属性放入新的表中。y组合剩余的属性成为一个表格。组合剩余的属性成为一个表格。Copyright 2007 创智新程非规范化非规范化 y前面对规范化的研究目的是为了设计出简洁,规范的前面对规范化的研究目的是为了设计出简洁,规范的表结构。表结构。 y但是在很多时候我们为了得到一个简单的表结构却要但是在很多时候我们为了得到一个简单的表结构却要连接查询很多个表,这造成了数据库的大量逻辑运算连接查询很多个表,这造成了数据库的大量逻辑运算,降低了查询效率。,降低了查询效率。 y所以在一些情况下我们需要在特定的表结构中引入额所以在一些情况下我们需要在特定的表结构中引入额外的属性,允许一定的冗余度才是明智的。外的属性,允许一定的冗余度才是明智的。 Copyright 2007 创智新程非规范化的定义非规范化的定义 y在一个表格中有意地引入冗余以改进性能被称为反规在一个表格中有意地引入冗余以改进性能被称

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论