第06章关系数据理论PPT讲稿.ppt
《第06章关系数据理论PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第06章关系数据理论PPT讲稿.ppt(82页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第06章关系数据理论第1页,共82页,编辑于2022年,星期日关系数据理论主要内容:问题的提出规范化数据依赖的公理系统模式分解第2页,共82页,编辑于2022年,星期日6.1问题提出及函数依赖如果将前面的student,course,和s_c表合成一个表,会是怎样的?其中(sno,cno)为主码。Snosname sagespnocnocnamemark52120066刘洋23100520006高等数学8552120076王敏24100320007数据库原理8752120066刘洋23100520007数据库原理8452120066刘洋23100510002数据结构90问题:第3页,共82页,
2、编辑于2022年,星期日1、在表中每添加一个选课记录(元组),需要添加的信息包括哪些,这些数据有什么特点?2、假设“刘洋”同学的姓名改为“刘杨”,应该怎样操作?学生的姓名,年龄和课程名称也需要添加,同一个学生或同一门课程在多次添加选课记录时,重复太大存在的冗余大。需要修改每一个与“刘洋”有关的记录。更新异常。3、假设新增一门新课,还没有学生选修,如何在数据库中体现出?无法体现出插入异常4、假设有一部分同学毕业了,需要删除他们的记录,会发生怎样的情况?可能将课程的信息丢失了。删除异常若使用合并前的表,是否也会出现上述现象?因此第4页,共82页,编辑于2022年,星期日合并后的表,它的结构不合理,
3、原因分析:合并后的表,它的结构不合理,原因分析:1、学号,姓名,年龄,专业编号、学号,姓名,年龄,专业编号4个属性,从常识上讲只要知道个属性,从常识上讲只要知道学号,学号,其其他他3个属性便可得知,同理可知,知道了个属性便可得知,同理可知,知道了课程号课程号就可以知道课程的名称。就可以知道课程的名称。从另一个角度讲,一旦确定了学号的值或课程号的值就可以知道从另一个角度讲,一旦确定了学号的值或课程号的值就可以知道相应相应的的其他信息,如姓名,年龄,课程名称。其他信息,如姓名,年龄,课程名称。我们说姓名或年龄我们说姓名或年龄函数依赖于函数依赖于学号,课程名称学号,课程名称函数依赖于函数依赖于课程号
4、。课程号。函数依赖的定义:函数依赖的定义:在前面的关系中还有那些在前面的关系中还有那些依赖关系依赖关系?第5页,共82页,编辑于2022年,星期日所谓函数依赖是指在所谓函数依赖是指在关系关系R(型型)中中,X、Y为为R的两个属性或的两个属性或属性组属性组,如果对于如果对于R的所有的所有关系关系r(记录记录)都存在:都存在:对于对于X的每的每一个具体值一个具体值,Y都只有一个具体值与之对应都只有一个具体值与之对应,则称属性则称属性Y函数函数依赖于属性依赖于属性X。定义定义6.1 函数依赖函数依赖或者说或者说,属性属性X函数决定属性函数决定属性Y,记作记作XY。其中其中X称为这个函称为这个函数依赖
5、的决定属性组,也称为数依赖的决定属性组,也称为决定因素决定因素,Y称为称为被决定因素被决定因素。此定义可简单表述为:此定义可简单表述为:如果属性如果属性X的值决定属性的值决定属性Y的值的值,那么属性那么属性Y函数依赖于属性函数依赖于属性X。换一种说法是换一种说法是,如果知道如果知道X的值的值,就可以获得就可以获得Y的值的值。第6页,共82页,编辑于2022年,星期日术语和记号术语和记号Snosname sagespnocnocnamemark在该关系中下列函数依赖是否成立?1、Snosname2、(Sno,cno)sno两者有什么不同?第7页,共82页,编辑于2022年,星期日问题:什么时候存
6、在平凡的函数依赖?对于任何一个关系模式,平凡函数依赖都必然成立,因此,若不做特别说明,函数依赖总是指非平凡的函数依赖。第8页,共82页,编辑于2022年,星期日在前面关系中,存在哪些函数依赖?(Sno,cno)markSnosname,Snosage,SnospnoCnocnamesname和sage是否函数依赖于(Sno,cno),还函数依赖于哪个属性,这个属性与(Sno,cno)的关系是什么?是,sno,包含与被包含的关系。有没有其他函数依赖关系?因此Snosname sagespnocnocnamemark第9页,共82页,编辑于2022年,星期日定义定义6.2 完全函数依赖与部分函数依
7、赖完全函数依赖与部分函数依赖在R(U)中,如果XY,并且对于X的任何一个真子集X,都有则称Y对X完全函数依赖,记作若XY,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作:问题:第10页,共82页,编辑于2022年,星期日下列关系中有哪些完全函数依赖关系,有哪些部分函数依赖关系?Snosnamesagespnocnocnamemark结论:表之所以存在前面的问题是因为它的非码属性之间存在函数依赖,即非码属性部分函数依赖于码,如何解决?SnosnamesagespnocnocnameSnocnomark分解后是否存在部分函数依赖?第11页,共82页,编辑于2022年,星期日考查下面关系:Sn
8、o(学号)Sdept(学生所在院系)Mname(系负责人)存在哪些完全函数依赖关系,特点是什么?SnoSdept,SdeptMnameSnoMname因此引出下面的定义:问题:SdeptSno是否成立?第12页,共82页,编辑于2022年,星期日定义定义6.3 传递函数依赖传递函数依赖若不添加,则XY,变成第13页,共82页,编辑于2022年,星期日问题:主码从函数依赖的角度,如何定义?定义定义6.4主码主码第14页,共82页,编辑于2022年,星期日函数依赖小结函数依赖非平凡的函数依赖完全函数依赖部分函数依赖传递函数依赖在关系(表)的“合理”化过程中如何使用函数依赖?第15页,共82页,编辑
9、于2022年,星期日6.2范式第1范式的内容是什么?主码与其他非码属性的关系应该是怎样的?考虑如下关系,(Sno,Cno)为码。Sno(学号)Sdept(院系)Sloc(宿舍)Cno(课程号)Grade(成绩)该关系中存在哪些完全函数依赖关系和部分函数依赖关系?第16页,共82页,编辑于2022年,星期日2、假设有一门课程C3只有某一个学生(如S6)选了,现在该学生退学了,需要删除他的信息,在删除时会发生怎样的现象?3、若有一个学生选修个多门课程,现在他要调宿舍,需要怎样修改表中的记录?1、若要添加一个学生,他还没有选课,会出现怎样的现象?4、假设有一个学生选修了多门课程,需要怎样添加记录?S
10、dept和Sloc多次填写冗余大主码不全,添加出错,插入异常将课程的信息也删除了删除异常需要修改多个记录修改复杂如何解决第17页,共82页,编辑于2022年,星期日定义定义6.6若关系R 1NF,且每个非主属性完全函数依赖于码,则R 2NF。前面的关系是否满足2NF,若不满足该如何修改使它满足2NF?Sno(学号)Sdept(院系)Sloc(宿舍)Cno(课程号)Grade(成绩)SlocSdeptSnoS_LSnoGradeCnoS_C分解后的各个关系是否满足2NF,分解的原则是什么?第18页,共82页,编辑于2022年,星期日若关系中存在非主属性部分函数依赖于主码(不满足2NF),则修改关
11、系去掉这些部分函数依赖关系,一般做法就是分解关系成为多个关系,使它们满足2NF。考虑一下,分解后的关系S_L的特性?SlocSdeptSnoS_L在添加学生的记录时,需要添加哪些属性,哪些是冗余的,应该如何修改?第19页,共82页,编辑于2022年,星期日定义定义6.7关系模式R中若不存在这样的码X,属性组Y及非主属性Z()使得XY,YZ成立,YX,则称即若R是3NF,则在关系中每一个非码属性既不部分函数依赖于则在关系中每一个非码属性既不部分函数依赖于码也不传递依赖于码码也不传递依赖于码。因此:SlocSdeptSnoS_LSdeptSnoS_DSlocSdeptD_L分解后的两个关系是否满足
12、3NF,分解的原则是什么?第20页,共82页,编辑于2022年,星期日若关系不满足3NF,则分解关系去掉传递函数依赖关系,使分解后的各个关系满足3NF。银行系统现有关系如下:分行,客户,借贷编号,如何构造一个关系,体现3者的联系。Branch-name(分行)Customer-name(客户)Loan-number(借贷编号)该关系哪些属性是码,是否满足2NF,是否满足3NF?(Branch-name,Customer-name)是码,非主属性完全依赖于码,其没有传递依赖,故满足2NF和3NF,但是若借贷编号是为每个分行的不同金额的借贷业务编的号,则有没有数据冗余?有第21页,共82页,编辑于
13、2022年,星期日既然每个分行为不同金额的借贷业务编了号,Loan-number和Brach-name属性存在重复,且Loan-number不是码。因此对上述关系作如下修改:Branch-name(分行)Customer-name(客户)Loan-number(借贷编号)Loan-numberBranch-nameAmountCustomer-nameLoan-number实质是非主属性含有决定因素,如Loan-number。分解后去掉了非主属性的决定因素。第22页,共82页,编辑于2022年,星期日定义定义6.8关系模式R 若XY且 时X必含有码,则称由由BCNF的定义可以得到以下推论:的定
14、义可以得到以下推论:如果如果RBCNF,则则R中所有非主属性对每一个码都是中所有非主属性对每一个码都是完全函数依赖完全函数依赖;若不是,会得出什么结论?若不是,会得出什么结论?X必含有码的含义是什么,请举例?非主属性起决定作用,与定义矛盾。非主属性起决定作用,与定义矛盾。第23页,共82页,编辑于2022年,星期日R中所有主属性对每一个不包含它的码中所有主属性对每一个不包含它的码,都是都是完全函数依赖完全函数依赖关系有多个候选码的情况关系有多个候选码的情况;反之,会怎样?反之,会怎样?R中没有任何属性中没有任何属性完全函数依赖完全函数依赖于非码的任何一组属性。于非码的任何一组属性。反之,会怎样
15、?反之,会怎样?非主属性起决定作用,与定义矛盾。非主属性起决定作用,与定义矛盾。非主属性起决定作用,与定义矛盾。非主属性起决定作用,与定义矛盾。BCNF与3NF的关系是什么?第24页,共82页,编辑于2022年,星期日定理:定理:如果如果RBCNF,则则R3NF一定成立一定成立。证明:证明:用反证法。用反证法。如果如果RBCNF,但不是但不是3NF,则则R中一定存在传递函数依中一定存在传递函数依赖赖。即即R中必定存在候选码中必定存在候选码X,非主属性非主属性A,属性组属性组Y,其中其中AX,AY,XY,使得使得XYA成立。成立。Y不是不是R的码的码,但但Y是是R的决定因素的决定因素(YA),根
16、据根据BCNF的定义的定义,R不是不是BCNF,与与假设相矛盾。假设相矛盾。所以假设不成立。所以假设不成立。但是如果但是如果R3NF,R未必属于未必属于BCNF。3NF比比BCNF放宽了一放宽了一个限制个限制,即允许决定因素不包含码即允许决定因素不包含码。请看下面两个例子:请看下面两个例子:第25页,共82页,编辑于2022年,星期日例例 1:通讯(通讯(城市名城市名,街道名街道名,邮政编码)邮政编码)该该关关系系的的码码是是(城城市市名名,街街道道名名),根根据据语语义义其其函函数数依赖集为:依赖集为:F=(城城市市名名,街街道道名名)邮邮政政编编码码,邮邮政政编编码码城城市市名名 所所以以
17、非非主主属属性性邮邮政政编编码码完完全全函函数数依依赖赖于于码码,且且无无传传递递依依赖赖,属属于于3NF。但但邮邮政政编编码码也也是是一一个个决决定定因因素素,它它没没有有包包含含码码,所所以以该该关关系系不不属属于于BCNF。存存在在冗冗余余(城城市市名名,邮邮政政编编码码),可可以以作如下分解:作如下分解:(城市名城市名,邮政编码)邮政编码)(街道名街道名,邮政编码)邮政编码)第26页,共82页,编辑于2022年,星期日例例 2 授课(学生授课(学生,教师教师,课程)课程)假假设设该该校校规规定定:一一个个教教师师只只能能教教一一门门课课,每每门门课课可可由由多多个个教教师师讲讲授授。学
18、学生生一一旦旦选选定定某某门门课课,教教师师就就相相应应地地固固定定。根据语义关系的函数依赖集为:根据语义关系的函数依赖集为:F=教教师师课课程程,(学学生生,课课程程)教教师师,(学学生生,教教师师)课程课程 该该关关系系的的候候选选码码为为(学学生生,课课程程)或或(学学生生,教教师师),该该关关系系一一定定是是3NF的的。但但由由于于决决定定因因素素教教师师没没包包含含码码,该该关关系系不不属属于于BCNF。假假设设有有100名名学学生生选选课课,存存在在冗冗余余(教教师师,课课程程),可分解为:可分解为:教师(教师教师(教师,课程)课程)学生(学生学生(学生,教师)教师)第27页,共8
19、2页,编辑于2022年,星期日小结:2NF的定义:强调完全函数依赖。3NF的定义:强调不存在传递函数依赖。BCNF的定义:强调只有码才可以是决定因素。它们之间的关系如何?第28页,共82页,编辑于2022年,星期日关系是2NF,不能保证是3NF和BCNF;3NF,能保证是2NF,但不能保证是BCNF;BCNF,能保证是2NF和3NF。关系如下:2NF3NFBCNF一个关系模式一个关系模式如果达到了如果达到了BCNF,那么那么在函数依赖范围内在函数依赖范围内,它已实现了彻底的分离它已实现了彻底的分离,消消除了数据冗余、除了数据冗余、插入和删插入和删除异常除异常。第29页,共82页,编辑于2022
20、年,星期日现有例子如下:课程C教员T参考书B物理李勇王军 普通物理学光学原理 物理习题集数学李勇张平数学分析微分方程高等代数计算数学张平周峰数学分析学校中某一门课程由多个教员讲授,他们使用相同的一套参考书。每个教员可以讲授多门课程,每种参考书可以供多门课程使用,非规范化数据如下:什么是函数依赖,该数据中,各个属性间存在函数依赖吗?它们之间的关系应该是怎样的?第30页,共82页,编辑于2022年,星期日课程C 教员T 参考书B物理 李勇 普通物理学物理 李勇 光学原理物理 李勇 物理习题集物理 王军 光学原理物理 王军 普通物理学物理 王军 物理习题集数学 李勇 数学分析数学 李勇 微分方程数学
21、 李勇 高等代数数学 王平 数学分析数学 王平 微分方程数学 王平 高等代数 在这个关系中码是什么?全码教员的值由哪个属性决定?课程C,即给出一组(课程,参考书)的值,无论参考书的变化,教员的值仅仅取决于课程的值。因此,写成规范化形式如下:第31页,共82页,编辑于2022年,星期日定义定义6.9设R(U)是属性集U上的一个关系模式,X,Y,Z是U的子集,并且Z=U-X-Y。当且仅当对R(U)的任一关系r,给定一对(x,z)值,有一组Y的值,这组值仅仅决定于x的值而与z值无关,称关系模式R(U)中多值依赖多值依赖X XY Y成立。如上例,参考书=U(课程,教员,参考书)-课程-教员,(物理,光
22、学原理)决定了(李勇,王军),但是(李勇,王军)仅仅决定于物理与光学原理无关。因此教员因此教员因此教员因此教员T T多值依赖于课程多值依赖于课程多值依赖于课程多值依赖于课程C C。因此,可以做出如下结论:第32页,共82页,编辑于2022年,星期日我们可以从已知的元组推出表中一定存在的其他元组。我们可以从已知的元组推出表中一定存在的其他元组。例如例如,如果已知表中存在元组:如果已知表中存在元组:(物理,王军,光学原理)(物理,王军,光学原理)(物理,李勇,普通物理学)(物理,李勇,普通物理学)那么表中应该有元组:那么表中应该有元组:(物理,王军,普通物理学)(物理,王军,普通物理学)(物理,李
23、勇,光学原理)(物理,李勇,光学原理)Why?多值依赖具有对称性多值依赖具有对称性。若若XY,则则XZ,其中其中Z=U-X-Y。第33页,共82页,编辑于2022年,星期日问题,如果给物理课程添加一名教员需要添加几条记录,同样某一门课程(如物理)要去掉一本参考书需要删除几条记录?存在冗余,如何处理。另外一个例子课程教员参考书课程教员课程参考书第34页,共82页,编辑于2022年,星期日数据如下:t1t2t3Go 33第35页,共82页,编辑于2022年,星期日t1t2t3Go 33第36页,共82页,编辑于2022年,星期日针对上面数据,给定同一课程(X相同)的两个记录(元组)t1和t2,总能
24、找到同一课程的一个记录t3(可以与t1或t2相同),它满足如下条件:在t3的另外两个属性中,其中一个属性和t1的对应属性相同,另一个属性与t2的对应属性相同。上述描述是否总是正确?例子是,因此给出多值依赖的另一种等价的形式化定义如下:第37页,共82页,编辑于2022年,星期日多值依赖的另一个等价的形式化定义为:设关系模式R(U),X、Y、Z是U的子集,Z=U-X-Y,r是R的任意一个关系,t1、t2是r的任意两个元组。如果t1X=t2X,在r中存在元组t3,使得 t3X=t1X,t3Y=t1Y,t3Z=t2Z 成立,则XY。成立的含义?是指t3也在r中。上述定义中,由于t1、t2的对称性,实
25、际隐含着关系r中还存在着另一个元组t4,t4满足:t4X=t1X,t4Y=t2Y,t4Z=t1Zt1,t2,t3,t4 可以分别由 t,s,w,v代替教材P179的形式化定义。第38页,共82页,编辑于2022年,星期日换换句句话话说说,如如果果r有有两两个个元元组组在在X属属性性上上的的值值相相等等,则则交交换换这这两两个个元元组组在在Y上上的的属属性性值值,得得到到的的两两个个新新元元组组也也必必是是r中中的的元组元组。定定义义中中如如果果Z=(即即Z为为空空集集),则则称称XY为为平平凡凡的多值依赖的多值依赖,否则为否则为非平凡多值依赖非平凡多值依赖。第39页,共82页,编辑于2022年
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 06 关系 数据 理论 PPT 讲稿
限制150内