关于表的规范化.docx
《关于表的规范化.docx》由会员分享,可在线阅读,更多相关《关于表的规范化.docx(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、规范化:满足第一范式是表的最低要求,不满足第一范式要求的数据库(表)就不能称之为关系数据库。在此基础上满足更高要求的称为第二范式,简记为2NF,其余依此类推,还有第三范式(3NF)、BC范式(BCNF)、第四范式(4NF)、第五范式(5NF)。BCNF可以看作是修正了的第三范式。把表从低范式,通过投影运算转换成若干高一级范式的过程,叫做表的规范化。一般地说,表满足的范式级别越高,设计的表越是规范,表的质量越高,数据的冗余度越小,共享性越高,所占的存储空间越少,并将数据的不一致性减少到最低程度,这也是对表进行规范化的目的。但是,高范式的数据库查询起来比较复杂。所以,不应一味追求高范式,一般满足第
2、三范式或BC范式就可以了二、表的的规范化化1、第一一范式(1NFF)如前所述述,第一一范式要要求表的的每一个个字段都都是不可可再分的的最小单单位。例1:学学生(学学号,姓姓名,学学院,地地址,选选修课程程成绩(课程号号,课程程名,成成绩)表数据据如下:学号姓名学院地址选修课程程成绩(课程号号,课程程名,成成绩)99011张丽管理管2011C0011,高等等数学,9099011张丽管理管2011C0022,英语语,80099011张丽管理管2011C0033,计算算机,66699022李锋电子电1011C0044,法律律,788表一不满满足第一一范式的的表显然,这这样的表表是不满满足第一一范式的
3、的。因为为选修课课程成绩绩字段还还可分为为3个字段段即(课课程号,课程名名,成绩绩)。如果不把把它进行行规范化化,即转转换成满满足第一一范式的的表,将将会产生生很多问问题,如如:删除除异常,即本来来只想删删除成绩绩的,不不得不把把课程号号和课程程名也删删除了!转换的方方法就是是把可以以拆分的的字段进进行拆分分,即把把选修课课程成绩绩分解成成3个字段段:课程号号,课程名名,成绩。变成成下面满满足第一一范式的的表:学号姓名学院地址课程号课程名成绩99011张丽管理管2011C0011高等数学学9099011张丽管理管2011C0022英语8099011张丽管理管2011C0033计算机669902
4、2李锋电子电1011C0044法律78表二 满足第第一范式式的表2、第二二范式(2NFF)一个关系系应满足足1NFF是最起起码的条条件。但但是,仅仅满足11NF的的关系还还可能存存在一些些问题。例2:表表二中存存在以下下的问题题:l 问题1:数据据冗余度度大。张张丽选几几门课程程,都必必须输入入所有几几个她的的相关信信息,同同时,如如果有几几千个人人选修高高等数学学课,就就得输入入几千个个“高等数数学”。如果果要修改改“高等数数学”这个课课程名称称,对于于几千个个课程名名中,只只要漏改改一个,将造成成数据的的不一致致性。l 问题2:删除除异常。我们知知道,这这个表中中的关键键字为学学号和课课程
5、号,它们不不能为空空值,而而当李锋锋退学时时,不可可能只删删除李锋锋的学号号和姓名名,只能能删除了了李锋的的整条记记录,这这时相应应的课程程号为CC0044的法律律也被删删除,如如果这个个表中只只有李锋锋一人选选法律课课,该记记录删除除后,下下次将无无法查询询法律课课的课程程号。l 问题3:插入入记录异异常。与与删除异异常相似似,如果果李锋刚刚入学,还没有有选修任任何一门门课程,无法知知道他选选修的课课程号,而课程程号为关关键字,不能为为空,因因此,李李锋这个个记录也也不能输输入。造成出现现这些问问题的原原因是因因为这个个表不满满足第二二范式。l 如何判判断一个个表是否否满足第第二范式式呢,判
6、判断方法法是:(1)、找出表表的关键键字。(2)、如果只只有一个个关键字字,若每每一个非非关键字字都依赖赖于这个个关键字字,则表表满足第第二范式式,否则则不是。什么是依依赖(关关系)呢呢?例:某表中中有两个个字段:学号、姓名,对于每每一个学学号,只只有一个个姓名与与之对应应,则称称姓名依依赖于学学号,或或称学号号唯一确确定姓名名,记作作:学号号姓名。例3:学学生(学学号,姓姓名,学学院)表表是否满满足第二二范式?答:例4:学学生(学学号,姓姓名,学学院,成成绩)表表是否满满足第二二范式?答:(3)、如果有有两个或或两个以以上的关关键字,那么,把这些些关键字字看成是是一个组组合关键键字,若若每一
7、个个非关键键字都能能完全依依赖于组组合关键键字,则则表满足足第二范范式,否否则不是是。例5:成成绩(学学号,课课程,成成绩)表表是否满满足第二二范式?l 定义:如果一一个表满满足1NNF,且且每一个个非关键键字都完完全依赖赖于关键键字,则则这个表表满足第第二范式式。l 第一范范式转换换成第二二范式的的方法:找出依赖赖关系,将能完完全依赖赖于主键键的字段段从表中中提取出出来,同同主键一一起组成成一个新新的关系系。 例77:表二二(学号号,姓名名,学院院,地址址,课程程号,课课程名,成绩)的依赖赖关系如如下:显显然,不不满足22NF。转换的过过程就是是拆分的的过程,也是一一个消除除部分依依赖的过过
8、程。但但是,要要注意,拆拆分的结结果应该该包含原原表的所所有字段段!(即无损损分解)3、第三三范式(3NFF)通过分析析,发现现表A仍然在在一定程程度上存存在上面面提及的的三个问问题,要要消除和和减少它它们,还还得把它它分解成成满足更更高范式式(即33NF)的表.l 满足第第三范式式的判断断方法:判断表在在满足第第二范式式的基础础上是否否有传递递依赖的的情况,如果有有,不是是第三范范式,否否则是。l 将非第第三范式式规范为为第三范范式的方方法:把产生传传递依赖赖关系的的非关键键字段抽抽出来,同关键键字一起起建立新新的表。例8:表表A(学号号,姓名名,学院院,地址址)中,存在地地址传递递依赖于于
9、学号的的关系,即:学号学学院,学学院地址。把地址从从原表中中分出来来,同关关键字一一起建立立新的表表形成表表A1(学院、地地址),原表就就可消除除了传递递依赖关关系。表表A分解为为:表A1 (学院、地地址) 表A22(学号、姓姓名、学学院)小小结:表表的规范范化中,1NFF是要满满足每个个字段都都是不可可再分的的;2NNF是在在1NFF的基础础上消除除部分依依赖关系系(只保保留完全全依赖),3NNF是在在2NFF的基础础上进一一步消除除传递依依赖关系系。二:在设计和和操作维维护数据据库时,关键的的步骤就就是要确确保数据据正确地地分布到到数据库库的表中中。使用用正确的的数据结结构,不不仅便于于对
10、数据据库进行行相应的的存取操操作,而而且可以以极大地地简化应应用程序序的其他他内容(查询、窗体、报表、代码等等)。正正确进行行表设计计的正式式名称就就是数数据库规规范化。数据冗余余数据应该该尽可能能少地冗冗余,这这意味着着重复数数据应该该减少到到最少。比如说说,一个个部门雇雇员的电电话不应应该被存存储在不不同的表表中, 因为这这里的电电话号码码是雇员员的一个个属性。如果存存在过多多的冗余余数据,这就意意味着要要占用了了更多的的物理空空间,同同时也对对数据的的维护和和一致性性检查带带来了问问题,当当这个员员工的电电话号码码变化时时,冗余余数据会会导致对对多个表表的更新新动作,如果有有一个表表不幸
11、被被忽略了了,那么么就可能能导致数数据的不不一致性性。规范化实实例为了说明明方便,我们在在本文中中将使用用一个SSAMPPLE数数据表,来一步步一步分分析规范范化的过过程。首先,我我们先来来生成一一个的最最初始的的表。CREAATE TABBLE SAAMPLLE ( PRRJNUUM INTTEGEER NNOT NULLL, PRRJNAAME VAARCHHAR(2000), EMMYNUUM INTTEGEER NNOT NULLL, EMMYNAAME VAARCHHAR(2000), SAALCAATEGGORYY CCHARR(1), SAALPAACKAAGE INNTEGGE
12、R) IIN USEERSPPACEE1;ALTEER TTABLLE SAMMPLEE ADDD PRRIMAARY KEYY(PRJJNUMM, EMMYNUUM);Inseert intto SSAMPPLE(PRJJNUMM, PPRJNNAMEE, EEMYNNUM, EMMYNAAME, SAALCAATEGGORYY, SSALPPACKKAGEE)valuues(10000011, TPMMS, 20000001, Joohnsson, A, 20000), (10000011, TPMMS, 20000002,Chrristtinee, B, 330000), (100000
13、01, TPPMS, 22000003, KKeviin, CC, 40000), (11000002,TCTT, 20000011, Johhnsoon, AA, 20000), (11000002, TTCT, 22000004, AApplle, BB,30000);表1-11考察表11-1,我们可可以看到到,这张张表一共共有六个个字段,分析每每个字段段都有重重复的值值出现,也就是是说,存存在数据据冗余问问题。这这将潜在在地造成成数据操操作(比比如删除除、更新新等操作作)时的的异常情情况,因因此,需需要进行行规范化化。第一范式式参照范式式的定义义,考察察上表,我们发发现,这这张表已已经满
14、足足了第一一范式的的要求。(1NFF:字段段具有原原子性,不可再再分; 比如说籍籍贯这个个字段,里面是是“湖北北武汉”的话,它就违违反了原原子性,因为湖湖北武汉汉还可以以再分的的更具体体,分为为“湖北北”和“武汉” )1、因为为这张表表中字段段都是单单一属性性的,不不可再分分;2、而且且每一行行的记录录都是没没有重复复的;3、存在在主属性性,而且且所有的的属性都都是依赖赖于主属属性;4、所有有的主属属性都已已经定义义事实上在在当前所所有的关关系数据据库管理理系统(DBMMS)中中,都已已经在建建表的时时候强制制满足第第一范式式。因此此,这张张SAMMPLEE表已经经是一张张满足第第一范式式要求
15、的的表。考考察表11-1,我们首首先要找找出主键键。可以以看到,属性对对是主键键,其他他所有的的属性都都依赖于于该主键键。从一范式式转化到到二范式式根据第二二范式的的定义,转化为为二范式式就是消消除部分分依赖。(2NFF:组合合关键字字的表,不存在在组合关关键字中中的任意意字段决决定其它它非关键键字段(也就是是说不能能有两个个组合键键组成一一个主键键)考察表11-1,我们可可以发现现,非主主属性部分分依赖于于主键中中的; 非主主属性,和和都部部分依赖赖于主键键中的;表1-11的形式式,存在在着以下下潜在问问题:1 数数据冗余余:每一一个字段段都有值值重复;2 更更新异常常:比如如字字段的值值,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关于 规范化
限制150内