1、1可整理ppt例例:图书馆的图书借阅登记文件图书馆的图书借阅登记文件,需要保存个人借书证号需要保存个人借书证号(LCNO),借书证姓名借书证姓名(NAME),所在部门所在部门(DEPT),图书图书登录号登录号(BNO),借书日期借书日期(DATE)等信息等信息,选用下列数据选用下列数据库模式的方案库模式的方案.方案一方案一:BORROW(LCNO,NAME,DEPT,BNO,DATE)主码主码(主关系键主关系键):(LCNO,BNO)方案二方案二:CARD(LCNO,NAME,DEPT)主码主码:LCNO LOANS(LCNO,BNO,DATE)主码主码:(LCNO,BNO)为什么要对进行关系
2、的规范化为什么要对进行关系的规范化2可整理ppt分析方案一:假定关系BORROW的部分数据 3可整理ppt(1)插入异常:因为要求主码非空,在无BNO的值,(只办证,不借书),其它值无法插入.17035 陈成陈成 物理系物理系 主码主码4可整理ppt(2)删除异常:借书的信息删除(已经还请全部借书),其它信息也跟着删去.如:姓名,单位信息.还书还书还书还书5可整理ppt(3)数据冗余及由此带来的更新异常或潜在的数据的不一致性.计算机系计算机系信息系6可整理ppt分析方案二分析方案二:7可整理ppt分析问题的根源分析问题的根源:在BORROW中,主码为(LCNO,BNO).其值唯一地决定其他所有
3、属性的值,即其它属性(非码属性)对主码有依赖关系.另一方面,非码属性对主码的依赖程度是不同的.LCNOBNONAMEDATEDEPT对主码的部分依赖对主码的完全依赖8可整理ppt有关学生的关系模式UN(S#,SN,SD,DEAN)1:它存在哪些问题?它存在哪些问题?2:有不良的不良的数据依赖?数据依赖?/*学号,姓名,系名,系主任名*/主码为:(S#)9可整理ppt进一步分析:UN_SD(S#,SN,SD,DEAN)不良特性插入异常:如果系中没有学生,则有关系的信息就无法插入删除异常:如果学生全部毕业了,则在删除学生信息的同时有关系的信息也随之删除了数据冗余:每个学生都存储了所在系的系主任的信
4、息更新异常:如果学生转系,不但要修改SD,还要修改DEAN,如果换系主任,则该系每个学生元组都要做相应修改10可整理ppt关系模式UN:UN(S#,SN,SD,DEAN)/*学号,姓名,系名,系主任名*/主码为:(S#)S#SD DEAN对S#的传递依赖SN 11可整理ppt关系模式关系模式UN:UN(S#,SN,SD,DEAN)分解如下分解如下:SD(S#,SN,SD)主码为主码为:S#DM(SD,DEAN)主码为主码为:SD12可整理ppt什么是数据依赖什么是数据依赖定义属性值间的相互关连,这就是数据依赖,它是数据库模式设计的关键是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系
5、是现实世界属性间相互联系的抽象是数据内在的性质是语义的体现13可整理ppt什么是数据依赖(续)什么是数据依赖(续)数据依赖的类型数据依赖的类型函数依赖(函数依赖(Functional Dependency,简记为,简记为FD)多值依赖(多值依赖(Multivalued Dependency,简记为,简记为MVD)其他其他14可整理ppt5.1 函数依赖函数依赖 定义:设R(U)是属性集U上的关系模式,X,Y U,r是R(U)上的任意一个关系,如果成立.对任何元组t,s r,若tX=sX,则tY=sY 那么称“X函数决定Y”,或“Y函数依赖于X”,记作XY.称X为决定因素.如S#SN,(S#,C
6、#)G15可整理ppt R(.,X,.,Y,.).t .s .a1 a1关系r 函数依赖函数依赖X XY Y16可整理ppt说明:函数依赖是语义范畴的概念函数依赖是语义范畴的概念,只只能根据语义来判断函数依赖能根据语义来判断函数依赖.例例:在关系模式在关系模式BORROW中有如下语义中有如下语义:每个借书证只能为一个读者拥有每个借书证只能为一个读者拥有,因此因此LCNO可唯一地确定持证人的姓名和所在部门可唯一地确定持证人的姓名和所在部门,而借书而借书日期则函数依赖与借书人日期则函数依赖与借书人(LCNO)和所借的书和所借的书籍籍(BNO)F=LCNO F=LCNO NAME,LCNO NAME
7、,LCNO DEPT,(LCNO,BNO)DEPT,(LCNO,BNO)DATE DATE函数依赖函数依赖17可整理ppt函数依赖函数依赖检验:AC?CA?ABD?d4d3d2d2d1Dc2b3a3c2b3a2c2b2a2c1b2a1c1b1a1CBA辨识:满足依赖的关系:依赖在模式的某个关系实例上成立模式上成立的依赖:依赖在模式的所有关系实例上都成立18可整理ppt平凡函数依赖与非平凡的函数依赖平凡函数依赖与非平凡的函数依赖如果X Y,但Y X,则称其为非平凡的函数依赖,否则称为平凡的函数依赖如(S#,SN)SN是平凡的函数依赖19可整理ppt完全函数依赖与部分函数依赖 在R(U)中,如果X
8、Y,且对于任意X的真子集X,都有 ,则称Y对X完全函数依赖,记作否则称为Y对X部分函数依赖,记作X YX YX Y20可整理ppt完全函数依赖与部分函数依赖例:已知关系模式如下:成绩(学号,姓名,课程号,课程名称,学时,分数)根据应用语义可以得到如下函数依赖FD:学号学号姓名姓名,课程号课程号课程名称课程名称,学时学时,学号学号,课程号课程号分数分数学号学号,课程号课程号姓名姓名,学号学号,课程号课程号课程名称课程名称,学时学时f?pp21可整理ppt例:关系模式R(U,F),U=S#,C#,G(分数),E(学分)主码为:(S#,C#)对于(S#,C#):完全函数依赖与部分函数依赖(S#,C#
9、)G(S#,C#)E ES#G,C#GC#E,S#E,22可整理pptX Y,Y Z,Y X,且Z Y传递函数依赖在R(U)中,如果则称Z对X传递函数依赖,记作:X Zt例:已知关系模式如下例:已知关系模式如下:成绩成绩(学号学号,姓名姓名,系名称系名称,系地址系地址)学号学号姓名姓名,系名称系名称,系地址系地址系名称系名称系地址系地址学号学号系地址系地址t23可整理ppt传递函数依赖例:R(S#,SD,MN,C#,G)主码为:(S#,C#)(S#,C#)G,S#SD,SD MN(S#,C#)Gf(S#,C#)SDS#MNtp24可整理ppt超码超码超码超码:设设K K为为RR的属性或属性组,
10、若的属性或属性组,若K K U U,则称则称K K为为R R的超码的超码候选码候选码候选码候选码:设设K K为为RR的超码,若的超码,若K UK U,则,则称称K K为为R R的候选码的候选码主码主码主码主码:若若R(U,F)R(U,F)有多个候选码,则可以从中选定一有多个候选码,则可以从中选定一个作为个作为R R的主码的主码主属性主属性主属性主属性:包含在每一个候选码中的属性,称作主属性包含在每一个候选码中的属性,称作主属性全码全码全码全码:关系模式的码由整个属性组构成关系模式的码由整个属性组构成.码码25可整理ppt例:DEPT(D#,DN,TEL,MN)候选码:D#单个属性作候选码.SC
11、(S#,C#,G)候选码:(S#,C#)组合属性(属性组)候选码.CSZ(CITY,ST,ZIP)/*城市,街道,邮编候选码:(ST,ZIP),(CITY,ST)组合属性(属性组)候选码.WSC(W#,S#,C#)/*仓库号,保管员号,物品号候选码:(W#,S#,C#)整个属性集做候选码,称作全码全码.26可整理ppt5.25.2数据库的表与规范化数据库的表与规范化 对关系的规范化是改造关系模式过程,首先,根据一组不同级别的范式判定关系的规范化程度,确定不正常的数据依赖关系,通过模式分解将一个通过模式分解将一个低一级低一级范式的关系模式范式的关系模式,转换为若干转换为若干个个高一级高一级的范式
12、的关系模式的集合,的范式的关系模式的集合,消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。27可整理ppt1NF2NF3NFBCNF4NF5NF28可整理ppt定义:设R是一个关系模式,如果R中每一个属性的值域中的每一个值都是不可分的(原子项),则称R属于第一范式(R 1NF)第一范式(1NF)29可整理ppt例:学生选课 SC1(学号 课程).t1 05302 DS,编译,AI t2 05380 C,DS,OS,DB .SC1是非1NF的,其缺点是更新困难.对应1NF的形式如下:SC2(学号 课程).05302 DS 05302 编译 05302 AI 05380
13、 C 05380 DS 05380 OS 05380 DB .30可整理ppt例:通讯录 SC1(序号,姓名,电话号码).t1 5 张三 68932240,68931234,1368123456 t2 6 李四,68932240,68485634,1337155459 .31可整理ppt分量是否需要再分,与具体应用有关。如分量是否需要再分,与具体应用有关。如果用到值的一部分,则需要进一步分割果用到值的一部分,则需要进一步分割 如果只是查询出生日期,则它满足如果只是查询出生日期,则它满足1NF1NF如果查询两人生日是否相同,则只比较月、如果查询两人生日是否相同,则只比较月、日,需要将生日分解,就
14、不满足日,需要将生日分解,就不满足1NF1NF 80.3.28李明69.7.10张立68.7.10王军生日姓名3.287.107.10月日806968年李明张立王军姓名32可整理ppt 定义:若关系模式R属于1NF(R R 1NF1NF),且每个非主属性都完全函数依赖完全函数依赖于R的每个码,则关系模式R属于第二范式(R R 2NF2NF).消除非主属性对码的部分依赖5.2.4 第二范式(2NF)33可整理ppt例:关系模式S(S#,SN,AGE,SEX,DEPT),且SN无重名S#,SN分别为候选码.S#(SN,AGE,SEX,DEPT),SN (S#,AGE,SEX,DEPT)所以:关系模
15、式S属于2NF.34可整理ppt例:关系模式SC(S#,C#,G)因为:(S#,C#)为候选码,(S#,C#)G,且为完全函数依赖.所以:关系模式SC属于2NF.35可整理ppt2NF的规范化的规范化 2NF的要求是每个的要求是每个非主属性非主属性都都完全函数完全函数依赖依赖于该关系模式的于该关系模式的每个码每个码.即在关系模式中即在关系模式中不存在不存在部分函数依赖部分函数依赖.36可整理ppt例:BORROW(LCNO,BNO,NAME,DEPT,DATE)BORROW是1NF的,候选码为:(LCNO,BNO)(LCNO,BNO)(NAME,DEPT)(LCNO,BNO)DATE 关系模式
16、BORROW中存在部分函数依赖,所以该关系模式不属于2NF.pf分解方法:CARD(LCNO,NAME,DEPT)LANS(LCNO,BNO,DATE)37可整理ppt练习:关系模式R(A,B,C,D),码为AB,给出它的一个函数依赖集,使得R属于1NF而不属于2NF候选码为候选码为AB 函数依赖集如下函数依赖集如下:F=A C,AB D 38可整理ppt5.2.5 第三范式第三范式(3NF)定义:若关系模式R属于2NF(R2NF),且每个非主属性都不传递依赖于R的任何码,则R是属于3NF 的(R3NF).39可整理ppt例:S(SNO,NAME,AGE,DNO,DEAN)主码为:SNO,S属
17、于2NF.因为:SNO (NAME,AGE,DNO)DNO DEAN 所以:SNO DEAN由此造成学生元组不存在,则系和系主任的关系也就不存在.t40可整理ppt 3NF的规范化的规范化 3NF的关系模式中要求不存在非主属性对码的传递依赖.消除传递依赖的分解原则:消除造成传递依赖的部分,生成一个新的关系模式.且将分解后的模式,通过做自然连接能恢复成原来的模式.41可整理ppt例:S(SNO,NAME,AGE,DNO,DEAN)分解:S(SNO,NAME,AGE,DNO)主码:SNO DEPT(DNO,DEAN)主码:DNO上述两个关系模式都是属于3NF.42可整理ppt练习:关系模式R(A,
18、B,C,D),码为AB,给出它的一个函数依赖集,使得R属于2NF而不属于3NF候选码为候选码为AB 函数依赖集如下函数依赖集如下:F=AB C,C D 43可整理ppt 非主属性对码的部分函数依赖和传递函数依赖是产生存储异常的两个重要原因,所以关系模式达到3NF,就去掉了大部分的存储异常,且使得关系模式具有较好的性能.所以对于3NF以下的关系模式,一般不宜作数据库模式.通常要把它们转换为3NF或3NF以上范式的.1NF,2NF,3NF的关系模式涉及的是是非主属性,若关系模式没有非主属性,那么该关系模式一定为3NF.小结小结:44可整理ppt范式之间的关系范式之间的关系2NF4NF1NF3NF消除非主属性对码的部分函数依赖消除非主属性对码的传递函数依赖消除主属性对码的传递函数依赖消除非平凡的多值依赖BCNF45可整理ppt练习:设有关系R(U,F),其中U为R的属性集合,U=A,B,C,D,E F 为关系R定义在U上的一组函数依赖 F=A C,C D,(A,B)E (1)试确定R的码和确定R的范式级别.(2)将关系R分解为R1(A,C,D)和R2(A,B,E)判断二者的码和范式级别.(3)应该做怎样的分解?46可整理ppt