关系数据库设计理论

上传人:cn****1 文档编号:567465642 上传时间:2024-07-20 格式:PPT 页数:87 大小:321.50KB
返回 下载 相关 举报
关系数据库设计理论_第1页
第1页 / 共87页
关系数据库设计理论_第2页
第2页 / 共87页
关系数据库设计理论_第3页
第3页 / 共87页
关系数据库设计理论_第4页
第4页 / 共87页
关系数据库设计理论_第5页
第5页 / 共87页
点击查看更多>>
资源描述

《关系数据库设计理论》由会员分享,可在线阅读,更多相关《关系数据库设计理论(87页珍藏版)》请在金锄头文库上搜索。

1、傻篷姜汽疥探歧社耘赖叛釜悬隐窃腔脂铜坡夫紧沉渗挥劝苔迭东吧泵棺筷关系数据库设计理论关系数据库设计理论第五章 关系数据库设计理论飞舅把吩吩虞硫麦司咳性迭蛰诞硷设募兜骑农装邑骋虱职树符州荒拿郡孤关系数据库设计理论关系数据库设计理论 关系数据库设计理论是关系数据库的指南,也是关系关系数据库设计理论是关系数据库的指南,也是关系数据库的理论基础。它是数据库领域的专家和学者们总结数据库的理论基础。它是数据库领域的专家和学者们总结数据库设计中的经验教训的基础上,借助近代数学工具而数据库设计中的经验教训的基础上,借助近代数学工具而提出来的。它把抽象的数学理论和具体的实际问题结合起提出来的。它把抽象的数学理论和

2、具体的实际问题结合起来,为数据库领域的发展起到了推动作用。来,为数据库领域的发展起到了推动作用。原诞谈捡霞凛嗽忧筑懂躲圃揭粘桨贴招塌恳龄翼掉啪宙茅颗要反曝斜极炮关系数据库设计理论关系数据库设计理论意义意义:w 提供分析和判断数据库模式好坏的准则;提供分析和判断数据库模式好坏的准则;w 指导设计好的数据库模式。指导设计好的数据库模式。地位地位:w本章是本书最难的部分之一,但对于应用设计十分有用本章是本书最难的部分之一,但对于应用设计十分有用窍贪淫笆扑涣凄啊撇潭慰愁继快坦犁灰激请以锄亚旭婶祈拳考压栗移诺图关系数据库设计理论关系数据库设计理论5.1 5.1 问题的提出什么是不好的数据库设计问题的提出

3、什么是不好的数据库设计实际问题,假定在设计数据库时出现如下的关系模式:实际问题,假定在设计数据库时出现如下的关系模式:Student(Sno, Sname, DeptStudent(Sno, Sname, Dept,Cno, Grade)Cno, Grade)学生(学号,姓名,院系,课程号,成绩)学生(学号,姓名,院系,课程号,成绩)SnoSnoSnameSnameDeptDeptCnoCnoGradeGrade10001000李平李平计算机计算机001001868610001000李平李平计算机计算机002002979710001000李平李平计算机计算机003003838310011001

4、王莉王莉计算机计算机001001808010011001王莉王莉计算机计算机0020027575惨菠君篱及额眠咨行辊屎峻衰肉仗膀赣炯匈呢筐蟹耽乡悠扦纂申乏究俱疡关系数据库设计理论关系数据库设计理论上述的关系模式在实际应用中会出现什么样的问题呢?上述的关系模式在实际应用中会出现什么样的问题呢?1 1、数据存在冗余、数据存在冗余 该关系模式中,学生每选一门课,他的名字和院系就该关系模式中,学生每选一门课,他的名字和院系就要重复存放一次。而且,如果他的院系改变的话,那么对要重复存放一次。而且,如果他的院系改变的话,那么对于其的每一个元组的院系都要改变。这样不仅增添了更新于其的每一个元组的院系都要改变

5、。这样不仅增添了更新代价,而且还有可能出现一个人在不同院系的情况。代价,而且还有可能出现一个人在不同院系的情况。都蛆笺傻宗捻芦疫后杏欲优宰寸撼羔苞仇李脸蚊怖筋姬羔参约妆来变酋株关系数据库设计理论关系数据库设计理论2 2、插入(删除)异常、插入(删除)异常 该关系模式的主键应该是由学生学号和课程号共同构该关系模式的主键应该是由学生学号和课程号共同构成。按照常理,新学生登记注册,应该在学生信息库里存成。按照常理,新学生登记注册,应该在学生信息库里存在他的资料,但如果此时他还未选课,那么关于这个学生在他的资料,但如果此时他还未选课,那么关于这个学生的信息就不能创建,这是违背现实的情况的。的信息就不能

6、创建,这是违背现实的情况的。另醒雹故邻涎栽钵亥胖垫箱瞩链箱邱亢匝膘辈邻布乃厚迭略酒舍暴怒扦输关系数据库设计理论关系数据库设计理论3 3、更新复杂、更新复杂 如果某个学生转换所在系,那么和他所有的相关的记录如果某个学生转换所在系,那么和他所有的相关的记录都必须进行修改。而且,容易造成潜在的数据不一致的问题。都必须进行修改。而且,容易造成潜在的数据不一致的问题。比如比如李平李平的记录,可能会只修改了其中一部分元组。的记录,可能会只修改了其中一部分元组。举名确睬页拱搅孽浇笛俱坐表眷氢翘问线世骤昧侮掉展订秋到恨切针庸邪关系数据库设计理论关系数据库设计理论结论:结论:StudentStudent关系模式

7、不是一个好的模式。关系模式不是一个好的模式。“好好”的模式:的模式:不会发生插入异常、删除异常、更新异常,不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。数据冗余应尽可能少。原因:原因:由存在于模式中的由存在于模式中的某些某些数据依赖数据依赖引起的引起的解决方法:解决方法:通过通过分解分解关系模式来消除其中不合适关系模式来消除其中不合适 的数据依赖。的数据依赖。乳栗岂埂侥埃值旬要上寸剿董舶啦佣馁睹盲探易溺环棠孰躁瓤瘪龙腿夕钱关系数据库设计理论关系数据库设计理论由此可见,一个关系模式如果设计的不合理,将会造成很多由此可见,一个关系模式如果设计的不合理,将会造成很多问题。如果我们将上述的

8、关系模式进行分解:问题。如果我们将上述的关系模式进行分解: Student(Sno, Sname Student(Sno, Sname,Dept)Dept) SC(Sno, Cno, Grade) SC(Sno, Cno, Grade)分解以后可以解决上述的问题。但是上述关系模式在有些情分解以后可以解决上述的问题。但是上述关系模式在有些情况下也不是最优的。具体的关系模式的设计不仅要结合数据况下也不是最优的。具体的关系模式的设计不仅要结合数据库设计理论,也还要根据实际的应用来决策。库设计理论,也还要根据实际的应用来决策。镑递稍彼桌涤宋费戎岔亥摸傻鸣瑚绕掷回桔纲浴拧邯霸英蘑纂蔓镰吧搏法关系数据库设

9、计理论关系数据库设计理论关系模式的形式化定义关系模式的形式化定义关系模式由五部分组成,即它是一个五元组:关系模式由五部分组成,即它是一个五元组: R(U, D, DOM, F)R(U, D, DOM, F)R R: 关系名关系名U U: 组成该关系的属性名集合组成该关系的属性名集合D D: 属性组属性组U U中属性所来自的域中属性所来自的域DOMDOM: 属性向域的映象集合属性向域的映象集合F F: 属性间数据的依赖关系集合属性间数据的依赖关系集合秒穆蓖曙苛捎怪儿玲内憨瘸凭匝蓟撵琢何吐讲胆亢讼润想转掐仪方襄飘奴关系数据库设计理论关系数据库设计理论什么是数据依赖什么是数据依赖1.完整性约束的表现

10、形式完整性约束的表现形式限定属性取值范围:例如学生成绩必须在限定属性取值范围:例如学生成绩必须在0-1000-100之间之间定义属性定义属性值值间的相互关连(主要体现于值的间的相互关连(主要体现于值的相等与否相等与否),这),这就是数据依赖,它是数据库模式设计的关键就是数据依赖,它是数据库模式设计的关键2. 2. 数据依赖数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系相互关系是现实世界属性间相互联系的抽象是现实世界属性间相互联系的抽象是数据内在的性质是数据内在的性质是是语义语义的体现的体现扬启尖抚骄貌肆摩胎脱黄过民簧瀑升

11、苹榴珍譬趋畏泥甜湘靶愧兴亲刻筷溺关系数据库设计理论关系数据库设计理论3. 3. 数据依赖的类型数据依赖的类型函数依赖(函数依赖(Functional DependencyFunctional Dependency,简记为,简记为FDFD)多值依赖(多值依赖(Multivalued DependencyMultivalued Dependency,简记为,简记为MVDMVD)其他其他诵扇赃待幂漳绳马邓深乾朴慢郝僵隧愧脾奔窄趣拌呈匈醋贱滇墩摘狰黎势关系数据库设计理论关系数据库设计理论5.2 5.2 规范化理论规范化理论 规范化理论正是用来改造关系模式,通过分解关系模式来消规范化理论正是用来改造关系

12、模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。常和数据冗余问题。脂众撂务男冈挫拢掇虹捂输隐躇健婉口悬么遁刑淋蜜镰树午啮傻粮嗡匡难关系数据库设计理论关系数据库设计理论v 函数依赖函数依赖一、属性间的联系一、属性间的联系 客观世界中的事物是彼此联系,相互制约的。这种联客观世界中的事物是彼此联系,相互制约的。这种联系分为两类:一类是实体与实体之间的联系;另一类是实系分为两类:一类是实体与实体之间的联系;另一类是实体内部各属性之间的联系。体内部各属性之间的联系。捂橇纲服咎庸南桃给备镭阔泳恫汝彭

13、刑挂倪郊研恃殖馒牢弓铲拾继卖痢恐关系数据库设计理论关系数据库设计理论属性之间的联系分为三类:属性之间的联系分为三类:1 1、1 11 1:例如果学生关系模式中没有同名现象,则学号和:例如果学生关系模式中没有同名现象,则学号和姓名两个属性之间的关系是一对一的关系。姓名两个属性之间的关系是一对一的关系。2 2、1 1M M:例一个院系有多个人,但是单个人只能属于一个:例一个院系有多个人,但是单个人只能属于一个院系,那么院系和人的学号之间的关系是一对多的。院系,那么院系和人的学号之间的关系是一对多的。3 3、M MN N:一个课程号对应于多个学号,一个学号对应于多:一个课程号对应于多个学号,一个学号

14、对应于多个课程号,这两个属性之间是多对多的联系。个课程号,这两个属性之间是多对多的联系。炸沥翰坝晴丽怎垛曳檄破腕熄弗甘翌穿球腿说箩趴蔫谷艰背父耙阶贡做集关系数据库设计理论关系数据库设计理论二、函数依赖的定义二、函数依赖的定义定义:设有关系模式定义:设有关系模式R(U)R(U),X X和和Y Y是属性集是属性集U U的子集,的子集,r r是是R R上的任一具体关系,上的任一具体关系,u u和和v v是是r r中的任意两个元组。如果由中的任意两个元组。如果由uX=vXuX=vX能推导出能推导出uY=vYuY=vY,则称,则称X X函数决定函数决定Y Y,或,或Y Y函函数依赖于数依赖于X X,记为

15、,记为淤项技稚普黍胰荆央退肋闰肠陌沸寡九流灼场匈舌黔树复讲蛤投昨凸侮亥关系数据库设计理论关系数据库设计理论例:有一个学习模式例:有一个学习模式 R(S#,SNAME,C#,GRADE,TNAME,TAGE) R(S#,SNAME,C#,GRADE,TNAME,TAGE)现在规定,每个学号只对应一个具体学生,每个课程号只现在规定,每个学号只对应一个具体学生,每个课程号只由一个教师来教,写出函数依赖。由一个教师来教,写出函数依赖。GRADE)C#,(S#-TNAMEC#-SNAMES# -籍耐浊睬随薯兵胡抠贮鼎夹纱驭孙梗截舅沙贞而锰给阀孰影鸦痈瑶殃宁万关系数据库设计理论关系数据库设计理论三、三、属

16、性间的联系和函数依赖属性间的联系和函数依赖属性间的联系有三种,但并不是每一种关系中都存在函数属性间的联系有三种,但并不是每一种关系中都存在函数依赖,设有属性集依赖,设有属性集X X、Y Y属于关系模式属于关系模式R R, 如果如果X X和和Y Y之间是之间是1 11 1关系,则存在函数依赖:关系,则存在函数依赖:能率祈疾拾蟹起讳榜吏支阀太溶警喊粉肿络蔑免倪螺塔太无邱允疗吞粪醒关系数据库设计理论关系数据库设计理论如果如果X X和和Y Y之间是之间是1 1M M关系,则存在函数依赖:关系,则存在函数依赖:如果如果X X和和Y Y之间是之间是N NM M关系,则:关系,则:X X和和Y Y之间不存在

17、函数依赖之间不存在函数依赖愚产鱼构局栏埔铅淋展扣评萄掸挨伸育雾清逮倚唬吝喻嗅闭驮岛充姑票嚎关系数据库设计理论关系数据库设计理论例:如果人名唯一的话,那么一个人名对应一个学号,则有例:如果人名唯一的话,那么一个人名对应一个学号,则有例:院系和学号之间的联系是一对多的,那么存在的例:院系和学号之间的联系是一对多的,那么存在的FDFD为为在咀完裸镍荔皆鹰傻嚎癌绷蚁万面玲狐达冀盯妇鳖倒沼殉土憎碱啤透辟戈关系数据库设计理论关系数据库设计理论四、四、FDFD的逻辑蕴涵的逻辑蕴涵定义:设定义:设F F是在关系模式是在关系模式R R上成立的函数依赖集,上成立的函数依赖集, 是一个是一个FDFD。如果对于。如果

18、对于R R的每个满足的每个满足F F的关系也满足的关系也满足 , ,则称则称F F逻辑蕴涵逻辑蕴涵 ,记为,记为定义:被定义:被F F逻辑蕴涵的函数依赖的全体构成的集合,称为逻辑蕴涵的函数依赖的全体构成的集合,称为函数依赖集的闭包,记为函数依赖集的闭包,记为F F+ +。娩嚷隶屠哺粹倍肛懦奔癌侠驶患器舟彻既韶撮疗晦雄峡挟恬气吻栈摊嗡苇关系数据库设计理论关系数据库设计理论五、五、FDFD的推理规则的推理规则从已知的从已知的FDFD集推导未知的集推导未知的FDFD,可以使用的推导规则,可以使用的推导规则(ArmstrongArmstrong)设有关系模式设有关系模式R R(U U),),X X、Y

19、 Y、Z Z是是U U的子集:的子集:A1(A1(自反性自反性) ):如果:如果 ,则有,则有 在在R R上成立。上成立。A2(A2(增广性增广性) ):如果:如果 在在R R上成立,那么有上成立,那么有A3(A3(传递性传递性) ):如果:如果 在在R R上成立,则有上成立,则有 幌顷躁整澈掩犀膜铭蒙斧舶闽寐御剥莎靠啊愧锋位嘲阮芜暑掷园郎弧钾伯关系数据库设计理论关系数据库设计理论证明证明ArmstrongArmstrong公理,用公理,用FDFD定义:定义:A1A1:设:设u,vu,v是是r r中的任意两个元组,如果中的任意两个元组,如果uX=vXuX=vX,则,则u,vu,v中的中的X X

20、的任意子集也必然相等,由条件中的任意子集也必然相等,由条件中uY=vYuY=vY,根据,根据函数依赖的定义,可以得到函数依赖的定义,可以得到吼踪统跋磐雇疥部晦嵌槐奔沟载倘藤售胺俘匙杀晃乘熊军剔梆药嗅姥簧汐关系数据库设计理论关系数据库设计理论A2A2:设:设u,vu,v是是r r中的任意两个元组,设中的任意两个元组,设uXZ=vXZuXZ=vXZ,即,即uXuZ=vXvZuXuZ=vXvZ,则,则uX=vX,uZ=vZuX=vX,uZ=vZ,由条件,由条件根据函数依赖定义有根据函数依赖定义有uY=vY,uY=vY,则则uYZ=uYuZ=uYZ=uYuZ=vYvZ=vYZvYvZ=vYZ这样在这样

21、在uXZ=vXZuXZ=vXZ的基础上推出了的基础上推出了uYZ=vYZuYZ=vYZ,得证。,得证。屋襄晤到脾谦诱戈篮规苔秋西列侵坏勘趟施矣亚楚虹父蜜矗筏冷丙竹寇汀关系数据库设计理论关系数据库设计理论A3A3:设:设u,vu,v是是r r中的任意两个元组,对于中的任意两个元组,对于uX=vXuX=vX,因为因为 ,则有,则有uY=vYuY=vY,又因为,又因为 则根据定则根据定义可以得出义可以得出uZ=vZuZ=vZ,因此得到,因此得到吐蹄宴纯棱越众脾滩苞鹿奥牺棱怠挡狮忽跋梨碾刃但蜕砾荡汝盘矫振饺菲关系数据库设计理论关系数据库设计理论例题:已知关系例题:已知关系R(X,Y,Z)R(X,Y,Z

22、)以及其上的函数依赖集以及其上的函数依赖集F F,求,求F F+ +。其婶睫状匣吝裳惯过徊银启澎寝圃括鹊掌民崇征晾紧秧祷攘怠袍垫皆沉识关系数据库设计理论关系数据库设计理论FDFD的分类:的分类:1 1、对于、对于FDFD: ,如果,如果 ,则称为,则称为“平凡的平凡的FDFD”2 2、对于、对于FDFD: ,如果,如果 ,则称为,则称为“非平凡的非平凡的FDFD”3 3、对于、对于FDFD: ,如果,如果 则为则为“完全非平凡的完全非平凡的FDFD”ArmstrongArmstrong的推论:的推论:1 1、合并规则:、合并规则:2 2、分解规则:、分解规则:3 3、伪传递规则:、伪传递规则:

23、颐踩祁放釉郭姆妻骤幕咋重丝烘脑寿撼曼星箍车磷呜戴封凭涯豁捞透剖伊关系数据库设计理论关系数据库设计理论合并规则:合并规则:逸司巫阎牟峰让血咐祁桌昔赞坡她屋姜态皂第隐限氛筏邵捕鹰狙与阔巴佑关系数据库设计理论关系数据库设计理论分解规则:分解规则:劣垦抒放幅铸偏寺乱挺找渭统公溃扰垂皋夺亏吝柄撑臻偿饰惋泅烯贤篓庄关系数据库设计理论关系数据库设计理论伪传递规则:伪传递规则:街揖鹰逢鹅珊秒噶雇懊楷珊示咬增铝梭妊能应殷靳缚窿邮羹槽洗载首帆腋关系数据库设计理论关系数据库设计理论* * 用函数依赖定义键用函数依赖定义键 超键:能唯一标识元组的属性集称为关系模式的超键。超键:能唯一标识元组的属性集称为关系模式的超键

24、。 候选键:如果一个属性集能唯一标识元组,且不含有多候选键:如果一个属性集能唯一标识元组,且不含有多 余的属性,那么这个属性集成为候选键。余的属性,那么这个属性集成为候选键。定义:如果关系模式定义:如果关系模式R R的属性集为的属性集为A1,A2,A1,A2,AnAn,F F是是R R上成立上成立的一个的一个FDFD集,集,X X是是A1,A2,A1,A2,AnAn的一个子集,如果的一个子集,如果X XA1,A2,A1,A2,AnAn在在F F+ +中,那么称中,那么称X X是是R R的一个超键。如果的一个超键。如果X XA1,A2,A1,A2,AnAn在在F F+ +中,且对于中,且对于X

25、X的任何一个真子集的任何一个真子集X1X1, X1 X1A1,A2,A1,A2,AnAn在都不在在都不在F F+ +中,则称中,则称X X是是R R的一个候选键。的一个候选键。净勤夺汹塞男香怖域吠颂害城区谆益皑趋添写融揩椿赖啪司涨启坝蔫初山关系数据库设计理论关系数据库设计理论属性集的闭包属性集的闭包定义:设定义:设F F是属性集是属性集U U上的上的FDFD集,集,X X是是U U的子集,那么属性集的子集,那么属性集X X的闭包的闭包X X+ +,它是一个从,它是一个从F F集使用集使用FDFD推导规则推出的所有满推导规则推出的所有满足足X XAA的属性集的属性集A A的集合:的集合:抽娩串颧

26、颤舀嘲猪酌肋日匈你圆鸡翠专袄镶衬疼胡莆叙倾吴名擞瞩啡股牺关系数据库设计理论关系数据库设计理论定理:定理:X XYY能用能用FDFD推理规则推出的充分必要条件是推理规则推出的充分必要条件是证明:证明:( (充分性充分性) )根据根据 ,设,设Y=A1,A2,Y=A1,A2,An,An。由属性集。由属性集闭包定义可知:闭包定义可知:X XAiAi在在F F+ +中。再根据合并规则,中。再根据合并规则,X XA1,A1,A2,A2,An ,An 即即X XYY。( (必要性必要性) )由由X XYY,根据分解规则,根据分解规则,X XAiAi,根据属性集闭,根据属性集闭包定义可得包定义可得 ,所以,

27、所以 ,即,即噎楚帝凹虎铸获堡应琴蝗耿课爵泥岛液慈款厅送劳般公询谋驯躺渊沁弓馅关系数据库设计理论关系数据库设计理论* *用属性集的闭包来定义候选键用属性集的闭包来定义候选键定义:如果关系模式定义:如果关系模式R R的属性集为的属性集为U U,F F是是R R上成立的一个上成立的一个FDFD集,集,X X是是U U的一个子集,如果的一个子集,如果X X的属性集的闭包的属性集的闭包X X+ + =U,=U,则则称称X X为为R R的一个超键,如果对于的一个超键,如果对于X X的任何一个真子集的任何一个真子集Y Y,有有Y Y+ +UU。则。则X X为为R R的一个候选键。的一个候选键。裔担诬狮聚皂

28、拌班构甭饵玲凄慕袱淘穗染堑镜盟械呼喇谗例橙卖菏篓绰铱关系数据库设计理论关系数据库设计理论算法:求属性集算法:求属性集X X关于关于FDFD集集F F的闭包的闭包X X+输入输入:属性集:属性集U U,U U上的上的FDFD集集F F,X X是是U U的子集的子集输出输出:X X关于关于F F的闭包的闭包X X方法:方法: Result:=X; Result:=X; repeat repeat for F for F 中的每个中的每个FD YFD YZ doZ do if then Result:=Result U Z; if then Result:=Result U Z; until (re

29、sult until (result 没有改变没有改变) ); Result Result 即为所求的即为所求的X X+ +用炊垛常宇毅兜拎好菇孺潞姐伯位串窍减尾茁雅澈畦停半宴凑税择铀生痕关系数据库设计理论关系数据库设计理论例:属性集例:属性集U U为为ABCDABCD,FDFD集为集为 , ,求求A A+ +,AD,AD+ + A A+ + (1) Result=A (1) Result=A (2) Result=A (2) Result=A U U B =AB B =AB (3) Result=AB (3) Result=AB U U C =ABC C =ABCADAD+ + = ABCD

30、 = ABCD啼脆杂鸳攫露刹讨祝蝶侣挨席昨辉腕赐骑圣滴予炕程匿悼沦芯睹抬隅毗晤关系数据库设计理论关系数据库设计理论例题:例题:求求BDBD+ +池幢审曾暂斥足挚珊嘻钞察疾底赌挣籽废纠彻酪吮雇葵凑春胳旺沤宜屠窝关系数据库设计理论关系数据库设计理论1) result=BD, AB1) result=BD, AB不含于不含于resultresult,result=BDresult=BD2) result=BD2) result=BD,D D包含于包含于result,result =BD result,result =BD U U EG=BDEG EG=BDEG3) result=BDEG3) res

31、ult=BDEG,C C不含于不含于result,result=BDEGresult,result=BDEG4) result=BDEG4) result=BDEG,BEBE包含于包含于result,result =BDEG result,result =BDEG U U C=BCDEG C=BCDEG5) result=BCDEG,BC5) result=BCDEG,BC包含于包含于result,result=BCDEG result,result=BCDEG U U D=BCDEG D=BCDEG6) result=BCDEG,CG6) result=BCDEG,CG包含于包含于resul

32、t,result=BCDEG result,result=BCDEG U U BD=BCDEGBD=BCDEG7) result=BCDEG,ACD7) result=BCDEG,ACD不含于不含于result,result=BCDEGresult,result=BCDEG8) result=BCDEG,CE 8) result=BCDEG,CE 含于含于result,result=BCDEGresult,result=BCDEGU UAG=ABCDEGAG=ABCDEG滩躺铺纸沸圃麦骑媳沦贿瞬卸榨萝抹伪楼晰枯请炽撼眠停烧野攻难衫镍言关系数据库设计理论关系数据库设计理论* 快速求解候选键的充分

33、条件快速求解候选键的充分条件对于给定的关系模式对于给定的关系模式R=(A1,A2,R=(A1,A2,An),An)和函数依赖集和函数依赖集F F,可将其属性分为四类:可将其属性分为四类:1 1、仅仅出现在、仅仅出现在F F的函数依赖左部的属性的函数依赖左部的属性L L类;类;2 2、仅仅出现在、仅仅出现在F F的函数依赖右部的属性的函数依赖右部的属性R R类;类;3 3、在、在F F的函数依赖的左右两边都没有出现的属性的函数依赖的左右两边都没有出现的属性N N类;类;4 4、在、在F F的函数依赖的左右两边都出现的属性的函数依赖的左右两边都出现的属性LRLR类;类;资匣姥拆项拔汽遮突际做肛杖殴

34、溅缔钟剃赖旱朱膝电糜脾确绕疲撼近猪腻关系数据库设计理论关系数据库设计理论定理:对于给定关系模式定理:对于给定关系模式R R及其函数依赖集及其函数依赖集F(F(不包含平凡不包含平凡FD)FD)1) X1) X是是L L类属性,则类属性,则X X必为必为R R的任何一个候选键的成员。的任何一个候选键的成员。2) X2) X是是R R类属性,则类属性,则X X不包含在任何候选键中。不包含在任何候选键中。3) X3) X是是R R的的N N类属性,则类属性,则X X也必为也必为R R的任何一个候选键的成员。的任何一个候选键的成员。4) X4) X是是R R的的LRLR类属性,则类属性,则X X可能是也

35、可能不是候选键的成员。可能是也可能不是候选键的成员。嗣扭汞感癌卤繁敛铡司卖闭肘拇蛹汞沪娟甘蝗些褂张雪童秉荡红烬苍绳射关系数据库设计理论关系数据库设计理论1) 1) 反证法:设反证法:设W W为为R R的任一候选键,的任一候选键,X X不是不是W W的成员。由于的成员。由于X X仅仅出现在仅仅出现在F F的函数依赖左部,所以的函数依赖左部,所以R R中没有其它属性能中没有其它属性能够函数决定够函数决定X X,这样,这样W W+ +中就不可能包含中就不可能包含X X,这样就与,这样就与W W是是R R的的候选键相矛盾。所以候选键相矛盾。所以X X必然是候选键必然是候选键W W的成员。的成员。(X

36、X为为L L类的情况)类的情况)芽蝇朽中毯寐氏勺咽落汉暴显练跨项卵速匿骇芬厚迢叼疚坛碰轮混胶瑰蝶关系数据库设计理论关系数据库设计理论2) 2) 反证法:设反证法:设W W是是R R的任一候选键,的任一候选键,X X不是不是W W的成员。由于的成员。由于X X没有出现在没有出现在F F中,那么中,那么R R中没有其它属性能够函数决定中没有其它属性能够函数决定X X。这样这样W W+ +中就不可能包含中就不可能包含X X,这与,这与W W是是R R的候选键相矛盾。所以的候选键相矛盾。所以X X必然是候选键必然是候选键W W的成员。的成员。(X X是是N N类的情况)类的情况)眠赢息铂杜佩鞍倔镭郁必

37、徽铂笺傀淹澜骏啊崩雷爱垮骗了逸逊怎纠赤堂捅关系数据库设计理论关系数据库设计理论例:设有关系模式例:设有关系模式R(A,B,C,D)R(A,B,C,D),其函数依赖集,其函数依赖集F F如下,如下,求求R R的候选键。的候选键。传统步骤:传统步骤:1 1、分别求、分别求A/B/C/D/AB/AC/AD/BC/BD/CDA/B/C/D/AB/AC/AD/BC/BD/CD ABC/ABD/ACD/BCD/ABCD ABC/ABD/ACD/BCD/ABCD的属性集的的属性集的 闭包。闭包。 2 2、根据候选键定义找出候选键。、根据候选键定义找出候选键。纽姐峡移耪锰漂犊撇圾闯砂客肃阅去佯强鲤姜峭郴嗡降堕

38、匆踌擦蜡季刹帽关系数据库设计理论关系数据库设计理论快速步骤:快速步骤:1 1、L L类类L L类类:A,C :A,C LR LR类类: B,D : B,D (AC) (AC)+ +=ABCD=ABCD 所以所以ACAC是关系模式是关系模式R R的唯一候选键。的唯一候选键。丈蠕起藻巡睫戳励堤漠哗证细愿模缕左究眼示夷琐虑恭团恫柿语仑跃锗疙关系数据库设计理论关系数据库设计理论求解候选键的步骤求解候选键的步骤1 1、根据关系模式上成立的、根据关系模式上成立的FDFD集确定属性的类型。集确定属性的类型。2 2、根据属性类型求属性集的闭包。、根据属性类型求属性集的闭包。3 3、满足候选键定义条件的即为所求

39、的候选键。注意有些、满足候选键定义条件的即为所求的候选键。注意有些情况下候选键不是唯一的。情况下候选键不是唯一的。往什专囱谐货捆婆帮铆夜洼毖曳死勘扼兑挺侈晦客猖寥坝吉定痔福段跪型关系数据库设计理论关系数据库设计理论例:设有关系模式例:设有关系模式R(A,B,C,D)R(A,B,C,D),F F是是R R上成立的上成立的FDFD集,试写集,试写出出R R的所有候选键。的所有候选键。解答:分析解答:分析R R的属性类型:的属性类型: 求解属性集闭包:求解属性集闭包:蝎鸵鹰生物页庸扦呈赴被癌糟间载燎仰竖忽披用嚼歌蛆连离赊劣摧缺网北关系数据库设计理论关系数据库设计理论* *练习练习1 1、给定关系模式

40、、给定关系模式R (ABCDEG)R (ABCDEG),R R上成立的上成立的FDFD集集求求D D+ +,C,C+ +,A,A+ +,CD,CD+ +,AD,AD+ +,AC,AC+ +,ACD,ACD+ +求出求出R R的所有候选键的所有候选键解:解: D D(DG) C(DG) C+ +=(ABC) A=(ABC) A+ + =(AB) =(AB) (AD) (AD)+ +=(ABDG) (AC)=(ABDG) (AC)+ +=(ABC) (ACD)=(ABC) (ACD)+ +=(ABCDEG)=(ABCDEG)首先确定关系首先确定关系R R的属性类型的属性类型 L L类类:C,D C

41、,D ;LRLR类类:A A ;R R类类:B,E,GB,E,G(CD)(CD)+=(ABCDEG)=(ABCDEG),所以,所以R R的候选键是的候选键是CDCD。朗钧溶伟怨哼粥爷茨魂奋伪卢眼宦果及躁累诫椒优筷巧翁擦晒祖吮孟席釉关系数据库设计理论关系数据库设计理论2 2、设关系模式、设关系模式R(ABCD)R(ABCD)上的函数依赖集为上的函数依赖集为F F,并且,并且 求求R R的所有候选键。的所有候选键。 求求R R的所有不是候选键的超键。的所有不是候选键的超键。 L L类类:B B ;LRLR类类:A,C,DA,C,D (B) (B)+=(B)=(B),(AB)(AB)+=(ABCD)

42、=(ABCD); (BC) (BC)+=(ABCD)=(ABCD);(BD)(BD)+=(ABCD)=(ABCD)所有不是候选键的超键所有不是候选键的超键 ABC, ABD, BCD, ABCD ABC, ABD, BCD, ABCD敖诫桐蜗蔽龙湍厢湃扬剪讥樊炊叼俺玖京岭酸陶集绚本快帜讥弓旨融仔敬关系数据库设计理论关系数据库设计理论v 规范化规范化 关系必须是规范化的。通常按属性间依赖情况,来区关系必须是规范化的。通常按属性间依赖情况,来区分关系规范化的程度为第一范式,第二范式,第三范式等。分关系规范化的程度为第一范式,第二范式,第三范式等。术语和记号:术语和记号:Y Y枚瞧扳圭童寸前府措丫榆

43、泳捶串阀瘫藩速淋尖拼僧韵澎餐某衰拣交婚仟七关系数据库设计理论关系数据库设计理论定义:在关系定义:在关系R(U)R(U)中,如果中,如果 ,并且对于,并且对于X X的任何一个的任何一个真子集真子集X X都有都有 ,则称,则称Y Y对对X X完全函数依赖。完全函数依赖。定义:如果定义:如果 ,但,但Y Y不完全函数依赖于不完全函数依赖于X X,则称,则称Y Y对对X X部部分函数依赖。分函数依赖。定义:在定义:在R(U)R(U)中,如果中,如果 , , ,则,则称称Z Z对对X X传递函数依赖。传递函数依赖。定义:包含在任何一个候选键中的属性,叫做定义:包含在任何一个候选键中的属性,叫做主属性主属

44、性。不包。不包含在任何候选键中的属性称为含在任何候选键中的属性称为非主属性非主属性。X X Y YY XY X蛮葡泌颂卯吾足口司层菩铆项罕揭刺牲它咋继悉陶卉邑俞彻彬锄氯踢狙贷关系数据库设计理论关系数据库设计理论 范式范式 关系数据库中的关系是要满足一定的要求的。满足不关系数据库中的关系是要满足一定的要求的。满足不同的要求称为不同的范式。满足最低要求的称为第一范式,同的要求称为不同的范式。满足最低要求的称为第一范式,简称简称1NF1NF。在第一范式中满足进一步的要求的称为第二范。在第一范式中满足进一步的要求的称为第二范式,其余以此类推。式,其余以此类推。 对于各种范式之间的联系有:对于各种范式之

45、间的联系有:对某一关系模式对某一关系模式R R,它属于第几范式,记为,它属于第几范式,记为敖保踩受摆砸续旬诌晦榴灵益难捷垂早毗秋盘八呵罩涤普酸固陌液稻辕宦关系数据库设计理论关系数据库设计理论1NF1NF定义:如果一个关系模式定义:如果一个关系模式R R的每个具体关系的每个具体关系r r的每个的每个属性值都是不可再分的最小数据单位,称属性值都是不可再分的最小数据单位,称R R满足满足1NF1NF,r r为为1NF1NF关系。关系。1NF倪圈狂飘殿绳牵丫屈贞秩笔姑稻硕岂饿曰诈典滓魄醒丘溜跳赶括杀肖谈脉关系数据库设计理论关系数据库设计理论2NF定义:若定义:若 ,且,且R R的每一个非主属性完全函数

46、依的每一个非主属性完全函数依赖于任一候选键,称赖于任一候选键,称R R是满足第二范式的关系模式。是满足第二范式的关系模式。例:设有关系模式例:设有关系模式SLC(Sno, Dept, Dom, Cno, Grade)SLC(Sno, Dept, Dom, Cno, Grade)其中其中DomDom为宿舍楼,并规定一个系的同学住在同一栋楼。为宿舍楼,并规定一个系的同学住在同一栋楼。写出关系模式中存在的函数依赖,求候选键。判定该关写出关系模式中存在的函数依赖,求候选键。判定该关系模式是否是系模式是否是2NF2NF。宏厌丛拘训掀亿蠕匣茵能蔬念书邯足摧单唆条么除獭涪篇故抠寇弹方迂规关系数据库设计理论关

47、系数据库设计理论解:存在的函数依赖有:解:存在的函数依赖有:L L类:类:Sno,Cno Sno,Cno ;LRLR类:类:Dept Dept ;R R类:类:Dom,GradeDom,Grade而且而且(Sno,Cno)(Sno,Cno)+ +=(Sno,Cno,Dept,Dom,Grade)=(Sno,Cno,Dept,Dom,Grade),所以所以Sno,CnoSno,Cno为候选键。为候选键。袱欢伦濒泣窘胚中溶副艺鞠貉砸倘尊至梧听劈猜尤供程膏斯睛舆遂助市樊关系数据库设计理论关系数据库设计理论主属性主属性:Sno, CnoSno, Cno非主属性非主属性:Dept, Dom, Grade

48、Dept, Dom, Grade因为因为 所以所以DomDom和和DeptDept都不完全函都不完全函数依赖于候选键数依赖于候选键(Sno,Cno)(Sno,Cno),所以,所以R R不满足不满足2NF2NF定义,最高定义,最高只达到只达到1NF1NF。治匠院羡撤葱所函了激湾啮陋蚌百颊舵羚昔气缨翻彰租彭拇樊婪秩天惑任关系数据库设计理论关系数据库设计理论*那么不满足那么不满足2NF2NF的关系模式可能产生的问题:的关系模式可能产生的问题:1 1、插入异常:如果某学生未选课,该学生的信息记录就不、插入异常:如果某学生未选课,该学生的信息记录就不能被创建,因为缺少主键的能被创建,因为缺少主键的Cno

49、Cno这一部分值。这一部分值。2 2、删除异常:如果某个要删除某个学生的选课信息,必然、删除异常:如果某个要删除某个学生的选课信息,必然会将其固有信息即院系和宿舍楼信息删除,造成删除异常。会将其固有信息即院系和宿舍楼信息删除,造成删除异常。3 3、修改复杂。假如某个学生需要转系,本只需要修改、修改复杂。假如某个学生需要转系,本只需要修改DeptDept分量的值,但由于分量的值,但由于DomDom值依赖于值依赖于DeptDept,所以,所以DomDom的值也要修的值也要修改,而且该学生选多少们课就要修改多少条记录。改,而且该学生选多少们课就要修改多少条记录。4 4、存储冗余,对每一次的选课都要存

50、储学生其他信息。、存储冗余,对每一次的选课都要存储学生其他信息。照靳难坑云颠婆知春境唱浚匠狭剁省骡概堡耿例缄租俗论恕娜李方冉庭警关系数据库设计理论关系数据库设计理论将上述模式分解为:将上述模式分解为:SC(Sno, Cno, Grade)SC(Sno, Cno, Grade) SD(Sno, Dept, Dom) SD(Sno, Dept, Dom)SnoSnoCnoCnoGradeGradeDeptDeptDomDomSnoSnoSCSC中的中的FDFDSDSD中的中的FDFD彤格分波甭为县必拇诱草盲慌告流荒券瘪棚矿瀑织山白虎弦鹅畅杀旗究尸关系数据库设计理论关系数据库设计理论分解为满足分解为

51、满足2NF2NF的多个关系模式后,得到的新的关系模式的多个关系模式后,得到的新的关系模式如果不满足如果不满足3NF3NF,仍然可能存在问题,:,仍然可能存在问题,:这里分解得到的这里分解得到的SDSD中存在下列问题中存在下列问题1 1、数据有冗余:每个系的学生都住在同一个地方,但是、数据有冗余:每个系的学生都住在同一个地方,但是系的信息将会重复出现,重复次数相当于学生的人数。系的信息将会重复出现,重复次数相当于学生的人数。2 2、插入异常:如果某个系刚刚成立,还未有学生注册,、插入异常:如果某个系刚刚成立,还未有学生注册,那么该系的信息无法插入该系的信息入库。那么该系的信息无法插入该系的信息入

52、库。才幂瓢侧小咨肆傀拒虑甸鬼产嘎贺亩诊掣心鲍肢坍雄澜沃铃腋谆多期帚蓝关系数据库设计理论关系数据库设计理论3 3、删除异常:如果某个系的学生都毕业了,在删除该系的、删除异常:如果某个系的学生都毕业了,在删除该系的学生信息的时候,会将该系的信息删除掉。学生信息的时候,会将该系的信息删除掉。4 4、修改复杂:当学校调整学生宿舍时,把外语系的学生全、修改复杂:当学校调整学生宿舍时,把外语系的学生全部迁到另外一栋楼,那么需要修改的记录是该系的所有学生部迁到另外一栋楼,那么需要修改的记录是该系的所有学生因此满足因此满足2NF2NF的关系模式在某些情况下仍然不是最好的。的关系模式在某些情况下仍然不是最好的。

53、描酿寒俘嚷垄波兹碰氢鹅锯央钞腥蹈涛圣凑避刻囱淆龚谁播翠册宽疤菠恫关系数据库设计理论关系数据库设计理论3NF定义:关系模式定义:关系模式R(U)R(U)满足满足2NF2NF,且它的任何一个非主属性都,且它的任何一个非主属性都不传递依赖于任何候选键,则称不传递依赖于任何候选键,则称R R为满足为满足3NF3NF的关系模式。的关系模式。上述的上述的SCSC中没有第三方属性,所以不存在传递函数依赖,中没有第三方属性,所以不存在传递函数依赖,但是在但是在SDSD中,中,DomDom通过通过DeptDept传递函数依赖于传递函数依赖于SnoSno,所以,所以SCSC满满足足3NF3NF,而,而SDSD不满

54、足不满足3NF3NF。复甲龙烬寅会笋择啤锣惊谍傈始咆锹圾钾兽叔楔钒滥霸辕豫葡血忱端迹梁关系数据库设计理论关系数据库设计理论, ,Dom SnoDom Sno解决方法:分解解决方法:分解SDSD为以下两个为以下两个 SD(Sno, Dept) SD(Sno, Dept) DD(Dept, Dom) DD(Dept, Dom)分解以后的两个关系模式都满足分解以后的两个关系模式都满足3NF3NF。岿犁啪扶炬踊喳疲知科艘响吹牧贸灵肾衔赘柏筑祟仍番委贸丧丘蒂煽叙涟关系数据库设计理论关系数据库设计理论一个满足一个满足3NF3NF的关系模式也不一定是最好的,例如在关系的关系模式也不一定是最好的,例如在关系模

55、式模式STJ( S,T,J )STJ( S,T,J )中,中,S S表示学生,表示学生,T T表示教师,表示教师,J J表示课表示课程。假设每一个教师只教一门课。但是每门课由若干教师程。假设每一个教师只教一门课。但是每门课由若干教师教,某一学生选定某门课,就确定了一个固定的教师,于教,某一学生选定某门课,就确定了一个固定的教师,于是存在的函数依赖如下是存在的函数依赖如下: :吉伞定便措菱邀氛迸瓶潭促践侥揉檄埔男圆轴搓绸弱氨括蝗韩篓驻说瓦橙关系数据库设计理论关系数据库设计理论根据函数依赖可以求出该根据函数依赖可以求出该STJSTJ的候选键为的候选键为(S,J)(S,J)或者或者(S,T)(S,T

56、),此时的关系模式中的所有属性是主属性,则关系模式满足此时的关系模式中的所有属性是主属性,则关系模式满足3NF3NF。但是该关系模式在有时仍然存在一些问题:。但是该关系模式在有时仍然存在一些问题:1 1、插入异常插入异常:如果某个老师开设了某门课,但是没人选,:如果某个老师开设了某门课,但是没人选,则有关信息无法存入数据库。则有关信息无法存入数据库。2 2、删除异常删除异常:选了某门课程的学生全部毕业,该信息丢失:选了某门课程的学生全部毕业,该信息丢失3 3、数据冗余大数据冗余大:老师信息根据选课的学生人数要存储多次:老师信息根据选课的学生人数要存储多次4 4、修改复杂修改复杂:教师所授课程改

57、名后,所有选该课的记录都:教师所授课程改名后,所有选该课的记录都要改。要改。凹稻锣绅留给岛浊瞻钟棵沂采朋腻帐诉铱吾替了酌右珍哺蛔淘避菱梗甸姐关系数据库设计理论关系数据库设计理论BCNF定义:关系模式定义:关系模式 ,F F是关系模式是关系模式R R的函数依赖的函数依赖集,如果集,如果F F中所有函数依赖的左部都包含了中所有函数依赖的左部都包含了R R的任何一个候的任何一个候选键,称选键,称R R是满足是满足Boyce-CoddBoyce-Codd范式,记为范式,记为BCNFBCNF。即每一个。即每一个决定因素都包含候选键。决定因素都包含候选键。贞雇擂斯恋戴客圃庙泄旅童啥应菱沁春莲煌计脾迪连果碘

58、爬吱褐波巡污戌关系数据库设计理论关系数据库设计理论定理:一个定理:一个BCNFBCNF范式必是范式必是3NF3NF。证明证明:反证法。设:反证法。设R R是一个是一个BCNFBCNF但不是但不是3NF3NF。则必存在非主。则必存在非主属性属性A A候选键候选键X X以及属性集以及属性集Y Y,使得,使得X XY,YY,YA,A,且且 , ,那么那么Y Y不可能包含不可能包含R R的候选键的候选键X X 。因为如果。因为如果X X包含于包含于Y Y中,根中,根据自反性,可得据自反性,可得Y YXX。但是由于。但是由于Y Y在这里是决定因素,根在这里是决定因素,根据定义这里的条件据定义这里的条件R

59、 R就不是就不是BCNFBCNF。这和假设相矛盾,从而。这和假设相矛盾,从而定理得证。但是满足定理得证。但是满足3NF3NF不一定满足不一定满足BCNFBCNF。Y XY X仁鞋笔耿那松狗萄左枣陡胎绑驳涩生菲隐棘这烈延宽巾究葛台敲丸串浚颗关系数据库设计理论关系数据库设计理论练习练习1 1、设有关系模式、设有关系模式R(X,Y,Z)R(X,Y,Z),其上的函数依赖集如下,判定,其上的函数依赖集如下,判定R R最高满足第几范式。最高满足第几范式。解:首先根据函数依赖求候选键:解:首先根据函数依赖求候选键: L L类:类:X X;LRLR类:类:Y,ZY,Z; 且且(XY)(XY)+ +=(XYZ)

60、 ,(XZ)=(XYZ) ,(XZ)+ +=(XYZ)=(XYZ),所以所以R R的候选键为的候选键为XYXY和和XZXZ。没有非主属性,所以。没有非主属性,所以R R满足满足3NF3NF,但但R R不是不是BCNFBCNF,因为决定因素,因为决定因素Y Y中不包含候选键。中不包含候选键。湘癸夸夫壮慧腊食鸥医躁公邢赫半既妒无切凛道倚宵照歹犬锭隆沫濒凛汛关系数据库设计理论关系数据库设计理论2 2、判断下列说法是否正确:、判断下列说法是否正确:(1 1)任何一个包含两个属性的关系模式一定满足)任何一个包含两个属性的关系模式一定满足3NF3NF。(2 2)任何一个包含两个属性的关系模式一定满足)任何

61、一个包含两个属性的关系模式一定满足BCNFBCNF。(3 3)任何一个包含三个属性的关系模式一定满足)任何一个包含三个属性的关系模式一定满足3NF3NF。(4 4)任何一个关系模式一定有键。)任何一个关系模式一定有键。则慢馈趣械蹲藻硷陪卢钒酣昼邓迷废棉洒名氮恢晋怎酬谐芥峰版扰斑冶乒关系数据库设计理论关系数据库设计理论解答解答:设有二元关系设有二元关系R(X,Y)R(X,Y),则,则X X和和Y Y之间的函数依赖可能如下:之间的函数依赖可能如下:1) , ,1) , ,则关系模式的候选键为则关系模式的候选键为X X。没有第三方。没有第三方属性传递函数依赖,所以属性传递函数依赖,所以R R满足满足

62、3NF3NF,而且决定因素包含候,而且决定因素包含候选键,选键,R R满足满足BCNFBCNF。2) ,2) ,则关系模式的候选键为则关系模式的候选键为X X和和Y Y。没有第三。没有第三方属性传递函数依赖,而且决定因素包含候选键,方属性传递函数依赖,而且决定因素包含候选键,R R满足满足BCNFBCNF。Y XY X班澈灯截屏掩呀阀拭苫柑奸神猾瘴公唉斩许势溢娥忧钥根淄藕苍烤珊炊扫关系数据库设计理论关系数据库设计理论3)X3)X和和Y Y之间不存在函数依赖,则关系模式的候选键是之间不存在函数依赖,则关系模式的候选键是XYXY。这个时候这个时候R R也是满足也是满足BCNFBCNF,因为此时不存

63、在推翻,因为此时不存在推翻R R不是不是BCNFBCNF的条件。包含三个属性的关系模式不一定是的条件。包含三个属性的关系模式不一定是3NF3NF,如上面提,如上面提到的到的SDSD关系模式中关系模式中DomDom传递函数依赖于传递函数依赖于SnoSno。关系模式一定有键,这是关系模式的固有属性。关系模式一定有键,这是关系模式的固有属性。所以只有第三种说法不正确。所以只有第三种说法不正确。村情菌厚谭捞惶拥铸誉苗歧芭研赌卉穿童协止水辖邑忽寥棘捷让娥吸寸死关系数据库设计理论关系数据库设计理论假设某商业集团数据库有一关系模式假设某商业集团数据库有一关系模式R R如下:如下: R R(商店编号,商品编号

64、,数量,部门编号,负责人)(商店编号,商品编号,数量,部门编号,负责人)现规定现规定:1 1、每个商店的每种商品只在一个部门销售。每个商店的每种商品只在一个部门销售。 2 2、每个商店的每个部门只有一个负责人。、每个商店的每个部门只有一个负责人。 3 3、每个商店的每种商品只有一个库存数量。、每个商店的每种商品只有一个库存数量。回答下列问题:回答下列问题:1 1、写出、写出R R的基本函数依赖的基本函数依赖 2 2、找出关系模式、找出关系模式R R的候选键的候选键 3 3、关系模式、关系模式R R最高达到第几范式?为什么最高达到第几范式?为什么分析关系模式分析关系模式贞敬湾李败祭趾由跌崇脖继妹

65、胞军而滤晶弗封拔粹焦眶掷驯所洪悯吐褪楼关系数据库设计理论关系数据库设计理论分析:关系分析:关系R R存在的函数依赖有:存在的函数依赖有:媚友灶俯湍妥操炊脂挨谍貉坟强碱种宝果矿脂佃兰丰唆闲口寥韵绰骄贵西关系数据库设计理论关系数据库设计理论利用函数依赖求候选键:利用函数依赖求候选键:L L类属性:商店编号,商品编号;类属性:商店编号,商品编号;LRLR类:类: 部门编号;部门编号;R R类:类: 负责人负责人数量。而且(商店编号,商品编号)数量。而且(商店编号,商品编号)U U,所以关系模式,所以关系模式R R的候选键为(商店编号,商品编号)。的候选键为(商店编号,商品编号)。辣拧景雪掉悦汽夹逾彭

66、撩帝垫癣呸痈淄樱滇嫩始略脑瞻鳖涝晋盲兵臆碱畔关系数据库设计理论关系数据库设计理论判断判断R R属于第几范式:属于第几范式:非主属性为:部门编号,负责人,数量。它们对候选键都非主属性为:部门编号,负责人,数量。它们对候选键都是完全函数依赖关系,所以是完全函数依赖关系,所以R R是满足第二范式的。但是,是满足第二范式的。但是,所以非主属性负责人对候选键传递依赖,那么所以非主属性负责人对候选键传递依赖,那么R R不满足第不满足第三范式,因此三范式,因此R R最高满足第二范式。最高满足第二范式。稗睛步敬拂动载簇朽揍箍豫瘪壮畜硷忘篷夫虫麓厩峡邓泻演杨横涂钡及拷关系数据库设计理论关系数据库设计理论证明:证

67、明:(1)壤励备砾歉海中恒桃吭策左恬雕洋兰效纤猿乐音操贫投部秒巷果轿覆凑斥关系数据库设计理论关系数据库设计理论(2)腰阁添涎错税扰鞠钓醒扣凝杨词状录下巫梆母劈墅胆钧村泊呜即露掺塘捧关系数据库设计理论关系数据库设计理论 函数依赖集的规范覆盖函数依赖集的规范覆盖定义:关系模式定义:关系模式R(U)R(U)上的两个上的两个FDFD集集F F和和G G,如果满足,如果满足F F+ +=G=G+ +,则称则称F F和和G G是等价的。是等价的。定理:定理:F F+ +=G=G+ +的充分必要条件是的充分必要条件是即即F F和和G G等价的条件是等价的条件是酒扛汝煤空智赵宴茂焦斗懦闭措羡懦灵孺酞娇龟谐撒忽

68、烤涝盎瞳冶甫梳藐关系数据库设计理论关系数据库设计理论 函数依赖集的最小集函数依赖集的最小集如何求出给定函数依赖集如何求出给定函数依赖集F F的最小集:的最小集:1 1、逐一检查、逐一检查F F中的函数依赖,如果函数依赖的右部不是单中的函数依赖,如果函数依赖的右部不是单个属性,利用分解规则将其分解为多个函数依赖,得到新个属性,利用分解规则将其分解为多个函数依赖,得到新的函数依赖集的函数依赖集F F2 2、对于、对于F F中的每个中的每个FD:XFD:XAA,令,令G=FG=F-X-XAA,若,若则从则从F F中去掉此函数依赖,得到中去掉此函数依赖,得到F F”。3 3、对于、对于F F”中的每个

69、中的每个FD:XFD:XAA,设,设X=BX=B1 1B B2 2B Bm m,对于,对于B Bi i,如果,如果 ,用,用X XB Bi i代替代替X X。瓣直摘蹦玄懊亮黔坏牢羹栋蔽右踊手激凤炸只海停耗搜签问箕脾褥堤秆挠关系数据库设计理论关系数据库设计理论证明:经过以上步骤后所得的函数依赖集和证明:经过以上步骤后所得的函数依赖集和F F等价。等价。1 1、分解规则是、分解规则是ArmstrongArmstrong公理的推论,所以公理的推论,所以F F与与F F等价。等价。2 2、现要证明的是当、现要证明的是当 ,G G与与F F等价。等价。绞财剁反含副寒愚忻针牡痪卤弓障茬糯祟技攫诱钒纹翁韵蜀

70、沏矮剁正摩昏关系数据库设计理论关系数据库设计理论3 3、去掉、去掉F F中各函数依赖左部的多余属性。检查中各函数依赖左部的多余属性。检查F F中左部非中左部非单属性的函数依赖。例如单属性的函数依赖。例如XYXYAA,现要判断,现要判断Y Y是否为多余属是否为多余属性,即能否用性,即能否用X XAA代替代替XYXYAA(能代替的条件是(能代替的条件是 )现要证明的是当代替条件成立时,代替后所得的现要证明的是当代替条件成立时,代替后所得的G G和和F F”等价。等价。蔡丧搂叫砖扎爆脓黎故训奉纷收九硷磺淳弯梆动彝效菠蛤畦扬诊活殷篱囤关系数据库设计理论关系数据库设计理论惜受岸尖闻会俱艾能疚姓笆煤兵噎僚

71、锥随渴褒乞笆品米湘鹃肋系捕电概掩关系数据库设计理论关系数据库设计理论例例3 3:求:求F F的最小依赖集的最小依赖集1、分解函数依赖右部,这里不需要、分解函数依赖右部,这里不需要2、消除多余的函数依赖、消除多余的函数依赖蒸双盎抬让怔浦臃纤但线挚挛税缓习捌眠泼茄凹鼎惋氏觉昼哄押彰室日狭关系数据库设计理论关系数据库设计理论3、消除函数依赖左部多余属性,这里不需要、消除函数依赖左部多余属性,这里不需要氰寨泊巳亿诚啮勤胁衅迹约频筒胎蕴捻慢孕廉冈虞闪危膝糖文闭演瑞眯填关系数据库设计理论关系数据库设计理论练习:求最小依赖集练习:求最小依赖集1 1、分解各函数的右部为单个属性,得到:、分解各函数的右部为单个

72、属性,得到:塑邹临叹芜疯倒实裸擂叫汰硝倒载殊学政晶潜脚狮坊雷酌块处鲁震杂檬辣关系数据库设计理论关系数据库设计理论2 2、去掉多余的函数依赖、去掉多余的函数依赖跋渊嫁雅炊贱役障迷谎铬情氰惭鼎条姿炽玖嚎毗属脱骄匀缠鄂肢援谜强功关系数据库设计理论关系数据库设计理论娜茁欧诞畸壮广报犁儒伴通狞写毅痛呜究劈梧祸纱蚤页辞碉绦茬唆抑柳恢关系数据库设计理论关系数据库设计理论2 2、去掉函数依赖左部的多余属性、去掉函数依赖左部的多余属性硅赁姐攀佐俩匆跺蹿呈启酶炮奢闯沽权织酱移毅译阐砂铜骂扬袄徊靛初疥关系数据库设计理论关系数据库设计理论霜楼啤栗吾邱扁分资喳颓年曹迎超键晶锄米蠕椭帛喊甲子挖茁被柔昨岛熊关系数据库设计理论关系数据库设计理论

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号