数据库原理-5关系数据理论.ppt
《数据库原理-5关系数据理论.ppt》由会员分享,可在线阅读,更多相关《数据库原理-5关系数据理论.ppt(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库系统原理(第5章)第五章 关系数据理论意义:提供分析和判断数据库模式好坏的准则;指导设计好的数据库模式。地位:本章是本书最难的部分之一,但对于应用设计十分有用。5.1 问题的提出什么是不好的数据库设计我们目前为止掌握的知识尚无法解决大量的具体设计问题,即关系模式该如何选择。应用数据库应该由多少个表组成,每个表有哪些字段。本章即从理论上解决关系数据库的逻辑设计问题。一个关系模式应当是一个五元组。R(U,D,DOM,F)由于D和DOM对模式设计关系不大,因此我们在本章中把关系模式看作是一个三元组:RU,F 当且仅当U上的一个关系r满足F时,r称为关系模式RU,F的一个关系。关系,作为一张二维
2、表,我们对它有一个最起码的要求:每一个分量必须是不可分的数据项。满足了这个条件的关系模式就属于第一范式(1NF)。我们的任务是研究模式设计,研究设计一个“好”的(没有“毛病”的)关系模式的办法。数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系。它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。现在人们已经提出了许多种类型的数据依赖,其中最重要的是函数依赖(Functional Dependency简记为FD)和多值依赖(Multivalued Dependency简记为MVD)。函数依赖极为普遍地存在n例如,描述学生的关系,可以有学号(SNO),姓名(SNA
3、ME),系名(SDEPT)等几个属性。n由于一个学号只对应一个学生,一个学生只在一个系学习。因而当“学号”值确定之后,姓名和该生所在系的值也就被唯一地确定了。n上述值的确定就象数学函数:自变量x确定之后,相应的函数值f(x)也就唯一地确定。n我们说SNO函数决定SNAME和SDEPT,或者说SNAME,SDEPT函数依赖于SNO,记为SNOSNAME,SNOSDEPT。例如,前面介绍的学生选课模型,可以用一个关系模式表示:SC(Sno,Sname,Sage,Sgendar,Sdept,Cno,Cname,Grade)一个可能的关系为:95001 赵一 18 男 CS 1 C语言 8095001
4、 赵一 18 男 CS 2 数据库原理 8292002 钱二 19 男 CS 1 C语言 80可以看出,该模式存在的主要问题是冗余。冗余是不可避免的。在一定程度内也是合理的。但是,过度的冗余则会给数据库带来三类大的问题:插入异常(学生不选课,其基本信息就无法插入)删除异常(删除学生选课信息,其基本信息也被删除)修改复杂(修改某学生的基本信息,要随选课多次被修改)解决的方法n一个大关系分解为若干个小关系。n如前面的SC大关系分解为第三章的 Student,SC和Course三个小关系,即可消除三类异常。为什么小关系比大关系好呢?现在我们要讨论的就是这个问题。从上面的分解观察到:如果在一个关系模式
5、内,函数依赖形式上如果只有:码 非主属性 的形式,冗余就较小,三类异常就没有了。5.2 规范化目的n将具有不合适性质的关系转换为更合适的形式。要求n掌握函数依赖的定义及判定;n掌握1NF到BCNF的定义及判定;n了解多值依赖,理解4NF的定义。5.2.1 函数依赖(注意:现在还不能用到码的概念。)定义5.1 设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R的任何一个可能的关系r,r中不可能存在两个元组在X属性值上相等而在Y属性值上不等,则称X函数确定Y或Y函数依赖于X,记作 XY.XY,且YX,则称XY是非平凡的函数依赖。若不特别声明,我们总是讨论非平凡的函数依赖。XY,但YX 则
6、称XY是平凡的函数依赖。n全部一致,部分一致,没有太大意义。若XY,则X叫做决定因素(Determinant)。若XY,YX,则记作XY。n在这种情况下,X和Y在R(U)中地位相同。若Y不函数依赖于X,则记作X Y。定义5.3(完全函数依赖和部分函数依赖的定义)在R(U)中,如果XY,并且对X的任何一个真子集X,都有XY,则称Y对X完全函数依赖,记作:X Y定义5.4(传递函数依赖)在R(U)中,如果XY,(YX),YX,YZ,则称Z对X传递函数依赖。5.2.2 码定义5.4 设K为R中的属性或属性组,若KU,则K为R的候选码。若候选码多于一个,则选定其中一个作为主码。主属性:包含在任何候选码
7、中的属性。非主属性:不包含在任何候选码中的属性。定义5.5 (外码的定义)关系模式R中的属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码,简称外码。5.2.3 范式满足最低要求的关系,叫第一范式,简称1NF。n关系表的每一分量是不可分的数据项n1NF 不允许表中出现嵌套或复合的属性 5NF 4NF BCNF 3NF 2NF 1NF 定义5.6 若R1NF,对R的每一个非平凡的函数依赖XY,要么X是主属性,要么X不是任何码的真子集,则R 2NF。2NF 在 1NF基础上消除了非主属性对码的部分函数依赖。5.2.4 2NF例:前面的大表SC不是2NF的关系模式。如果一个关系模
8、式不是2NF的,一定存在过度冗余,带来3类异常。解决方法:分解为多个小表。5.2.5 3NF定义5.7 若R 1NF,对R中的每一个非平凡的函数依赖XY,要么Y是主属性,要么X中含有码,则R 3NF。3NF与2NF相比,条件更强。n因为X中含有码,则X不会是任何码的真子集;n而2NF定义中,X不是任何码的真子集,还可能是非主属性组。即3NF在2NF的基础上消除了非主属性对码的传递函数依赖。5.2.6 BCNF由Boyce和Codd共同提出,属于修正的3NF。定义5.8 若R1NF,对R中的每一个非平凡的函数依赖XY,X中均含有码,则R BCNF。BCNF与3NF相比,条件更强。n不允许主属性对
9、码的部分和传递函数依赖。从3NF到BCNF也是通过分解得到的。到BCNF为止,完全消除了由于函数依赖带来的过度冗余及相应的三类异常。但事实上,关系模式还可能存在由于非函数依赖带来的冗余及三类异常。这些数据依赖有多值依赖和连接依赖。我们只简单要求多值依赖。n在多个实体间联系为1对多联系时可能出现多值依赖带来的问题。5.2.7 多值依赖多值依赖定义多值依赖定义:设有关系模式R(U),X,Y,Z是U的子集,且Z=U-X-Y。对于R的任一关系r,给定一对(x,z)值,就有一组Y的值与之对应,这组值仅仅决定于x值而与z值无关,则称“Y多值依赖于X”或“X多值决定Y”。记作XY。或记忆为:对R(U)的任一
10、关系r,任意两元组s和t,如果sX=tX,则交换s和t的Y值所得两个新元组必在r中。翻译情况 A B C (姓名,东方语言,西方语言)王 红 日语 法语 王 红 汉语 英语 王 红 日语 英语 王 红 汉语 法语是BCNF,其中 只有ABC 才是关键字,没有违反 法则但有冗余,又有删除异常,例如删除(王 红 汉语 法语)衣着(姓名,衣服,裤子)类似,可称为 完全搭配依赖(课程,教师,参考书)类似,看书上不是多值依赖的例子:n学生选课表SC(Sno,Cno,G)中一个Sno(一个学生)有一组Cno(选了一组课程)和一组G(有一组成绩),但Cno与G有关(成绩与课程有关),所以没有SnoCno,以
11、及SnoG。平凡的多值依赖:平凡的多值依赖:若XY,而Z=;则称X Y是平凡的多值依赖。多值依赖的性质:多值依赖的性质:1、对称(互补)性:若X Y;则X Z,其中Z=U-X-Y。2、传递性:若X Y,Y Z;则X Z-Y。3、函数依赖是多值依赖的特殊情况:若X Y,则X Y。4、若X Y,X Z;则X YZ,X Z-Y,X Y-Z,X YZ。多值依赖与函数依赖的区别1、多值依赖的有效性与属性集的范围有关。若XY在U上成立,则在W(XY W U)上一定成立;反之则不然,即X Y在W(W包含于U)上成立,在U上并不一定成立。这是因为多值依赖的定义中不仅涉及属性组X和Y,而且涉及U中其余属性Z。但
12、是在关系模式R(U)中,函数依赖X Y的有效性仅决定于X,Y这两个属性集的值。只要在R的任何一个关系r中,元组在X和Y上的值满足函数依赖的定义,则该函数依赖在任何属性集W(U的子集)上成立。2、子集有效性不同:若函数依赖X Y在R(U)上成立,则对于任何Y属于Y,都有X Y成立。而多值依赖X Y在R(U)上成立,却不能断言对于任何Y属于Y,有X Y成立。5.2.8 4NF定义5.10 若关系模式R(U,F)1NF,如果对于R的每个非平凡多值依赖X Y(Y不包含于X),X都含有码,则称R(U,F)4NF。实质上4NF消除了多值依赖。为什么?一个关系模式到了BCNF可能还有不合适的性质nWSC(仓
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 关系 数据 理论
限制150内