10 关系数据库规范化理论ppt课件数据库原理与应用 .pptx
《10 关系数据库规范化理论ppt课件数据库原理与应用 .pptx》由会员分享,可在线阅读,更多相关《10 关系数据库规范化理论ppt课件数据库原理与应用 .pptx(79页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、10 关系数据库规范化理论教学课件数据库原理与应用 数据库原理与应用数据库原理与应用10.1非规范化的关系模式存在的问题数据库原理与设计数据库原理与设计3数据库原理与应用数据库原理与应用10.1.1 10.1.1 存在异常的关系模式示例存在异常的关系模式示例 关系关系students(sid,sname,dname,ddirector,cid,cname,cscore)数据间存在的语义关系数据间存在的语义关系:一个系有多名学生,而一个学生只属于一个系,即系与学生一个系有多名学生,而一个学生只属于一个系,即系与学生之间是的之间是的1:n的联系。的联系。一个系只有一名系主任,一名系主任也只在一个系
2、任职,即一个系只有一名系主任,一名系主任也只在一个系任职,即系与系主任之间是系与系主任之间是1:1的联系。的联系。一名学生可以选修多门课程,而每门课程有多名学生选修,一名学生可以选修多门课程,而每门课程有多名学生选修,即学生与课程之间是即学生与课程之间是m:n的联系。的联系。数据库原理与应用数据库原理与应用SidSnameDnameDdirectorCidCnameCscore1001李红计算机罗刚1数据库原理861001李红计算机罗刚3数据结构902001张小伟信息管理李少强1数据库原理922001张小伟信息管理李少强2电子商务752001张小伟信息管理李少强3数据结构861002钱海斌计算
3、机罗刚1数据库原理901002钱海斌计算机罗刚3数据结构60students关系关系关系关系studentsstudents主键主键(sid,cidsid,cid)数据库原理与应用数据库原理与应用SidSnameDnameDdirectorCidCnameCscore1001李红计算机罗刚1数据库原理861001李红计算机罗刚3数据结构902001张小伟信息管理李少强1数据库原理922001张小伟信息管理李少强2电子商务752001张小伟信息管理李少强3数据结构861002钱海斌计算机罗刚1数据库原理901002钱海斌计算机罗刚3数据结构6010.1.2 10.1.2 可能存在的异常可能存在的
4、异常1.1.数据冗余数据冗余指同一个数据被重复存储多次,导致存储空间的浪费。指同一个数据被重复存储多次,导致存储空间的浪费。数据库原理与应用数据库原理与应用SidSnameDnameDdirectorCidCnameCscore1001李红计算机罗刚1数据库原理861001李红计算机罗刚3数据结构902001张小伟信息管理李少强1数据库原理922001张小伟信息管理李少强2电子商务752001张小伟信息管理李少强3数据结构861002钱海斌计算机罗刚1数据库原理901002钱海斌计算机罗刚3数据结构60更新异常更新异常指对冗余数据没有全部修改而出现数据不一致的问题指对冗余数据没有全部修改而出现
5、数据不一致的问题数据库原理与应用数据库原理与应用SidSnameDnameDdirectorCidCnameCscore1001李红计算机罗刚1数据库原理861001李红计算机罗刚3数据结构902001张小伟信息管理李少强1数据库原理922001张小伟信息管理李少强2电子商务75插入异常插入异常指应该插入到关系中的数据而不能插入。指应该插入到关系中的数据而不能插入。新来的同学,在未选课的前提下,该同学的基本信息能新来的同学,在未选课的前提下,该同学的基本信息能插入到该关系中吗?插入到该关系中吗?不能不能。因为主键为。因为主键为(sid,cid),要求主键中每列值均不能为空。,要求主键中每列值均
6、不能为空。数据库原理与应用数据库原理与应用SidSnameDnameDdirectorCidCnameCscore1001李红计算机罗刚1数据库原理861001李红计算机罗刚3数据结构902001张小伟信息管理李少强1数据库原理922001张小伟信息管理李少强2电子商务75删除异常删除异常指不应该删除的数据而被从关系中删除了。指不应该删除的数据而被从关系中删除了。某个某个系学生全部毕业,删除该系的学生信息,同时也将系和系学生全部毕业,删除该系的学生信息,同时也将系和系主任的信息一起删除掉了系主任的信息一起删除掉了数据库原理与应用数据库原理与应用10.1.3 10.1.3 关系模式中存在异常的原
7、因关系模式中存在异常的原因数据依赖数据依赖:关系模式中属性间存在的依赖关系。:关系模式中属性间存在的依赖关系。例如例如一个系只有一名系主任,一名系主任也只能在一个系任一个系只有一名系主任,一名系主任也只能在一个系任职这个数据语义,表明系和系主任间是职这个数据语义,表明系和系主任间是1:1的数据依赖关系的数据依赖关系异常现象产生的原因异常现象产生的原因:关系模式中存在的这些复杂的数据依赖关系所导致的。关系模式中存在的这些复杂的数据依赖关系所导致的。解决解决:关系模式规范化,:关系模式规范化,将单一的关系模式将单一的关系模式分解分解为数据依赖为数据依赖关系单纯化的多个关系模式。关系单纯化的多个关系
8、模式。Student(Sno,Sname,Dname)Dept(Dname,Ddirector)Score(Sid,Cid,Cscore)Course(Cid,Cname)Students(Sid,Sname,Dname,Ddirector,Cid,Cname,Cscore)10.2函数依赖数据库原理与设计数据库原理与设计11数据库原理与应用数据库原理与应用10.2.1 10.2.1 函数依赖定义函数依赖定义什么是函数依赖?什么是函数依赖?函数依赖(函数依赖(FD)是数据库)是数据库设计设计的的核心核心部分。部分。SidSnameSdept1001李红计算机1001李红计算机 SidSname
9、 SidSdept SidSnameSdept1001李红计算机1001李红自动化 设设R(U)是属性集是属性集U上的关系模式,上的关系模式,X和和Y是是U的子集。若对于的子集。若对于R(U)的的任意一个可能的关系任意一个可能的关系r,对于,对于X的的每一个每一个具体具体值值,Y都有唯一都有唯一的具体的的具体的值值与之与之对应对应,则称,则称X X函数决定函数决定Y Y,或,或Y Y函数依赖于函数依赖于X X,记作,记作 XY。此表是错误的此表是错误的 数据库原理与应用数据库原理与应用函数依赖函数依赖说明说明 函数依赖是函数依赖是语义范畴语义范畴概念。概念。SidSnameAge1001李红1
10、81002张丽17没有重名没有重名的前提下,的前提下,SnameAgeSidSnameAge1001李红181002张丽171003李红20允许重名允许重名,则,则Sname Age 函数依赖关心的问题是一个或一组函数依赖关心的问题是一个或一组属性属性的的值值决定决定其它属其它属性性的的值值。数据库原理与应用数据库原理与应用 函数依赖不是指关系模式函数依赖不是指关系模式R的某个或某些元组满足的约束条的某个或某些元组满足的约束条件,而是指件,而是指R的的所有元组均所有元组均要要满足满足的约束条件,不能部分满足。的约束条件,不能部分满足。SidSnameSdeptCid1001李红计算机C1100
11、1李红计算机C21002张明自动化C11002张明自动化C21003赵海涛计算机C11003赵海涛自动化C2SnameSdeptSname SdeptSname Sdept数据库原理与应用数据库原理与应用10.2.2 10.2.2 发现函数依赖发现函数依赖发现函数依赖发现函数依赖1根据根据完整的样本数据完整的样本数据发现函数依赖发现函数依赖存在的函数依赖存在的函数依赖:(Order_ID,SKU)(Quantity,Price,Total)(Quantity,Price)TotalOrder_ID(订单编号)(订单编号)SKU(商品编号)(商品编号)Quantity(数量)(数量)Price(
12、单价)(单价)Total(总价)(总价)30011002011300300200110110145020030011011012601202001101201250100300120100125010010011012012150300数据库原理与应用数据库原理与应用2根据根据数据语义数据语义发现函数依赖发现函数依赖 对于关系模式对于关系模式R(U),X、Y为其属性子集,根据函数依赖的定义和实为其属性子集,根据函数依赖的定义和实体间联系的类型,可以得出如下变换的方法:体间联系的类型,可以得出如下变换的方法:(1)如果)如果X和和Y之间是之间是1:1的联系,则存在的函数的联系,则存在的函数XY和
13、和YX;(2)如果)如果X和和Y之间是之间是1:n的联系,则存在的函数的联系,则存在的函数YX;(3)如果)如果X和和Y之间是之间是m:n的联系,则的联系,则X和和Y之间之间不存在不存在函数函数依依赖赖关系。关系。例如,例如,在在Students关系模式中,关系模式中,系与系主任之间是系与系主任之间是1:1的联系;的联系;系与学生之间是系与学生之间是1:n的联系的联系学生和课程之间是学生和课程之间是m:n的联系的联系DnameDdirector和和DdirectorDnameSidDnameSid与与Cid之间不存在函数依赖之间不存在函数依赖数据库原理与应用数据库原理与应用 【例【例10-1】
14、设设有关系模式有关系模式R(A,B,C),其关系,其关系R如下所示。如下所示。解答:解答:(1)在关系)在关系r中,中,AB成立,成立,BCA不成立,不成立,BA不成立。不成立。(2)在关系)在关系r中,不成立的中,不成立的FD有:有:BA,CA,CB,CAB,BCA。ABC123423533(1)试试判断下列判断下列3个个FD在关系在关系r中是否成立?中是否成立?AB BCA BA(2)根据关系)根据关系r,你能断定哪些,你能断定哪些FD在关系模式在关系模式R上不成立?上不成立?数据库原理与应用数据库原理与应用 【例【例10-2】有一个包括学生】有一个包括学生选课选课、教、教师师任任课课数据
15、的关系模式:数据的关系模式:R(S#,SNAME,AGE,SEX,C#,CNAME,SCORE,T#,TNAME,TITLE)规规定:每个学号只能有一个学生姓名,每个定:每个学号只能有一个学生姓名,每个课课程号只能决定一程号只能决定一门课门课程;程;每个学生每学一每个学生每学一门课门课,只能有一个成,只能有一个成绩绩;每每门课门课程只由一位教程只由一位教师师任任课课。根据上面的根据上面的规规定和定和实际实际意意义义,写出,写出该该关系模式所有的关系模式所有的FD。解答:解答:R关系模式包括的关系模式包括的FD有:有:S#SNAME C#CNAME (S#,C#)GRADE C#T#S#(AGE
16、,SEX)T#(TNAME,TITLE)数据库原理与应用数据库原理与应用10.2.3 10.2.3 最小函数依赖集最小函数依赖集最小函数依赖集最小函数依赖集1.函数依赖的函数依赖的推理规则推理规则A1(自反性):如果(自反性):如果YXU,则,则XY。A2(增广性):如果(增广性):如果XY且且ZU,则,则XZYZ。A3(传递性):如果(传递性):如果XY且且YZ,则,则XZ。B1(合并性):如果(合并性):如果XY且且XZ,则,则XYZ。B2(分解性):如果(分解性):如果XYZ,则,则XY、XZ。B3(结合性):如果(结合性):如果XY且且WZ,则,则XWYZ。B4(伪传递性):如果(伪传
17、递性):如果XY且且WYZ,则,则XWZ。Amstrong公理Amstrong公理推论数据库原理与应用数据库原理与应用 【例【例10-3】设设有关系模式有关系模式R,属性集,属性集U=A,B,X,Y,Z,函,函数依数依赖赖集集F=ZA,BX,AXY,ZBY,试给试给出出ZBY是冗是冗余的函数依余的函数依赖赖的的过过程。程。解答:解答:(1)因为)因为ZA,BX,由,由B3可知,可知,ZBAX;(2)因为)因为ZBAX,AXY,由,由A3可知,可知,ZBY。即即ZBY可以由可以由F中其它函数依赖导出,所以中其它函数依赖导出,所以ZBY是冗余的函数依赖。是冗余的函数依赖。数据库原理与应用数据库原理
18、与应用2.2.求求最小函数依赖集最小函数依赖集如果函数依赖集如果函数依赖集F满足下列条件,则称满足下列条件,则称F为一个最小函数依为一个最小函数依赖集。赖集。每个函数依赖的每个函数依赖的右边右边都是都是单单属性属性(可以通过(可以通过B2分解性实现:如分解性实现:如果果XYZ,则,则XY、XZ。)。);函数依赖集函数依赖集F中中没没有有冗余冗余的的函数函数依赖依赖;F中每个函数依赖的中每个函数依赖的左边没左边没有有多多余余的的属性属性。注意:注意:每个函数依赖集至少存在一个最小依赖集,但并每个函数依赖集至少存在一个最小依赖集,但并不不一定一定唯一唯一。数据库原理与应用数据库原理与应用【例例10
19、-4】设设F是关系模式是关系模式R(A,B,C)的)的FD集,集,F=ABC,BC,AB,ABC,试求最小函数依赖集。,试求最小函数依赖集。解:解:(1)先把)先把F中的函数依赖写成中的函数依赖写成右右边是边是单单属性形式:属性形式:F=AB,AC,BC,AB,ABC 删去一个删去一个AB,得:,得:F=AB,AC,BC,ABC数据库原理与应用数据库原理与应用 设设F是关系模式是关系模式R(A,B,C)的)的FD集,集,F=ABC,BC,AB,ABC,试求最小函数依赖集。,试求最小函数依赖集。解:解:(1)先把)先把F中的函数依赖写中的函数依赖写成右边是单属性成右边是单属性形式:形式:F=AB
20、,AC,BC,ABC(2)删删去去冗余冗余的函数的函数依赖依赖。F=AB,BC,ABC数据库原理与应用数据库原理与应用 设设F是关系模式是关系模式R(A,B,C)的)的FD集,集,F=ABC,BC,AB,ABC,试求最小函数依赖集。,试求最小函数依赖集。解:解:(2)删去冗余的函数依赖删去冗余的函数依赖。F=AB,BC,ABC(3)消除消除函数依赖函数依赖左左边边冗余冗余的的属性属性。最小函数依赖集为:最小函数依赖集为:F=AB,BC数据库原理与应用数据库原理与应用【例例10-5】设设关系模式关系模式R(A,B,C,D,E,G,H)上的函)上的函数依数依赖赖集集F=ACBEGH,AB,CDEH
21、,EH,求,求F的最小函数依的最小函数依赖赖集。集。解:解:(1)把每个)把每个FD的右边拆成单属性,得到的右边拆成单属性,得到9个个FD,得:,得:F=ACB,ACE,ACG,ACH,AB,CD,CE,CH,EH(2)消除冗余的)消除冗余的FD,得:,得:F=ACB,ACE,ACG,ACH,AB,CD,CE,EH数据库原理与应用数据库原理与应用(3)消除)消除FD中左边冗余的属性。因为中左边冗余的属性。因为AB,所以消去,所以消去ACB中的中的C;因为;因为CE,所以消去,所以消去ACE的的A;因为由;因为由CE、EH,可推出,可推出CH,所以消去,所以消去ACH中的中的A,得,得CH,因为
22、可由,因为可由CE、EH推出,所以将推出,所以将ACH删去,得删去,得到的到的F为:为:F=AB,CE,ACG,CD,EH(4)再把左边相同的)再把左边相同的FD合并起来,得到最小的函数依赖集为:合并起来,得到最小的函数依赖集为:F=AB,CDE,ACG,EH10.3候选键数据库原理与设计数据库原理与设计27数据库原理与应用数据库原理与应用10.3.1 10.3.1 候选键定义候选键定义定义定义10.2 10.2 设关系模式设关系模式R(U),kU。如果如果k满足满足下列条件,则下列条件,则称称k是是R的一个候选键。的一个候选键。kU;不不存在存在k的真子集的真子集z,使得,使得zU。例如:例
23、如:关系模式关系模式students(sid,sname,dname,ddirector,cid,cname,csore)(sid,cid)(sid,sname,dname,ddirector,cid,cname,csore)候选键:候选键:(sid,cid)sid (cid,cname,score)cid (sid,sname,dname,ddirector,cscore)如何确定属性如何确定属性集集kU?求属性集k的闭包如果k+=U,则k为候选键数据库原理与应用数据库原理与应用10.3.2 10.3.2 属性集的属性集的闭包闭包定义定义1010.3.3 设设F是属性集是属性集U上的函数依赖
24、集,上的函数依赖集,X是是U的子集,那么的子集,那么属性集属性集X的闭包用的闭包用X+表示,它是一个从表示,它是一个从F集使用函数依赖推理规集使用函数依赖推理规则推出的则推出的所有所有满足满足XA的属性的属性A的的集合集合:X+=属性属性AXA能由能由F推导出来推导出来定理定理 1010.1.1 XY能由能由F根据函数依赖推理规则推出的充分必要根据函数依赖推理规则推出的充分必要条件是条件是Y X+。数据库原理与应用数据库原理与应用算法算法1010.1 .1 求属性集求属性集X(XU)关于关于U上的函数依赖集上的函数依赖集F的闭包的闭包X+。输入:输入:函数依赖集函数依赖集F;属性集;属性集U
25、输出:输出:X+步骤:步骤:(1)令)令X(i)=X,i=0;(2)求)求b,这里,这里 b=A(V)(W)(VWFVX(i)AW);(3)X(i+1)=bX(i);(4)判断)判断X(i+1)=X(i)是否成立;是否成立;(5)如果等式成立或)如果等式成立或X(i+1)=U,则,则X(i+1)就是就是X+,算法终止;,算法终止;(6)如果等式不成立,则)如果等式不成立,则i=i+1,返回步骤(,返回步骤(2)继续。)继续。数据库原理与应用数据库原理与应用【例例10-6】已知关系模式】已知关系模式R(U,F),其中其中U=A,B,C,D,E;F=ABC,BD,CE,ECB,ACB。求求(AB)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 关系数据库规范化理论ppt课件数据库原理与应用 关系 数据库 规范化 理论 ppt 课件 原理 应用
限制150内