软件学院自评报告软件学院自评报告1第五章关系数据库规范化理论软件学院自评报告软件学院自评报告25.1关系规范化的必要性5.2函数依赖5.3范式5.4关系模式的规范化第五章关系数据库规范化理论软件学院自评报告软件学院自评报告3一、关系数据库逻辑设计问题二、规范化理论研究的内容5.1关系规范化的必要性软件学院自评报告软件学院自评报告4关系数据库逻辑设计问题构造几个关系模式?每个关系由哪些属性组成?例:教学管理系统,需要存储下列信息学号,姓名,系名,系主任名,课程名,成绩Sno,Sname,Sdept,Mname,Cname,Score设计一个关系模式:SLC={Sno,Sname,Sdept,Mname,Cname,Score}一、关系数据库逻辑设计问题(1of6)软件学院自评报告软件学院自评报告5SLC中的样本数据一、关系数据库逻辑设计问题(2of6)SnoSnameSdeptMnameCnameScore02001王飞电子系赵千数字电路9802001王飞电子系赵千模拟电路8702001王飞电子系赵千高等数学8202002李力电子系赵千数字电路8202002李力电子系赵千模拟电路7102002李力电子系赵千高等数学6402003刘强计科系王杰C++语言9302003刘强计科系王杰操作系统8702003刘强计科系王杰编译原理7602004孙一数学系宋扬高等数学83软件学院自评报告软件学院自评报告6该关系模式存在四个主要问题:数据冗余度大插入异常删除异常更新异常解决方法:将该关系模式分解为三个SnoSnameSdeptSdeptMnameSnoCnameGrade一、关系数据库逻辑设计问题(3of6)DSCS软件学院自评报告软件学院自评报告7则在以上三个关系模式中,实现了信息的某种程度的分离:⑴S中存储学生基本信息,与所选课程及系主任无关;⑵D中存储系的有关信息,与学生无关;⑶SC中存储学生选课的信息,而与学生及系的有关信息无关。一、关系数据库逻辑设计问题(4of6)软件学院自评报告软件学院自评报告8与SLC相比,分解为三个关系模式后,数据的冗余度明显降低。⑴学生选课信息存储在关系SC中,选课的行为不会影响系名、系主任名的存储次数,不存在上文所分析的数据冗余问题;⑵若某个系尚未招生,仍可以在关系中添加系名和系主任名,这就避免了插入异常;⑶当一个系的学生全部毕业时,只需在S中删除该系的全部学生记录,而关系D中有关该系的信息仍然保留,从而不会引起删除异常;⑷同时,由于数据冗余度的降低,数据没有重复存储,也不会引起更新异常。一、关系数据库逻辑设计问题(5of6)软件学院自评报告软件学院自评报告9从而得出结论,一个好的关系模式应该具备以下四个条件:⑴尽可能少的数据冗余;⑵没有插入异常;⑶没有删除异常;⑷没有更新异常。一、关系数据库逻辑设计问题(6of6)软件学院自评报告软件学院自评报告10关系数据库的规范化理论主要包括三个方面的内容:⑴函数依赖⑵范式⑶模式设计其中,函数依赖起着核心的作用,是模式分解和模式设计的基础,范式是模式分解的标准。二、规范化理论研究的内容软件学院自评报告软件学院自评报告11一、数据依赖二、函数依赖三、键的形式化定义四、候选键的求解理论和算法5.2函数依赖软件学院自评报告软件学院自评报告12关系模式回顾一个关系模式可写成一个五元组:R(U,D,DOM,F)其中R:关系名,U:属性组,D:属性域,DOM:属性到域的映射。F:数据依赖集(属性间)为简化起见,把关系模式看作一个三元组:R(U,F)仅当定义在U上的集合r满足F时,r才称为关系模式R的一个关系。一、数据依赖(1of2)软件学院自评报告软件学院自评报告13数据依赖数据依赖:是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系数据依赖是现实世界属性间相互联系的抽象,是数据内在的性质数据依赖是语义的体现数据依赖共有三种:函数依赖(FunctionalDependency,FD)多值依赖(MultivaluedDependency,MVD)连接依赖(JoinDependency,JD)一、数据依赖(2of2)软件学院自评报告软件学院自评报告14函数依赖定义:设R(U)是一个关系模式,U是R的属性集合(如U={A1,…,An}}。X,Y为U的子集。如果R(U)的的所有关系r都存在着:X的每一个值,都有Y的唯一值与之相对应,则称:X函数决定Y,或Y函数依赖X。记作X→Y。否则,记作X→Y称为X不能函数决定Y。XY可理解为:X有一个值,则Y有唯一的值与之相对应;而Y的一个值是否与唯一的X值对应,不去管。二、函数依赖(1of2)软件学院自评报告软件学院自评报告15二、函数依赖(2of2)软件学院自评报告软件学院自评报告16候选键和主键设K是关系模式R(U,F)中的属性或属性组。若Kf→U,则K为R的候选键(CandidateKey)若候选键多于一个,则选其中的一个为主键(PrimaryKey)外键:设有两个关系R和S,X是R的属性或属性组,并且X不是R的键,但X是S的键(或与S的键意义相同),则称X是R的外部键(ForeignKey),简称外键或外码。三、键的形式化定义(1of2)软件学院自评报告软件学院自评报告17闭包(Closure)对于给定关系模式R(U,F),F的闭包是由F所逻辑蕴涵的所有函数依赖的集合,记为F+。例如,从F={A→B,B→C}中可以推导出A→C,所以A→C是F+中的成员。由F所逻辑蕴涵的函数依赖可以由下面的公理系统(称为Armstrong公理系统)推导出来:⑴自反律若YX,则X→Y;⑵增广律若X→Y,则XZ→YZ;⑶传递律若X→Y,Y→Z,则X→Z。其中,假设X,Y,Z都是关系R的属性集U的子集。三、键的形式化定义(2of2)软件学院自评报告软件学院自评报告18对于给定的关系模式R(U)和函数依赖集F,可将其属性分为4类:⑴L类仅出现在的函数依赖左部的属性。⑵R类仅出现在的函数依赖右部的属性。⑶N类在的函数依赖左右两边均未出现的属性。⑷LR类在的函数依赖左右两边均出现的属性。四、候选键的求解理论和算法(1of3)软件学院自评报告软件学院自评报告19四、候选键的求解理论和算法(2of3)定理5.1对于给定的关系模式R(U)及其函数依赖集F,若X(XR)是L类属性,则X必为R的任一侯选键的成员。推论5.1对于给定的关系模式R(U)及其函数依赖集F,若X(XR)是L类属性,且X+包含了R的全部属性,则X必为R的的惟一侯选键。软件学院自评报告软件学院自评报告20四、候选键的求解理论和算法(3of3)定理5.2对于给定的关系模式R(U)及其函数依赖集F,若X(XR)是R类属性,则X不在任何侯选键中。定理5.3对于给定的关系模式R(U)及其函数依赖集F,若X(XR)是N类属性,则X必为R的任一侯选键的成员。推论5.2对于给定的关系模式R(U)及其函数依赖集F,若X是N类和L类组成的属性集,且X+包含了R的全部属性,则X必为R的的惟一侯选键。软件学院自评报告软件学院自评报告21一、范式定义二、第一范式(1NF)三、第二范式(2NF)四、第三范式(3NF)五、改进的3NF(BCNF)六、多值依赖与第四范式(4NF)5.3范式软件学院自评报告软件学院自评报告22范式定义范式(NF)是符合某一种级别的关系模式的集合。5NF4NFBCNF3NF2NF1NF若R(U,F)符合x范式的要求,则称R为x范式,记作:RxNF1NF2NF3NF4NFBCNF5NF一、范式定义软件学院自评报告软件学院自评报告23第一范式(1NF)如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF不满足1NF的数据库模式不能称为关系数据库满足1NF的数据库并一定是一个好的关系模式二、第一范式(1NF)(1of2)软件学院自评报告软件学院自评报告24SLC2(Sno,Sdept,Sloc,Cname,Score)∈1NF,但存在下列问题:⑴插入异常:若学生没有选课,键值未定,则他的个人信息、所在系的信息等就无法插入;⑵删除异常:若删除学生的选课信息,则有关他的个人信息及所在系的信息也随之删除了;⑶更新异常:如果某个学生转系,若他选修了门课,则需要修改条记录,如果有一条没有修改,就会出现更新异常;⑷数据冗余大:如果一个学生选修了门课,则有关他的所在系、所在宿舍信息重复。二、第一范式(1NF)(2of2)软件学院自评报告软件学院自评报告25第二范式(2NF)满足第一范式的关系模式R,如果所有非主属性都完全依赖于键,则称R属于第二范式。记为R∈2NF。例:将属于第一范式的SLC进行投影分解,消除其中的部分函数依赖,就可达到第二范式。SC2(Sno,Cname,Score)2NFSL2(Sno,Sdept,Sloc)2NF三、第二范式(2NF)(1of2)软件学院自评报告软件学院自评报告26SL2(Sno,Sdept,Sloc)∈2NF但存在下列问题:插入异常删除异常修改复杂数据冗余度大三、第二范式(2NF)(2of2)软件学院自评报告软件学院自评报告27第三范式(3NF)若R∈2NF,且它的任何一个非主属性都不传递依赖于键,则称关系R满足第三范式。记为R∈3NF将属于第二范式的SL2进行投影分解,消除其中的传递函数依赖,就可达到第三范式。SD2(Sno,Sdept)∈3NFDL2(Sdept,Sloc)∈3NF四、第三范式(3NF)软件学院自评报告软件学院自评报告28改进的3NF-BCNF(Boyee-CoddNormalForm)设关系模式R(U,F)∈1NF,若X→Y且YX时X必包含键,则称R∈BCNF。推论:如果R∈BCNF,则:R中所有非主属性对每一个键都是完全函数依赖;R中所有主属性对每一个不包含它的键,都是完全函数依赖;R中没有任何属性完全函数依赖于非键的任何一组属性。定理:如果R∈BCNF,则R∈3NF一定成立。五、改进的3NF(BCNF)软件学院自评报告软件学院自评报告29课程C教员T参考书B物理李勇普通物理学物理李勇光学原理物理李勇物理习题集物理王军普通物理学物理王军光学原理物理王军物理习题集数学李勇数学分析微分方程数学李勇高等代数数学张平数学分析微分方程数学张平高等代数Teaching(C,T,B)的二维表表示六、多值依赖与第四范式(4NF)(1of6)软件学院自评报告软件学院自评报告30Teach∈BCNF,但仍存在下列问题:数据冗余度大增加操作复杂删除操作复杂修改操作复杂原因:关系模式Teaching中存在一种称为多值依赖数据依赖。六、多值依赖与第四范式(4NF)(2of6)软件学院自评报告软件学院自评报告31多值依赖定义:设R(U)是属性集U上的一个关系模式,X,Y,Z是U的子集,且Z=U-X-Y,多值依赖X→→Y成立当且仅当对R(U)的任一关系r,r在(X,Z)值上的每个值对应一组Y的值,这组Y的值仅仅决定于X值而与Z值无关。称Y多值依赖于X,或X多值决定Y,记作:X→→Y。在关系模式Teaching中:对于一个(C,B)值对应一组T值,而且这种对应与B的值无关,仅决定于C的值,即C→→T。六、多值依赖与第四范式(4NF)(3of6)软件学院自评报告软件学院自评报告32多值依赖的性质多值依赖具有对称性即若X→→Y,则X→→Z,其中Z=U-X-Y。多值依赖的传递性即若X→→Y,Y→→Z,则X→→Z-Y。函数依赖可以看作是多值依赖的特殊情况。即若X→Y,则X→→Y。这是因为当X→Y时,对X的每一个值x,Y有一个确定的值y与之对应,所以X→→Y。若X→→Y,X→→Z,则X→→YZ若X→→Y,X→→Z,则X→→Y∩Z若X→→Y,X→→Z,则X→→Y-Z,X→→Z-Y六、多值依赖与第四范式(4NF)(4of6)软件学院自评报告软件学院自评报告33多值依赖与函数依赖的区别:多值依赖的有效性与属性集的范围有关。X→→Y在U