第六章关系数据库理论.ppt
文本预览下载声明
第一页,共二十四页,2022年,8月28日 6.1 问题的提出 例如:Student(Sno,Sdept,Mname,Cname,Grade) F={Sno?Sdept,Sdept ? Mname,(Sno,Cname) ? Grade} 存在问题: ⑴数据冗余太大 ⑵插入异常 ⑶删除异常 ⑷更新异常 分解成三个关系模式: S(Sno,Sdept, Sno?Sdept); SG(Sno,Cname,Grade,(Sno,Cname) ? Grade); D(Sdept,Mname,Sdept ? Mname); 第二页,共二十四页,2022年,8月28日 6.2 规范化 数据依赖:关系中属性值之间的这种相互依赖又相互制约的联 系,称为数据依赖。包括:函数依赖、多值依赖。 一、函数依赖 定义1:设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的任 意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上 的属性值不等,则称X函数决定Y或Y函数依赖于X,记作X→Y。 说明:1、函数依赖是语义范畴的概念 2、函数依赖关系是反映属性之间的一般规律 根据函数依赖的定义,可找出下面规律: 1、在一个关系模式中,如属性X,Y有1:1联系,则存在函数依赖X→Y、 Y→X,可记作X?Y 2、X、Y是1:m联系,则存在Y→X,但X\→Y 3、X、Y是n:m联系,则X、Y之间不存在任何函数依赖 第三页,共二十四页,2022年,8月28日 X→Y,但Y?X则称X→Y是平凡的函数依赖。否则,称非平凡的函数依赖。 定义2:在R(U)中,如果X→Y,并且对于X的任何一个真子集X′,都有 X′→Y,则称Y对X部分函数依赖,记作X→pY,否则,称Y完全函数依赖于 X,记作X→fY。 定义3:在R(U)中,如果X→Y,(Y?X),Y \→X,Y→Z,则称Z对X传递 函数依赖。 定义4:设K为RU,F中的属性或属性组合,若K f→U则K为R的候选码。 若候选码多于一个,则选定其中的一个为主码(Primary Key)。 包含在任何一个候选码中的属性,叫做主属性。不包含在任何码中的属性称 为非主属性或非码属性。整个属性组是码,称为全码。 定义5:关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的 码,则称X是R的外部码(Foreign Key),也称外码。 二、码 第四页,共二十四页,2022年,8月28日 三、范式 范式:是符合某一种级别的关系模式的集合。 关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同 范式。1NF,2NF,3NF,BCNF,4NF,5NF 定义:关系模式 R(U)中所有属性都不可再分的,则称R是第一范式,记作 R?1NF。 例如:SLC(SNO,SDEPT,SLOC,CNO,GRADE) 四、2NF 定义6:若R?1NF,且每一个非主属性完全函数依赖于码,则R?2NF。 SNO CNO G SDEPT SLOC 第五页,共二十四页,2022年,8月28日 五、3NF 定义7:若R?2NF,且R中任一非主属性都不传递函数依赖于码,则R?3NF。 SNO CNO G SDEPT SLOC SNO SL SC 上例 SL分解为: SD(SNO,SDEPT) DL(SDEPT,SLOC) 由于第三范式有效地消除了非主属性对码的部分和传递依赖,因而 消除了一大类操作异常问题。因此,3NF在数据库设计中得到了广泛 应用。 第六页,共二十四页,2022年,8月28日 六、BCNF 例:关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示教师,J表 示课程。每一教师只教一门课。每门课有若干教师,某一学生选定某门课, 就对应一个固定的教师。 由语义可得到如下的函数依赖: (S,J)→T; (S,T)→J; T →J 关系有两个候选键,是(S,J)和(S,T) S、T、J都是主属性,不存在非主属性,更不会有非主属性对键的传递依赖、 部分依赖了,因此,STJ关系满足第三范式。 但仍然存在问题: 定义8:R ? BCNF,当且仅当每个决定因素都是码(候选键)。 上例分解为:ST(S,T)、TJ(T,J) 第七页,共二十四页,2022年,8月28日 七、多值依赖 例:学校中某一门课程由多个教员讲授,他们使用相同的一套参考书。每个教 员可以讲授多门课
显示全部