软件学院自评报告软件学院自评报告1第五章关系数据库规范化理论软件学院自评报告软件学院自评报告25.1关系规范化的必要性5.2函数依赖5.3范式5.4关系模式的规范化第五章关系数据库规范化理论软件学院自评报告软件学院自评报告35.1关系规范化的必要性每个关系由哪些属性组成?1.关系数据库逻辑设计问题构造几个关系?关系数据库关系属性软件学院自评报告软件学院自评报告45.1关系规范化的必要性例:教学管理系统,需要存储下列信息学号,姓名,系名,系主任名,课程名,成绩Sno,Sname,Sdept,Mname,Cname,Score设计一个关系模式:SLC={Sno,Sname,Sdept,Mname,Cname,Score}软件学院自评报告软件学院自评报告55.1关系规范化的必要性SLC中的样本数据SnoSnameSdeptMnameCnameScore02001王飞电子系赵千数字电路9802001王飞电子系赵千模拟电路8702001王飞电子系赵千高等数学8202002李力电子系赵千数字电路8202002李力电子系赵千模拟电路7102002李力电子系赵千高等数学6402003刘强计科系王杰C++语言9302003刘强计科系王杰操作系统8702003刘强计科系王杰编译原理7602004孙一数学系宋扬高等数学83软件学院自评报告软件学院自评报告65.1关系规范化的必要性该关系模式存在四个主要问题:(1)数据冗余度大浪费空间,产生数据的不一致性(2)插入异常(3)删除异常(4)更新异常软件学院自评报告软件学院自评报告75.1关系规范化的必要性解决方法:关系分解,实现信息的某种程度上的分离S={Sno,Sname,Sdept}D={Sdept,Mname}SC={Sno,Cname,Score}解决问题,说明是一个好的关系数据库模式。P113软件学院自评报告软件学院自评报告85.1关系规范化的必要性思考:为什么会产生上述问题?与数据间的依赖有关关于分离度高低:查询效率低:会产生四个问题软件学院自评报告软件学院自评报告95.1关系规范化的必要性2.规范化理论研究的内容(1)函数依赖核心模式分解和设计的基础(2)范式模式分解的标准(3)模式设计软件学院自评报告软件学院自评报告10数据依赖函数依赖键的形式化定义候选键的求解理论和算法5.2函数依赖软件学院自评报告软件学院自评报告115.2.1数据依赖关系模式回顾R(U,D,DOM,F)F:属性U上数据的依赖关系集合记作:R(U,F)软件学院自评报告软件学院自评报告125.2.1数据依赖定义5.1数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。数据依赖共有三种:(1)函数依赖(FunctionalDependency,FD)(2)多值依赖(MultivaluedDependency,MVD)(3)连接依赖(JoinDependency,JD)软件学院自评报告软件学院自评报告135.2.2函数依赖定义5.2函数依赖设R(U)是一个关系模式,U是R的属性集合。X,Y为U的子集。如果R(U)的所有关系r都存在着:对于X的每一个值,Y都有唯一值与之对应,则称X函数决定Y,或Y函数依赖于X。记作X→Y。其中X叫作决定属性集,Y叫作被决定属性集。若Y不函数依赖于X,记作:X→Y。若X→Y,Y→X,记作:XY注:函数依赖是属性间的一种联系软件学院自评报告软件学院自评报告145.2.2函数依赖设有关系模式SLC1(SNo,SName,SDept,MName,SLoc,CName,Score)U={SNo,SName,SDept,MName,SLoc,CName,Score}⑴根据学号可以确定学生的姓名;⑵一个系有若干学生,但一个学生只属于一个系;⑶一个系只有一名主任;⑷根据学生所在的系可以确定学生的住处;⑸一个学生可以选修多门课程,每门课程有若干学生选修;⑹每个学生所学的每门课程都有一个成绩。根据如下描述写出依赖关系:SNo→SNameSNo→SDeptSDept→MNameSDept→SLoc(SNo,CName)→ScoreF={SNo→SName,SNo→SDept,SDept→MName,SDept→SLoc,(SNo,CName)→Score}软件学院自评报告软件学院自评报告155.2.2函数依赖注意:P115(1)属性间的函数依赖指R的一切关系子集都要满足定义中的限定;(2)函数依赖是语义范畴的概念;(3)数据库设计者可以对现实世界做强制的规定。软件学院自评报告软件学院自评报告165.2.2函数依赖定义5.3平凡函数依赖与非平凡函数依赖在关系模式R(U,F)中,对于U的子集X、Y,如果X→Y,但YX,则称X→Y是非平凡函数依赖;如果YX,则称X→Y是平凡函数依赖。若不特别声明,本书中讨论的是非平凡函数依赖。例:(SNo,CName)→ScoreScore(SNo,CName)非平凡函数依赖(SNo,CName)→CNameSName(SNo,CName)平凡函数依赖软件学院自评报告软件学院自评报告175.2.2函数依赖定义5.4完全/部分函数依赖在R(U,F)中,如果X→Y,对于X的任一真子集X’,都有X’→Y则称Y对X完全函数依赖,记为XfY否则,称Y对X是部分函数依赖,记作XpY例:(SNo,CName)→SNameSNo→SName(SNoCName)pSName,(SNo,CName)→Score(SNoCName)corefS,软件学院自评报告软件学院自评报告185.2.2函数依赖定义5.5传递函数依赖在R(U,F)中,如果X→Y,Y→Z,且YX,ZY,Y→X则称Z对X是传递函数依赖,记为XZ传递若有Y→X,则XY,那么XZ直接例:SNo→SDeptSDept→MNameSNoMName传递软件学院自评报告软件学院自评报告195.2.3键的形式化定义定义5.6设K是关系模式R(U,F)中的属性或属性组。若KUf则K为R的候选键(CandidateKey),简称为键。定义5.7主键定义5.8主属性定义5.9非主属性定义5.10单键定义5.11全键例:(演奏者,作品,听众)定义5.12外键R(A,B,C,F)S(Ks,D,E)R的外键参照关系被参照关系软件学院自评报告软件学院自评报告205.2.4候选键的求解理论和算法思考:设有关系模式R(A,B,C,D)其函数依赖集F={D→B,B→D,AD→B,AC→D},求R的所有候选键。软件学院自评报告软件学院自评报告215.2.4候选键的求解理论和算法定义5.13闭包(Closure)对于给定的关系模式R(U,F),F的闭包是由F所逻辑蕴含的所有的函数依赖的集合,记作。F例:F={D→B,B→D,AD→B,AC→D},()AC={}A,C,D,B()D={D,B}注意:若K为候选键,则KU软件学院自评报告软件学院自评报告225.2.4候选键的求解理论和算法思考:设有关系模式R(A,B,C,D)其函数依赖集F={D→B,B→D,AD→B,AC→D},求R的所有候选键。()D={D,B}(B)={B,D}()A={A}()C={C}()AB={A,B,D}()AC={A,C,D,B}()AD={A,D,B}∴CK:AC……软件学院自评报告软件学院自评报告235.2.4候选键的求解理论和算法对于给定的关系模式R(U)和函数依赖集F,可将其属性分为4类:⑴L类仅出现在的函数依赖左部的属性;⑵R类仅出现在的函数依赖右部的属性;⑶N类在的函数依赖左右两边均未出现的属性;⑷LR类在的函数依赖左右两边均出现的属性。软件学院自评报告软件学院自评报告245.2.4候选键的求解理论和算法定理5.1对于给定的关系模式R(U)及其函数依赖集F,若X(X∈R)是L类属性,则X必为R的任一侯选键的成员。推论5.1对于给定的关系模式R(U)及其函数依赖集F,若X(X∈R)是L类属性,且X+包含了R的全部属性,则X必为R的的唯一侯选键。软件学院自评报告软件学院自评报告255.2.4候选键的求解理论和算法【例5.1】:设有关系模式R(A,B,C,D)其函数依赖集F={D→B,B→D,AD→B,AC→D},求R的所有候选键。L:解:A,CR:noneN:noneLR:B,D()AC={A,C,D,B}∴CK:AC软件学院自评报告软件学院自评报告265.2.4候选键的求解理论和算法定理5.2对于给定的关系模式R(U)及其函数依赖集F,若X(X∈R)是R类属性,则X不在任何侯选键中。定理5.3对于给定的关系模式R(U)及其函数依赖集F,若X(X∈R)是N类属性,则X必为R的任一侯选键的成员。推论5.2对于给定的关系模式R(U)及其函数依赖集F,若X是N类和L类组成的属性集,且X+包含了R的全部属性,则X必为R的的唯一侯选键。软件学院自评报告软件学院自评报告275.2.4候选键的求解理论和算法【例5.2】:设有关系模式R(A,B,C,D,E,P)其函数依赖集F={A→D,E→D,D→B,BC→D,DC→A},求R的所有候选键。L:解:C,ER:noneN:PLR:A,B,D∴CK:CEP()CEP={}C,E,P,D,B=U,A软件学院自评报告软件学院自评报告285.2.4候选键的求解理论和算法【练习1】:设有关系模式R(A,B,C,D,E,P)其函数依赖集F={A→B,C→P,E→A,CE→D},求R的所有候选键。L:解:C,ER:P,D,BN:noneLR:A∴CK:CE()CE={}C,E,P,A,B=U,D软件学院自评报告软件学院自评报告295.2.4候选键的求解理论和算法【练习2】:设有关系模式R(A,B,C)其函数依赖集F={AB→C,C→A},求R的所有候选键。L:解:BR:noneN:noneLR:A,C∴CK:AB,BCB={B}≠U()AB={}A,B,C=U()BC={}B,C,A=U软件学院自评报告软件学院自评报告305.2.4候选键的求解理论和算法【练习3】:设有关系模式R(A,B,C,D,E)其函数依赖集F={A→BC,CD→E,B→D,E→A},求R的所有候选键。L:解:noneN:noneLR:A,B,C,D,EB={}BR:noneA={}A,B,C=U,D,E√,DCD={C}={D}E={}E,A,B=U,C,D√()BC={}B,C,D=U,E,A√()BD={}B,D()CD={}C,D,E,A,B√=U∴CK:A,E,BC,CD软件学院自评报告软件学院自评报告31回顾规范化理论研究的内容(1)函数依赖核心模式分解和设计的基础(2)范式模式分解的标准(3)模式设计软件学院自评报告软件学院自评报告325.3范式范式定义第一范式(1NF)第二范式(2NF)第三范式(3NF)改进的3NF(BCNF)多值依赖与第四范式(4NF)软件学院自评报告软件学院自评报告335.3.1范式的定义范式(NF)是符合某一种级别的关系模式的集合。满足不同程度要求的为不同范式。范式的概念最早由E.F.Codd提出:1971年1NF,2NF,3NF1974年BCNF1976年4NF,5NF5NF3NFBCNF2NF4NF1NF若R(U,F)符合x范式的要求,则称R为x范式,记作:R∈xNF软件学院自评报告软件学院自评报告345.3.2第一范式(1NF)定义5.14第一范式(1NF)如果一个关系模式R(U,F)的所有属性都是不可分的基本数据项,则R∈1NF.例:SLC2(SNo,SDept,SLoc,CName,Score)∈1NF满足1NF的数据库模模式不一定是一个好的关系模式;不满足1NF的数据库模式不能称为关系数据库模式。软件学院自评报告软件学院自评报告355.3.3第二范式(2NF)定义5.15第二范式(2NF)满足第一范式的关系