第03章 关系模式的规范化设计.pptx
中国水利水电出版社数据库原理与应用
基于SQLServer2016湖南涉外经济学院数据库课题组
中国水利水电出版社主讲:黄胜内容提要范式设计3函数依赖2关系模式的设计问题1第03章关系模式的规范化设计关系模式的分解4
3.1关系模式的设计问题
3.1.1问题的提出设有一个关系模式R(U),其中U为由属性SNO、CNO、TNAME、TDPT和G组成的属性集合,其中SNO为学生学号,CNO为课程号,TNAME为任课教师姓名,TDPT为任课教师所在系别,G为课程成绩。该关系具有如下语义:1位学生只有1个学号,1门课程只有1个课程号。每位学生选修的每门课程都有1个成绩。每门课程只有1位教师授课,但1位教师可以讲授多门课程。教师没有重名,每位教师只属于1个系。根据上述语义,可以知道R的候选键为{SNO,CNO},将{SNO,CNO}作为主键。
3.1.1问题的提出通过分析关系模式R(U),可以发现下面2类问题。①第1类问题是数据大量冗余,表现在:每门课程的任课教师姓名必须对选修该门课程的学生重复1次;每门课程的任课教师所在的系名必须对选修该门课程的学生重复1次。②第2类问题是更新出现异常(updateanomalies),表现在:修改异常(modificationanomalies)插入异常(insertanomalies)删除异常(deletionanomalies)
3.1.2问题的分析如果在构造关系模式的时候,不从语义上研究和考虑到属性间的这种关联,简单地将有关系和无关系的、关系密切的和关系松散的、具有此种关联的和有彼种关联的属性随意编排在一起,就必然发生某种冲突,引起某些“排它”现象出现,即冗余度水平较高,更新产生异常。解决问题的根本方法就是将关系模式进行分解,也就是进行关系的规范化。
设有关系模式R(A1,A2,…,An),简记为R(U),其中U={A1,A2,…,An}。设X、Y是U的子集,r是R的任一具体关系,r的任意两个元组r1、r2,若r1[X]=r2[X](元组r1、r2在X上的属性值相等)则r1[Y]=r2[Y](元组r1、r2在Y上的属性值相等),则称X函数决定Y(或Y函数依赖于X),记为X→Y。称X→Y为R的一个函数依赖(简称FD)。可以这样理解:X→Y的意思是:在当前值r的两个不同元组中,如果X值相同,则Y值也相同;或者说,对于X的每一个具体值,都有Y唯一的具体值与之对应,即Y值由X值决定。若X→Y,并且Y→X,则记为X←→Y。3.1.2函数依赖
例3-1设有关系模式R(SNO,SNAME,CNO,SG,CNAME,TNO,TNAME),其中SNO为学号,SNAME为姓名,CNO为课程号,SG为成绩,CNAME为课程名。在R的关系r中,存在如下函数依赖:SNO→SNAME(每个学号只能有1个学生姓名,SNAME函数依赖于SNO)CNO→CNAME(每个课程号只能对应1门课程名,CNAME函数依赖于CNO)(SNO,CNO)→SG(每个学生学习一门课只能有1个最终成绩,SG函数依赖于SNO和CNO)3.1.2函数依赖
3.2函数依赖
?3.2.2函数依赖的分类
设U为关系模式R(U,F)的所有属性的集合,F为属性集U上的所有函数依赖的集合,X、Y是U的子集,如果从F能推出函数依赖X→Y,则称F逻辑蕴涵X→Y。3.2.3函数依赖的逻辑蕴涵与推理规则
?3.2.3函数依赖的逻辑蕴涵与推理规则
定理3-1函数依赖X→Y逻辑蕴涵于F的充要条件是:函数依赖X→Y,可根据F,由Armstrong推理规则推出。即若F逻辑蕴涵X→Y,则X→Y一定能根据F,由Armstrong推理规则推出;若X→Y能根据F,由Armstrong推理规则推出,则F逻辑蕴涵X→Y。3.2.3函数依赖的逻辑蕴涵与推理规则
?3.2.4闭包
?3.2.4闭包
3.2.4闭包?
3.2.5函数依赖集的覆盖和等价?
3.2.6函数依赖集的最小化如果函数依赖集F同时满足下列3个条件,则称F为一个极小函数依赖集(亦称为最小依赖集或最小覆盖),记为Fmin。①F中任一函数依赖的右部都是单属性(仅含有一个属性)。②F中的任一函数依赖X→A,其F-{X→A}与F不等价。③F中的任一函数依赖X→A,其X有真子集Z,F-{X→A}∪{Z→A}与F不等价。在这个定义中:条件①说明在最小函数依赖集中的所有函数依赖都应该是“右端没有多余属性”的最简单的形式;条件②保证了最小函数依赖集中无多余的函数依赖;条件③要求最小函数依赖集中的每个函数依赖的左端没有多余属性。定理3-3每一个函数依赖集F均等价于一个极小函数