[工学]数据库系统原理-第11章课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《[工学]数据库系统原理-第11章课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工学 数据库 系统 原理 11 课件
- 资源描述:
-
1、1关系数据库的规范化设计是指面对一个现实问关系数据库的规范化设计是指面对一个现实问题题,如何选择一个比较好的关系模式集合,即应该构造如何选择一个比较好的关系模式集合,即应该构造几个关系模式,每个关系由哪些属性组成。几个关系模式,每个关系由哪些属性组成。规范化设计理论主要包括规范化设计理论主要包括三个方面三个方面的内容:的内容:数数据依赖据依赖、范式范式和和模式设计方法模式设计方法。其中数据依赖起着核。其中数据依赖起着核心的作用。数据依赖研究数据之间的联系,范式是关心的作用。数据依赖研究数据之间的联系,范式是关系模式的标准,模式设计方法是自动化设计的基础。系模式的标准,模式设计方法是自动化设计的
2、基础。规范化设计理论对关系数据库结构的设计起着重要的规范化设计理论对关系数据库结构的设计起着重要的作用。作用。第11章 关系数据规范化理论P2502v例例11-1 设有一个关系模式设有一个关系模式R(TNAME,ADDRESS,CNO,CNAME),其属性分别表示),其属性分别表示教师姓名、教师地址、任教课程的编号和课程名。教师姓名、教师地址、任教课程的编号和课程名。TNAMEADDRESSCNOCNAMEt1a1c1n1t1a1c2n2t1a1c3n3t2a2c4n4t2a2c5n2t3a3c6n4 在数据库设计中,如果一个关系模式设计得不在数据库设计中,如果一个关系模式设计得不好,就会出现
3、像文件系统一样的数据冗余、异常、好,就会出现像文件系统一样的数据冗余、异常、不一致等问题。不一致等问题。图11.13v该模式出现的问题有:该模式出现的问题有:(1)数据冗余数据冗余:如果一个教师教几门课程,那么这如果一个教师教几门课程,那么这个教师的地址就要重复几次存储。个教师的地址就要重复几次存储。(2)操作异常操作异常:由于数据的冗余,在对数据操作由于数据的冗余,在对数据操作时会引起各种异常:时会引起各种异常:修改异常。修改异常。例如教师例如教师t1教三门课程,在关系教三门课程,在关系中就会有三个元组。如果他的地址变了,这三个元中就会有三个元组。如果他的地址变了,这三个元组中的地址都要改变
4、。若有一个元组中的地址未更组中的地址都要改变。若有一个元组中的地址未更改,就会造成这个教师的地址不惟一,产生不一致改,就会造成这个教师的地址不惟一,产生不一致现象。现象。4v 插入异常。插入异常。如果一个教师刚调来,尚未分如果一个教师刚调来,尚未分派教学任务,那么要将教师的姓名和地址存储到关派教学任务,那么要将教师的姓名和地址存储到关系中去时,在属性系中去时,在属性CNO和和CNAME上就没有值(空上就没有值(空值)。在数据库技术中空值的语义是非常复杂的,值)。在数据库技术中空值的语义是非常复杂的,对带空值元组的检索和操作也十分麻烦。对带空值元组的检索和操作也十分麻烦。删除异常。删除异常。如果
5、在是上图如果在是上图11.1中要取消教师中要取消教师t3的教学任务,那么就要把这个教师的元组删去,的教学任务,那么就要把这个教师的元组删去,同时也把同时也把t3的地址信息从表中删去了。这是一种不的地址信息从表中删去了。这是一种不合适的现象。合适的现象。5TNAMEADDRESSTNAMECNOCNAMEt1a1t1c1n1t2a2t1c2n2t3a3t1c3n3 t2c4n4 t2c5n2 t3c6n4图11.2关系模式分解的实例(a)关系模式R1的实例(b)关系模式R2的实例 可以说,关系模式可以说,关系模式R不是一个好的模式。一个不是一个好的模式。一个“好好”的模式应的模式应当不会发生插入
6、异常、删除异常、更新异常,数据冗余应尽量少。当不会发生插入异常、删除异常、更新异常,数据冗余应尽量少。规范化原则规范化原则:“关系模式有操作异常或冗余问题,就分解关系模式有操作异常或冗余问题,就分解它它。”是否算最佳分解?是否算最佳分解?那末,什么样的关系那末,什么样的关系模式是最优的?标准模式是最优的?标准是什么?如何实现?是什么?如何实现?6如何构造合适的关系模式如何构造合适的关系模式?应构造几个关模式应构造几个关模式?每个关系模式由哪些属性组成每个关系模式由哪些属性组成?这就关系到数据库的逻辑设计问题这就关系到数据库的逻辑设计问题7vX函数决定函数决定Y,或,或Y函数依赖于函数依赖于X可
7、表示为:可表示为:vXY v如果有一个关系模式如果有一个关系模式R(A1,A2,,An),X和和Y为为A1,A2,,An的子集,那么对于关系的子集,那么对于关系R中的任意中的任意一个一个x值,都只有一个值,都只有一个y值与之对应,则称值与之对应,则称X函数决定函数决定Y,或,或Y函数依赖于函数依赖于X11.1.111.1.1函数依赖的基本函数依赖的基本概念概念11.111.1 函数依赖函数依赖 P248P2488函数依赖是属性间基本的一种依赖,它是关键码概念的推函数依赖是属性间基本的一种依赖,它是关键码概念的推广。广。定义定义1 设有关系模式设有关系模式R(U),X和和Y是属性集是属性集U的子
8、集,若对的子集,若对于于R(U)的任意一个可能的关系的任意一个可能的关系r,r中不可能存在两个元组在中不可能存在两个元组在X上的属性值相等,而在上的属性值相等,而在Y上的属性值不等,则称上的属性值不等,则称X函数确定函数确定Y或或Y函数依赖函数依赖(Functional Dependency,简记为,简记为FD)于于X,记,记作作XY。FD是对关系模式是对关系模式R的一切可能的关系的一切可能的关系r定义的。对于定义的。对于r的任意的任意两个元组,如果两个元组,如果X值相同,则要求值相同,则要求Y值也相同,即对一个值也相同,即对一个X值有值有唯一个唯一个Y值与之对应。该定义类似于数学中的单值函数
9、定义。值与之对应。该定义类似于数学中的单值函数定义。9例例11-2:有一个关于学生选课、教师任课的关系模式:有一个关于学生选课、教师任课的关系模式:R(SNO,SNAME,CNO,GRADE,CNAME,TNAME,TAGE)属性分别表示学生学号、姓名、选修课程的课程号、成绩、属性分别表示学生学号、姓名、选修课程的课程号、成绩、课程名、任课教师姓名和年龄等意义。课程名、任课教师姓名和年龄等意义。如果规定,每个学号只能有一个学生姓名,每个课程号只如果规定,每个学号只能有一个学生姓名,每个课程号只能决定一门课程,那么可写成下列能决定一门课程,那么可写成下列FD形式:形式:SNOSNAME CNOC
10、NAME每个学生每学一门课程,有一个成绩,那么可写出下列每个学生每学一门课程,有一个成绩,那么可写出下列FD:(SNO,CNO)GRADE还可以写出其他一些还可以写出其他一些FD:CNOCNAME,TNAME,TAGE)TNAMETAGE注意注意:函数依赖不是指关系:函数依赖不是指关系R的某个或某些关系满足的约束条件,的某个或某些关系满足的约束条件,而是指而是指R的一切关系均要满足的约束条件。的一切关系均要满足的约束条件。10v对于函数依赖的定义对于函数依赖的定义注意注意以下三点:以下三点:函数依赖是一个基于关系模式(不是一个关系模式的特定函数依赖是一个基于关系模式(不是一个关系模式的特定实例
11、)的函数概念,即如果一个关系模式实例)的函数概念,即如果一个关系模式R中存在函数依赖中存在函数依赖XYY,则要求该模式的,则要求该模式的所有具体关系都满足所有具体关系都满足XYY。函数依赖不取决于属性构成关系的方式(即关系结构),函数依赖不取决于属性构成关系的方式(即关系结构),而是关系所表达的信息本身的语义特性,我们只能根据这种而是关系所表达的信息本身的语义特性,我们只能根据这种语义信息确定函数依赖,没有其他途径。语义信息确定函数依赖,没有其他途径。函数依赖是数据库设计者对于关系模式的一种断言或决策,函数依赖是数据库设计者对于关系模式的一种断言或决策,即在设计关系型数据库时不仅要设计关系结构
12、,而且要定义即在设计关系型数据库时不仅要设计关系结构,而且要定义数据依赖的条件,限制进入关系的所有元组都必须符合所定数据依赖的条件,限制进入关系的所有元组都必须符合所定义的条件,否则拒绝接受输入。义的条件,否则拒绝接受输入。11 11.1.2 11.1.2 一些术语和符号一些术语和符号 P249P249设有关系模式设有关系模式R(A1,A2,An),X和和Y为(为(A1,A2,An)的子集,则有以下结论:)的子集,则有以下结论:(1)如果)如果XY,但,但Y不包含于不包含于X,则称,则称XY是是非平凡的非平凡的函数依赖。函数依赖。(2)如果)如果Y函数不依赖于函数不依赖于X,则记为,则记为X
13、Y。(3)如果)如果XY,则称,则称X为决定因子。为决定因子。(4)如果)如果XY,并且,则,并且,则Y X,记,记X Y(5)如果)如果XY,并且对于,并且对于X的任意一个真子集的任意一个真子集X都有都有 X Y,则称,则称Y完全函数依赖于完全函数依赖于X,记为,记为X f Y。如果。如果 X Y成立,则称成立,则称Y部分依赖于部分依赖于X,记为,记为X p Y12 (6)如果如果XY(非平凡的函数依赖,并且非平凡的函数依赖,并且Y X)、)、Y Z,则称则称Z传递函数依赖于传递函数依赖于X。例例11-3:P249例例11.1 11.21311.2 关系规范化关系规范化 P251 v设用设用
14、U表示关系模式表示关系模式R的属性全集,即的属性全集,即U=A1,A2,An,用,用F表示关系模式表示关系模式R上的函数依赖上的函数依赖集,则关系模式集,则关系模式R可表示为可表示为R(U,F)。)。v1、候选码、候选码v设设K为为R(U,F)中的属性,若)中的属性,若K f U,则,则K为为R的的候选码候选码(K为决定为决定R全部属性值的最小属性组)。全部属性值的最小属性组)。11.2.1 关系模式中的码关系模式中的码 14v主码主码:关系关系R(U,F)中可能有多个候选码中可能有多个候选码,则选其中一则选其中一个作为主码个作为主码v全码全码:候选码为整个属性组候选码为整个属性组v主属性主属
15、性:在在R(U,F)中中,包含在任一候选码中的属性包含在任一候选码中的属性v非主属性非主属性:在在R(U,F)中中,不包含在任一候选码中的属不包含在任一候选码中的属性性例例11-4:P251例例11.3和和11.415 2、外码、外码用于在关系表之间建立关联的属性(组)称为用于在关系表之间建立关联的属性(组)称为外码外码。16 关系模式的好与坏,用什么标准衡量?这个标准就关系模式的好与坏,用什么标准衡量?这个标准就模式的模式的范式范式(Normal Forms,简记为,简记为NF)。范式)。范式的种类与数据依赖有着直接的联系,基于的种类与数据依赖有着直接的联系,基于FD的范式的范式有有1NF、
16、2NF、3NF、BCNF等多种。等多种。在不提及在不提及FD时,关系中是不可能有冗余的问题,时,关系中是不可能有冗余的问题,但是当存在但是当存在FD时,关系中就有可能存在数据冗余问时,关系中就有可能存在数据冗余问题。题。1NF是关系模式的基础;是关系模式的基础;2NF已成为历史,一般不已成为历史,一般不再提及;在数据库设计中最常用的是再提及;在数据库设计中最常用的是3NF和和BCNF。11.2.2 范式范式 P251 17 v 对于各种范式之间的联系有:对于各种范式之间的联系有:NFNFNFBCNFNFNF123455NF4NF2NFBCNF3NF1NF范式越高、规范化的程度越高,关系模式就越
17、好。范式越高、规范化的程度越高,关系模式就越好。181、第一范式、第一范式 定义:定义:如果关系模式如果关系模式R的每个关系的每个关系r的属性值都是的属性值都是不可分的原子值,那么称不可分的原子值,那么称R是是第一范式(第一范式(first normal form,简记为,简记为1NF)的模式。的模式。满足满足1NF的关系称为的关系称为规范化的关系规范化的关系,否则称为非规,否则称为非规范化的关系。关系数据库研究的关系都是规范化的关系。范化的关系。关系数据库研究的关系都是规范化的关系。例如关系模式例如关系模式R(NAME,ADDRESS,PHONE),),如果一个人有两个电话号码(如果一个人有
18、两个电话号码(PHONE),那么在关系),那么在关系中至少要出现两个元组,以便存储这两个号码。中至少要出现两个元组,以便存储这两个号码。1NF是关系模式应具备的最起码的条件。是关系模式应具备的最起码的条件。非规范模式变为非规范模式变为1NF:(1)把不含单纯值的属性分解为多个原子值。把不含单纯值的属性分解为多个原子值。(2)把关系模式分解。把关系模式分解。192、第二范式、第二范式 定义定义 如果关系模式如果关系模式R R是是1NF1NF,且每个非主属性完,且每个非主属性完全函数依赖于候选键(主码),那么称全函数依赖于候选键(主码),那么称R R是是第二范式第二范式(2NF2NF)的模式。如果
19、数据库模式中每个关系模式都的模式。如果数据库模式中每个关系模式都是是2NF2NF,则称数据库模式为,则称数据库模式为2NF2NF的数据库模式的数据库模式。20例例11-5:设关系模式设关系模式R(SNO,CNO,GRADE,TNAME,TADDR)的属性分别表示学生学号、选修课程的编号、成绩、任)的属性分别表示学生学号、选修课程的编号、成绩、任课教师姓名和教师地址等意义。(课教师姓名和教师地址等意义。(SNO,CNO)是)是R的候选键。的候选键。R上有两个上有两个FD:(:(SNO,CNO)(TNAME,TADDR)和)和CNO(TNAME,TADDR),因此前一个),因此前一个FD是是局部依
20、赖局部依赖,R不不是是2NF模式。此时模式。此时R的关系就会出现冗余和异常现象。譬如某一门的关系就会出现冗余和异常现象。譬如某一门课程有课程有100个学生选修,那么在关系中就会存在个学生选修,那么在关系中就会存在100个元组,因而教个元组,因而教师的姓名和地址就会重复师的姓名和地址就会重复100次。次。如果把如果把R分解分解成成R1(CNO,TNAME,TADDR)和)和R2(SNO,CNO,GRADE)后,局部依赖()后,局部依赖(SNO,CNO)(TNAME,TADDR)就消失了。)就消失了。R1和和R2都是都是2NF模式。模式。21 算法:算法:分解成分解成2NF模式集的算法模式集的算法
21、 设关系模式设关系模式R(U),主键是),主键是W,R上还存在上还存在FD XZ,并,并且且Z是非主属性和是非主属性和X W,那么,那么WZ就是一个局部依赖。此时就是一个局部依赖。此时应把应把R分解成两个模式分解成两个模式R1(XZ),主键是),主键是X;R2(Y),其),其中中Y=U-Z,主键仍是,主键仍是W,外键是,外键是X(REFERENCES R1)。)。利用外键和主键的联接可以从利用外键和主键的联接可以从R1和和R2重新得到重新得到R。如果如果R1和和R2还不是还不是2NF,则重复上述过程,一直到数据库,则重复上述过程,一直到数据库模式中每一个关系模式都是模式中每一个关系模式都是2N
22、F为止。为止。如如:在关系模式在关系模式R(SNO,CNO,GRADE,TNAME,TADDR)中,)中,W=SNO,CNO Z=TNAME,TADDR,X=CNO,Y=SNO,CNO,GRADE223、第三范式、第三范式 定义定义 如果如果XY,YA,且,且YX和和 AY,那么,那么称称XA是是传递依赖传递依赖(A传递依赖于传递依赖于X)。)。定义定义 如果关系模式如果关系模式R是是2NF,且每个非主属性都,且每个非主属性都不传递依赖于不传递依赖于R的主码,那么称的主码,那么称R是是第三范式(第三范式(3NF)的模式。如果数据库模式中每个关系模式都是的模式。如果数据库模式中每个关系模式都是3
23、NF,则称其为则称其为3NF的数据库模式的数据库模式。23 例例11-6:在上例中,在上例中,R2是是2NF模式,而且也已模式,而且也已是是3NF模式。但模式。但R1(CNO,TNAME,TADDR)是)是2NF模式,却不一定是模式,却不一定是3NF模式。如果模式。如果R1中存在函数中存在函数依赖依赖CNOTNAME和和TNAMETADDR,那么,那么CNOTADDR就是一个传递依赖,即就是一个传递依赖,即R1不是不是3NF模模式。此时式。此时R1的关系中也会出现冗余和异常操作。譬如的关系中也会出现冗余和异常操作。譬如一个教师开设五门课程,那么关系中就会出现五个元一个教师开设五门课程,那么关系
24、中就会出现五个元组,教师的地址就会重复五次。组,教师的地址就会重复五次。如果把如果把R2分解成分解成R21(TNAME,TADDR)和和R22(CNO,TNAME)后,)后,CNOTADDR就不会出现在就不会出现在R21和和R22中。这样中。这样R21和和R22都是都是3NF模式。模式。24 算法算法 分解成分解成3NF模式集的算法模式集的算法 设关系模式设关系模式R(U),主键是),主键是W,R上还存在上还存在FD XZ。并且。并且Z是非主属性,是非主属性,Z X,且,且X不是候选键,不是候选键,这样这样WZ就是一个传递依赖。此时应把就是一个传递依赖。此时应把R分解成两分解成两个模式:个模式
25、:R1(XZ),主键是),主键是X;R2(Y),其中),其中Y=U-Z,主键仍是,主键仍是W,外键是,外键是X(REFERENCES R1)。)。利用外键和主键相匹配机制,利用外键和主键相匹配机制,R1和和R2通过联接可以通过联接可以重新得到重新得到R。如果如果R1和和R2还不是还不是3NF,则重复上述过程,一直到,则重复上述过程,一直到数据库模式中每一个关系模式都是数据库模式中每一个关系模式都是3NF为止。为止。25违反违反3NF3NF的传递依赖的三种情况的传递依赖的三种情况 部分依赖部分依赖键是超键键是超键传递依赖传递依赖264、BCNF定义定义 如果关系模式如果关系模式R是是1NF,且每
展开阅读全文