关系数据理论.pptx
《关系数据理论.pptx》由会员分享,可在线阅读,更多相关《关系数据理论.pptx(69页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、内容概述定义:关系数据库设计理论就是借助于数学工具规定了一整套的关系数据库设计理论和方法。关系模型关系模型(第一篇(第一篇 关系数据库基础理论)关系数据库基础理论)关系数据库关系数据库(第二篇(第二篇 关系数据库设计与应用开发)关系数据库设计与应用开发)设计如何选择一个比较好的关系模式的集合,每个关系又应该由哪些属性组成。(关系数据理论要解决的问题)第1页/共69页案例分析设某学校教学所需管理的信息有:课程号,课程名,学号,学生姓名,学生所在系,系主任,成绩等。一个系有若干个学生,但一个学生只属于一个系;一个学生可以选修多门功课,每门课程可有若干学生选修,每个学生学习课程有一个成绩。根据以上要
2、求设计教学管理数据库:关系模式1:SCD(学号,学生姓名,学生所在系,系主任,课程号,课程名,成绩)关系模式2:S1(学号,学生姓名,学生所在系,系主任)S2(学生姓名,课程名,成绩)选择哪一种更好?第2页/共69页学习内容 1 为什么要选择 2 怎么选择 3 做什么某些不好的关系模式可能导致哪些问题?关系数据库的规范化理论(重点)模式分解和模式设计(难点)第3页/共69页6.1关系模式的存储异常问题某些不好的关系模式可能导致哪些问题?例如教学管理数据库,以关系模式1为例:SCD(学号,姓名,年龄,部门,系主任,课程号,成绩)在此关系模式中填入一部分具体的数据,则可得到SCD关系模式的实例,即
3、一个教学管理数据库,如下图所示。第4页/共69页关系数据库SCD学号姓名年龄部门系主任 课程号成绩S1赵亦17计算机刘伟C190S1赵亦17计算机刘伟C285S2钱尔18信息王平C557S2钱尔18信息王平C680S2钱尔18信息王平C770S2钱尔18信息王平C570S3孙珊20信息王平C10S3孙珊20信息王平C270S3孙珊20信息王平C485S4李思19自动化刘伟C193分析以上关系中的数据,我们可以看出:(学号,课程号)属性的组合能唯一标识一个元组,所以(学号,课程号)是该关系模式的主关系键。第5页/共69页(1)数据冗余 系名和系主任的名字、学生的姓名、年龄也都要重复存储多次。学号
4、姓名年龄部门系主任 课程号成绩S1赵亦17计算机刘伟C190S1赵亦17计算机刘伟C285S2钱尔18信息王平C557S2钱尔18信息王平C680S2钱尔18信息王平C770S2钱尔18信息王平C570S3孙珊20信息王平C10S3孙珊20信息王平C270S3孙珊20信息王平C485S4李思19自动化刘伟C193存储次数=每个学生选修课程门数(1000*10)数据的冗余度很大,浪费了存储空间。第6页/共69页(2)插入异常 在这个关系模式中,(学号,课程号)是主关键字。根据关系的实体完整性约束,主关键字的值不能为空,而这时没有学生,学号,课程号均无值,因此导致插入异常。学号姓名年龄部门系主任
5、课程号成绩S1赵亦17计算机刘伟C190S1赵亦17计算机刘伟C285S2钱尔18信息王平C557S2钱尔18信息王平C680S2钱尔18信息王平C770S2钱尔18信息王平C570S3孙珊20信息王平C10S3孙珊20信息王平C270S3孙珊20信息王平C485S4李思19自动化刘伟C193s5刘一己刘一己18nullnullnullnull?第7页/共69页(3)删除异常 信息系学生全部毕业而没有招生时,需要删除全部学生的记录 出现的问题:系名、系主任随之删除,而这个系依然存在,在数据库中却无法找到该系的信息,导致删除异常学号姓名年龄部门系主任 课程号成绩S1赵亦17计算机刘伟C190S1
6、赵亦17计算机刘伟C285S2钱尔18信息王平C557S2钱尔18信息王平C680S2钱尔18信息王平C770S2钱尔18信息王平C570S3孙珊20信息王平C10S3孙珊20信息王平C270S3孙珊20信息王平C485S4李思男自动化刘伟C193信息信息王平王平第8页/共69页(4)更新异常 某系更换系主任,则属于该系的学生记录都要修改内容,稍有不慎,就有可能漏改某些记录,这就会造成数据的不一致性,破坏数据的完整性,导致更新异常。学号姓名年龄部门系主任 课程号成绩S1赵亦17计算机刘伟C190S1赵亦17计算机刘伟C285S2钱尔18信息王平C557S2钱尔18信息王平C680S2钱尔18信
7、息王平C770S2钱尔18信息王平C570S3孙珊20信息王平C10S3孙珊20信息王平C270S3孙珊20信息王平C485S4李思男自动化刘伟C193王刚王刚王刚王刚王刚王刚王刚王刚王刚王刚第9页/共69页6.1关系模式的存储异常问题 一个不好的关系模式可能存在以下问题:数据冗余插入异常删除异常更新异常Why(Why(为什么要进行选择为什么要进行选择)第10页/共69页6.2 怎么选择一个好的关系模式应该具备以下条件:尽可能小的数据冗余没有插入异常没有删除异常没有更新异常第11页/共69页案例分析SCD(学号,姓名,年龄,部门,系主任,课程号,成绩)把关系模式SCD分解为下面三个结构简单的关
8、系模式。学生关系S(学号,姓名,年龄,系别)选课关系SC(学号,课程号,成绩)系关系D(系名,系主任)第12页/共69页改进的SCD学生关系SSNOSNAGEDEPTSNOCNOSCORES1赵亦17计算机S1C190S2钱尔18信息S1C285S3孙珊20信息S2C557S4李思21自动化S2C680S2C7S2C570S3C10S3C270S3C485DEPTMN计算机刘伟信息王平自动化刘伟选课关系SC系关系D第13页/共69页改进的SCD特点SNOSNAGEDEPTS1赵亦17计算机S2钱尔18信息S3孙珊20信息S4李思21自动化DEPTMN计算机刘伟信息王平自动化刘伟SNOCNOSC
9、ORES1C190S1C285S2C557S2C680S2C7S2C570分解为三个关系模式后,其特点:当新插入一个系时,只要在关系D中添加一条记录,数据的冗余度明显降低当某个学生尚未选课,只要在关系S中添加一条学生记录,而与选课关系无关,这就避免了插入异常。当一个系的学生全部毕业时,只需在S中删除该系的全部学生记录,而关系D中有关该系的信息仍然保留,从而不会引起删除异常。由于数据冗余度的降低,数据没有重复存储,也不会引起更新异常。分解后的关系模式是一个好的关系数据库模式。第14页/共69页6.2 关系规范化理论(How)SCD(学号,姓名,年龄,部门,系主任,课程号,成绩)学生关系S(学号,
10、姓名,年龄,系别)选课关系SC(学号,课程号,成绩)系关系D(系名,系主任)转换转换原则:关系规范化理论 如何按照一定的规范设计关系模式,将结构复杂的关系分解成结构简单的关系,从而把不好的关系数据库模式转变为好的关系数据库模式,这就是关系的规范化第15页/共69页6.2 关系规范化理论(How)关系数据库的规范化理论最早是由关系数据库的创始人E.F.Codd提出的,后经许多专家学者对关系数据库理论作了深入的研究和发展,形成了一整套有关关系数据库设计的理论。关系数据库的规范化理论主要包括三个方面的内容:函数依赖(数学基础)范式(Normal Form)(规范化标准)模式分解和模式设计(What,
11、做什么)其中,函数依赖起着核心的作用,是模式分解和模式设计的基础,范式是模式分解的标准。第16页/共69页6.2.1 函数依赖数据依赖:关系模式中的各属性之间相互依赖、相互制约的联系。函数依赖多值依赖连接依赖 其中,函数依赖(Functional Dependency)是最重要的数据依赖,是关系模式中属性之间的一种逻辑依赖关系。第17页/共69页函数依赖的定义定义 设关系模式R(U,F),U是属性全集,F是U上的函数依赖集,X和Y是U的子集,如果对于R(U)的任意一个可能的关系r,对于X的每一个具体值,Y都有唯一的具体值与之对应,则称X决定函数Y,或Y函数依赖于X,记作XY。我们称X为决定因素
12、,Y为依赖因素。对于关系模式SCDU=学号,姓名,年龄,系别,系主任,课程号,成绩F=学号姓名,学号年龄,学号系别 一个学号有多个成绩的值与其对应,因此成绩不能唯一地确定,即成绩不能函数依赖于学号,所以有:学号 成绩。但是 成绩可以被(学号,课程号)唯一地确定。所以可表示为:(学号,课程号)成绩。第18页/共69页有关函数依赖的几点说明:1 函数依赖是语义范畴的概念.反映了一种语义完整性约束,只能根据语义来确定函数依赖.例如,对于关系模式S,当学生不存在重名的情况下,有:姓名年龄姓名系别 这种函数依赖关系,必须是在没有重名的学生条件下才成立的,否则就不存在函数依赖了。SNOSNAGEDEPTS
13、1赵亦17计算机S2钱尔18信息S3赵亦20信息第19页/共69页有关函数依赖的几点说明:2 函数依赖与属性之间的联系类型有关。(1)在一个关系模式中,如果属性X与Y有1:1联系时,则存在函数依赖XY,YX,即XY。例如,当学生无重名时,学号 姓名。(2)如果属性X与Y有1:m的联系时,则只存在函数依赖XY。例如,学号与年龄、系别之间均为1:m联系,所以有 学号年龄,学号系别。(3)如果属性X与Y有m:n的联系时,则X与Y之间不存在任何函数依赖关系。例如,一个学生可以选修多门课程,一门课程又可以为多个学生选修,所以学号与课程号之间不存在函数依赖关系。由于函数依赖与属性之间的联系类型有关,所以在
14、确定属性间的函数依赖关系时,可以从分析属性间的联系类型入手,便可确定属性间的函数依赖。第20页/共69页函数依赖的类型完全函数依赖部分函数依赖传递函数依赖第21页/共69页完全函数依赖与部分函数依赖定义 设关系模式R(U),U是属性全集,X和Y是U的子集,如果XY,并且对于X的任何一个真子集X,都有X Y,则称Y对X完全函数依赖(FullFunctionalDependency)如果对X的某个真子集X,有X Y,则称Y对X部分函数依赖(PartialFunctionalDependency)例如,关系模式SCD中,因为学号 成绩,且课程号 成绩,(学号,课程号)成绩,所以有:成绩对(学号,课程
15、号)完全函数依赖。而学号年龄,(学号,课程号)年龄,所以有:年龄对(学号,课程号)部分函数依赖。第22页/共69页传递函数依赖定义 设有关系模式R(U),U是属性全集,X,Y,Z是U的子集,若XY,但Y X,而YZ(Y X,Z Y),则称Z对X传递函数依赖(TransitiveFunctionalDependency)。如果YX,则X Y,这时称Z对X直接函数依赖,而不是传递函数依赖。例如,在关系模式SCD中,学号系别,但系别 学号,而系别 系主任,则有系主任对学号传递函数依赖。第23页/共69页总结 综上所述,函数依赖分为完全函数依赖、部分函数依赖和传递函数依赖三类,它们是规范化理论的依据和
16、规范化程度的准则,下面我们将以介绍的这些概念为基础,进行数据库的规范设计。第24页/共69页6.2.2关系模式的范式 问题:关系模式用什么标准衡量?1NF(低低)2NF3NF4NFBCNF5NF(高高)定义:范式是对关系的不同数据依赖程度的要求。范式 将一个低级范式转换为若干个高级范式的过程称作规范化。第25页/共69页第一范式(1NF)定义:关系模式R的所有的属性值域都是不可再分的。即不能以集合、序列等作为属性值。学号学号课程号课程号S1C1,C2,C3学号学号课程号课程号S1C1S1C2S1C3第26页/共69页第一范式(1NF)分量是否需要再分,与具体应用有关。如果用到值的一部分,则需要
17、进一步分割。如果只是查询所属院系,则它满足1NF。如果查询两人专业是否相同,则不满足1NF。姓名院系王军资环资源张立资环环境李明资环地信姓名院系王军资环资源张立资环环境李明资环地信只比较系,需要将院系分解第27页/共69页第一范式(1NF)满足条件吗?插入异常:如果学生没有选课,关于他的个人信息及所在系的信息就无法插入。删除异常:如果删除学生的选课信息,则有关他的个人信息及所在系的信息也随之删除了。更新异常:如果学生转系,若他选修了k门课,则需要修改k次。数据冗余:关系模式S(学号,姓名,系,系主任,课程号,成绩)满足1NF,是否符合一个好的关系模式应该具备的条件呢?第28页/共69页第二范式
18、(2NF)定义:对于关系模式R,若R1NF,且R中的每一个非主属性完全函数依赖于R的某个候选键,则R2NF。从1NF中消除非主属性对候选键的部分函数依赖,则获得2NF关系.第29页/共69页第二范式(2NF)关系模式(学号,姓名,课程号,成绩,系,系主任)(学号,课程号)成绩 学号系 学号姓名 系系主任学号学号课程号课程号成绩成绩姓名姓名完全依赖完全依赖非完全依赖非完全依赖 系系 第30页/共69页第二范式(2NF)关系模式S(学号,姓名,课程号,成绩,系,系主任)存在部分函数依赖,不满足第二范式。分解之道:将模式中不完全函数依赖的属性去掉,将部分依赖的属性单独组成新的模式,化为第二范式。选课
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据 理论
限制150内