王珊萨师煊课件第06章关系数据理论

上传人:E**** 文档编号:91066043 上传时间:2019-06-21 格式:PPT 页数:82 大小:1.04MB
返回 下载 相关 举报
王珊萨师煊课件第06章关系数据理论_第1页
第1页 / 共82页
王珊萨师煊课件第06章关系数据理论_第2页
第2页 / 共82页
王珊萨师煊课件第06章关系数据理论_第3页
第3页 / 共82页
王珊萨师煊课件第06章关系数据理论_第4页
第4页 / 共82页
王珊萨师煊课件第06章关系数据理论_第5页
第5页 / 共82页
点击查看更多>>
资源描述

《王珊萨师煊课件第06章关系数据理论》由会员分享,可在线阅读,更多相关《王珊萨师煊课件第06章关系数据理论(82页珍藏版)》请在金锄头文库上搜索。

1、问题,本课程前面章节分别解决了什么问题?,为什么要分成4个表,有什么依据,是否可以将其中几个表合并为一个表,若可以会带来怎样的问题?,关系数据理论,主要内容: 问题的提出 规范化 数据依赖的公理系统 模式分解,6.1问题提出及函数依赖,如果将前面的student,course,和s_c表合成一个表,会是怎样的 ?其中(sno,cno)为主码。,1、在表中每添加一个选课记录(元组),需要添加的信息包括哪些,这些数据有什么特点?,2、假设“刘洋”同学的姓名改为“刘杨”,应该怎样操作?,学生的姓名,年龄和课程名称也需要添加,同一个学生或同一门课程在多次添加选课记录时,重复太大存在的冗余大。,需要修改

2、每一个与“刘洋”有关的记录。更新异常。,3、假设新增一门新课,还没有学生选修,如何在数据库中体现出?,无法体现出插入异常,4、假设有一部分同学毕业了,需要删除他们的记录,会发生怎样的情况?,可能将课程的信息丢失了。删除异常,若使用合并前的表,是否也会出现上述现象?因此,合并后的表,它的结构不合理,原因分析:,1、学号,姓名,年龄,专业编号4个属性,从常识上讲只要知道学号,其他3个属性便可得知,同理可知,知道了课程号就可以知道课程的名称。,从另一个角度讲,一旦确定了学号的值或课程号的值就可以知道相应的其他信息,如姓名,年龄,课程名称。,我们说姓名或年龄函数依赖于学号,课程名称函数依赖于课程号。,

3、在前面的关系中还有那些依赖关系?,所谓函数依赖是指在关系R(型)中,X、 Y为R的两个属性或 属性组,如果对于R的所有关系r(记录)都存在: 对于X的每 一个具体值,Y都只有一个具体值与之对应,则称属性Y函数 依赖于属性X。,定义6.1 函数依赖,或者说,属性X函数决定属性Y,记作XY。 其中X称为这个函数依赖的决定属性组,也称为决定因素,Y称为被决定因素。,此定义可简单表述为: 如果属性X的值决定属性Y的值,那么属性Y函数依赖于属性X。 换一种说法是,如果知道X的值,就可以获得Y的值。,术语和记号,在该关系中下列函数依赖是否成立?,1、Snosname 2、(Sno,cno)sno 两者有什

4、么不同?,问题:什么时候存在平凡的函数依赖?,对于任何一个关系模式,平凡函数依赖都必然成立,因此,若不做特别说明,函数依赖总是指非平凡的函数依赖。,在前面关系中,存在哪些函数依赖?,(Sno,cno)mark Snosname,Snosage,Snospno Cnocname,sname和sage是否函数依赖于(Sno,cno),还函数依赖于哪个属性,这个属性与(Sno,cno)的关系是什么?,是,sno,包含与被包含的关系。,有没有其他函数依赖关系?,定义6.2 完全函数依赖与部分函数依赖,在R(U)中,如果XY,并且对于X的任何一个真子集X,都有,则称Y对X完全函数依赖,记作,若XY,但Y

5、不完全函数依赖于X,则称Y对X部分函数依赖,记作:,下列关系中有哪些完全函数依赖关系,有哪些部分函数依赖关系?,结论:表之所以存在前面的问题是因为它的非码属性之间存在函数依赖,即非码属性部分函数依赖于码,如何解决?,分解后是否存在部分函数依赖?,考查下面关系:,存在哪些完全函数依赖关系,特点是什么?,SnoSdept,SdeptMname SnoMname,问题:SdeptSno是否成立?,定义6.3 传递函数依赖,若不添加,则XY,变成,问题:主码从函数依赖的角度,如何定义?,定义6.4 主码,函数依赖小结,函数依赖 非平凡的函数依赖 完全函数依赖 部分函数依赖 传递函数依赖,6.2范式,第

6、1范式的内容是什么? 主码与其他非码属性的关系应该是怎样的? 考虑如下关系,(Sno,Cno)为码。,该关系中存在哪些完全函数依赖关系和部分函数依赖关系?,2、假设有一门课程C3只有某一个学生(如S6)选了,现在该学生退学了,需要删除他的信息,在删除时会发生怎样的现象?,3、若有一个学生选修个多门课程,现在他要调宿舍,需要怎样修改表中的记录?,1、若要添加一个学生,他还没有选课,会出现怎样的现象?,4、假设有一个学生选修了多门课程,需要怎样添加记录?,Sdept和Sloc多次填写冗余大,主码不全,添加出错,插入异常,将课程的信息也删除了删除异常,需要修改多个记录修改复杂,定义6.6,若关系R

7、1NF,且每个非主属性完全函数依赖于码,则R 2NF。,前面的关系是否满足2NF,若不满足该如何修改使它满足2NF?,分解后的各个关系是否满足2NF,分解的原则是什么?,若关系中存在非主属性部分函数依赖于主码(不满足2NF),则修改关系去掉这些部分函数依赖关系,一般做法就是分解关系成为多个关系,使它们满足2NF。,考虑一下,分解后的关系S_L的特性?,定义6.7,即若R是3NF,则在关系中每一个非码属性既不部分函数依赖于码也不传递依赖于码。因此:,分解后的两个关系是否满足3NF,分解的原则是什么?,若关系不满足3NF,则分解关系去掉传递函数依赖关系,使分解后的各个关系满足3NF。,银行系统现有

8、关系如下:分行,客户,借贷编号,如何构造一个关系,体现3者的联系。,该关系哪些属性是码,是否满足2NF,是否满足3NF?,(Branch-name, Customer-name)是码,非主属性完全依赖于码,其没有传递依赖,故满足2NF和3NF,但是若借贷编号是为每个分行的不同金额的借贷业务编的号,则有没有数据冗余?,既然每个分行为不同金额的借贷业务编了号, Loan-number和Brach-name属性存在重复,且Loan-number不是码。因此对上述关系作如下修改:,定义6.8,由BCNF的定义可以得到以下推论: 如果RBCNF,则 R中所有非主属性对每一个码都是完全函数依赖; 若不是,

9、会得出什么结论?,X必含有码的含义是什么,请举例?,R中所有主属性对每一个不包含它的码,都是完全函数依赖关系有多个候选码的情况; 反之,会怎样?,R中没有任何属性完全函数依赖于非码的任何一组属性。,反之,会怎样?,非主属性起决定作用,与定义矛盾。,非主属性起决定作用,与定义矛盾。,定理: 如果RBCNF,则R3NF一定成立。,证明: 用反证法。 如果RBCNF,但不是3NF,则R中一定存在传递函数依赖。 即R中必定存在候选码X,非主属性A,属性组Y,其中AX,AY, XY,使得XYA成立。 Y不是R的码,但Y是R的决定因素(YA),根据BCNF的定义,R不是BCNF,与假设相矛盾。 所以假设不

10、成立。,但是如果R3NF,R未必属于BCNF。 3NF比BCNF放宽了一个限制,即允许决定因素不包含码。 请看下面两个例子:,例 1: 通讯(城市名,街道名 ,邮政编码) 该关系的码是(城市名,街道名),根据语义其函数依赖集为: F=(城市名,街道名)邮政编码,邮政编码城市名 所以非主属性邮政编码完全函数依赖于码,且无传递依赖,属于3NF。 但邮政编码也是一个决定因素,它没有包含码,所以该关系不属于BCNF。存在冗余(城市名, 邮政编码) ,可以作如下分解:,(城市名, 邮政编码),(街道名 ,邮政编码),例 2 授课(学生,教师,课程) 假设该校规定: 一个教师只能教一门课,每门课可由多个教

11、师讲授。 学生一旦选定某门课,教师就相应地固定。 根据语义关系的函数依赖集为: F= 教师课程,(学生,课程)教师,(学生,教师)课程 该关系的候选码为(学生,课程)或(学生,教师), 该关系一定是3NF的。 但由于决定因素教师没包含码,该关系不属于BCNF。假设有100名学生选课,存在冗余(教师,课程),可分解为:,教师(教师,课程) 学生(学生,教师),小结: 2NF的定义:强调完全函数依赖。 3NF的定义:强调不存在传递函数依赖。 BCNF的定义:强调只有码才可以是决定因素。,关系是 2NF,不能保证是3NF和BCNF; 3NF,能保证是2NF,但不能保证是BCNF; BCNF,能保证是

12、2NF和3NF。 关系如下:,一个关系模式如果达到了BCNF,那么在函数依赖范围内,它已实现了彻底的分离,消除了数据冗余、 插入和删除异常。,现有例子如下:,学校中某一门课程由多个教员讲授,他们使用相同的一套参考书。每个教员可以讲授多门课程,每种参考书可以供多门课程使用,非规范化数据如下:,什么是函数依赖,该数据中,各个属性间存在函数依赖吗?,在这个关系中码是什么?,全码,教员的值由哪个属性决定?,写成规范化形式如下:,定义6.9,设R(U)是属性集U上的一个关系模式,X,Y,Z是U的子集,并且Z=U-X-Y。当且仅当对R(U)的任一关系r,给定一对(x,z)值,有一组Y的值,这组值仅仅决定于

13、x的值而与z值无关,称关系模式R(U)中多值依赖XY成立。,如上例,参考书=U(课程,教员,参考书)-课程-教员,(物理,光学原理)决定了(李勇,王军),但是(李勇,王军)仅仅决定于物理与光学原理无关。因此教员T多值依赖于课程C。,我们可以从已知的元组推出表中一定存在的其他元组。 例如,如果已知表中存在元组: (物理,王军,光学原理) (物理,李勇,普通物理学) 那么表中应该有元组: (物理,王军,普通物理学) (物理,李勇,光学原理) Why?,多值依赖具有对称性。 若XY,则XZ,其中Z=U-X-Y。,问题,如果给物理课程添加一名教员需要添加几条记录,同样某一门课程(如物理)要去掉一本参考

14、书需要删除几条记录?存在冗余,如何处理。,数据如下:,t1,t2,t3,Go 33,t1,t2,t3,Go 33,针对上面数据,给定同一课程(X相同)的两个记录(元组)t1和t2,总能找到同一课程的一个记录t3(可以与t1或t2相同),它满足如下条件: 在t3的另外两个属性中,其中一个属性和t1的对应属性相同,另一个属性与t2的对应属性相同。,上述描述是否总是正确?,例子,多值依赖的另一个等价的形式化定义为: 设关系模式R(U),X、 Y、 Z是U的子集,Z=U-X-Y,r是R的任意一个关系,t1、 t2是r的任意两个元组。 如果t1X=t2X,在r中存在元组t3,使得 t3X = t1X,t

15、3Y = t1Y,t3Z=t2Z 成立,则XY。成立的含义?是指t3也在r中。 上述定义中,由于t1、 t2的对称性,实际隐含着关系r中还存在着另一个元组t4,t4满足: t4X = t1X,t4Y = t2Y,t4Z=t1Z,t1,t2,t3,t4 可以分别由 t,s,w,v代替教材P179的形式化定义。,换句话说,如果r有两个元组在X属性上的值相等,则交换这两个元组在Y上的属性值,得到的两个新元组也必是r中的元组。 定义中如果Z=(即Z为空集),则称XY为平凡的多值依赖,否则为非平凡多值依赖。,(1)多值依赖具有对称性。 若XY,则XZ,其中Z=U-X-Y。 (2) 多值依赖具有传递性。

16、若XY,YZ,则XZ-Y。 (3) 若XY,XZ,则XYZ(或者写成YZ)。 (4) 若XY,XZ,则XYZ。 (5) 若XY,XZ,则XY-Z,XZ-Y。,多值依赖应该具有的性质,看下例:,供应关系,定义6.10,4NF是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。,在前面的供应关系中,项目供应商,项目零件,且都是非平凡的多值依赖。,但该关系的码是全码(项目,供应商,零件),而项目没有包含码(只是码的一部分),所以该关系模式属于BCNF(根据定义)而不属于4NF。 如将其分解为两个关系,可达到4NF: 需求(项目,零件) 供应(项目,供应商) 这两个关系中,项目零件,项目供应商,它们均是平凡多值依赖。 即关系中已不存在非平凡、 非函

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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