数据库规范化理论课件

上传人:xzh****18 文档编号:51683330 上传时间:2018-08-15 格式:PPT 页数:34 大小:89.50KB
返回 下载 相关 举报
数据库规范化理论课件_第1页
第1页 / 共34页
数据库规范化理论课件_第2页
第2页 / 共34页
数据库规范化理论课件_第3页
第3页 / 共34页
数据库规范化理论课件_第4页
第4页 / 共34页
数据库规范化理论课件_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《数据库规范化理论课件》由会员分享,可在线阅读,更多相关《数据库规范化理论课件(34页珍藏版)》请在金锄头文库上搜索。

1、关系数据(规范化)理论关系数据库是以关系模型为基础的数据库,它统一地用关系来描 述现实世界。一个关系即可以用来描述一个实体及其属性,也可 用来描述实体间的一种联系。定义了关系模式的全体也就定义了 该数据库的模式。 数据库设计的一个最基本的问题是如何建立一个好的数据库模式 ,使数据库系统无论是在数据存储方面,还是在数据操纵方面都 有较好的性能。针对一个具体问题,应该如何构造一个适合于它 的数据模式,即应该构造几个关系模式,每个关系是由哪些属性 组成等,这是关系数据库逻辑设计所要解决的问题。 其实无论是层次、网状还是关系的,都会遇到如何构造合适的数 据模式即逻辑结构的问题。由于关系模型有严格的数学

2、理论基础 ,并且可以向别的数据模型转换,因此人们往往用关系模型为背 景来讨论这一问题,形成了数据库逻辑设计的一个有力工具 关系数据库的规范化理论。关系模式的形式化定义关系模式R是对关系的描述,它需要由五部分组成: R(U,D,DOM,F) R:关系名; U:组成该关系的属性集合; D:属性组U中属性所来自的域; DOM:为属性到域的映射; F:属性间数据依赖的集合。 F实际上是限定组成关系的各个元组必须满足的完整性约束条件 。在实际中,这些约束或者通过对属性取值范围的限定,如成绩 必须在0到100之间,或者通过属性值间的相互关联(主要体现于 值的相等与否)反映出来,后者称为数据依赖,它是数据库

3、模式 设计的关键。 可以将关系模式简化为一个三元组:R(U,F)。数据依赖的概念数据依赖是通过一个关系中属性间值的相等与否体现出来的数据 间的相互关系,是现实世界属性间相互联系的抽象,是数据内在 的性质,是语义的 体现。 人们已经提出了许多种类型的数据依赖,其中最重要的是 函数依赖(FD:functional dependency)和 多值依赖(MVD:multivalued dependency ) 函数依赖例如: 描述一个学生的关系,可以有学号,姓名,所在系等几个属性, 由于一个学号对应一个学生,一个学生只在一个系,因此当学号 值确定后,姓名及其所在系的值也就唯一地确定了。 属性间的这种依

4、赖关系类似于数学中的 函数的影射关系。 因此说:学号函数决定姓名和所在系,或者说姓名和所在 系函数依赖于学号,记作snosname,snosdept。函数依赖的例子例如: 现在建立一个学校的数据库,面临的对象包括学生(用学号sno描述),系( 用系名sdept描述),系负责人(用其姓名mname描述),课程(用课程名cname 描述)和成绩(grade)。假设数据库模式由一个单一的关系模式组成,R(U ,F)定义如下:U=sno,sdept,mname,cname,grade 现实世界的语义为: 一个系有若干学生,但一个学生只属于一个系;(sno-sdept 是m:1) 一个系只有一名(正职)

5、负责人;(sdept-mname是1:1) 一个学生可以选修多门课程,每门课程有若干学生选修;(sno-cname是 m:n)每个学生所学的每门课程都有一个成绩。(sno,cname-grade是m:1) 只考虑函数依赖这一种数据依赖,从以上事实可以得到属性组U上的一组 函数依赖: F=snosdept, sdept mname, (sno,cname) grade 可以画图表示:CNAMEMNAMESNOSDEPTGRADE图示函数依赖关系不好的关系模式造成的问题上述关系模式存在个问题: 插入异常: 如果一个系刚刚成立,尚无学生,就无法将这个这个系及其系主任的信 息存入数据库。 删除异常:

6、如果某个系的学生全部毕业了,在删除该系学生信息的同时,把这个系 及其系主任的信息也丢掉了。冗余太大: 如每个系主任的姓名重复出现,重复次数与该系每一个学生的每一门功 课的成绩出现的次数一样多。一方面浪费了大量的存储空间,另一方面 ,由于数据冗余存储,系统要付出很大的代价来维护数据库的完整性。 比如某系更换系主任后,就必须逐一修改有关的每一个元组。此成为更 新异常。 总之:上述问题是由于模式中的函数依赖存在某些不好的性质。关系数据库 规范化理论正是用来改造(优化)关系模式,通过分解关系模式来消除 其中不合适的数据依赖,以解决插入异常、删除异常、数据冗余等问题 。解决该问题的办法把该单一的关系模式

7、改造一下,分成三个关系模式: 用R(U,F)描述: S(SNO,SDETPT,SNOSDEPT); SG(SNO,CNAME,GRADE,(SNO,CNAME) GRADE); DEPT(SDEPT,MNAME,SDEPTMNAME);这三个模式都不会发生插入异常、删除异常的毛病,而且数据的冗 余也得到了控制。 三个表之间的参照关系:S(sdept)DEPT (sdept) SG(sno) S(sno)规范化理论(normalization)从 1971起,E.F.Codd提出了规范化理论,使数据库设计的方法走向 完备,规范化理论研究已经取得很多成果。 数据库中的关系模式的每个分量必须是不可分

8、的数据项。这是最基 本的规范化。但是还需要做进一步的分析确定一个好的、没有上 述异常的反映现实世界的模式。 1、首先讨论一个关系的属性间可能存在的不同的依赖情况。 2、然后讨论如何判定关系是否具有某些不合适的性质。 3、直观地描述如何将具有不合适性质的关系转换为更合适的形式。 4、最后按属性间的依赖情况来区分关系被规范化的程度:是1NF, 2NF,3NF,4NF还是5NF。函数依赖的概念大多数的数据依赖是函数依赖(FD),故重点讨论。 定义: 设R(U)是属性集U上的一个关系模式,X和Y 均为U上的真子 集。若R的任意一个可能的关系r中,如果r中不存在两个元组,他 们在X上的属性值相同,而在Y

9、上的属性值不同(或说对于在X上 的每一种取值,在Y上都只有唯一对应的取值),则称“X函数确 定Y”或“Y函数依赖于X”。记作XY。 例子2:指出学生关系中的函数依赖: U=sno,sname,sage,ssex,sclass 现实世界语义: 每个学生只能有唯一的一个学号;学生名称可能重名;学号确定 了,姓名等值都是唯一确定了的。 所以可以得到属性间的函数依赖: F=sno sname, sno sage, sno ssex, sno sclass函数依赖和属性间关系的对应属性之间有三种关系,但并不是每一种关系中都存在函数依赖。在一个关系模式R中,设有属性集X,Y, 如果X和Y之间是“1-1”关

10、系(如学校和校长), 则存在函数依赖:X Y和Y X。如果X和Y之间是“m-1”关系(如学号和姓名), 则存在函数依赖:X Y。如果X和Y之间是“m-n”关系(如学生和课程), 则和之间不存在函数依赖平凡函数依赖和非平凡函数依赖定义1: 在关系模式R(U)中,对于U的子集X和Y,如果X Y,但是Y不 包含于X,则称XY是非平凡函数依赖;如果Y包含于X,则称X Y是 平凡函数依赖。 对于任一个关系模式R,平凡函数依赖是必然成立的,它不反映新的语义 。因此若不特别声明,我们总是讨论非平凡函数依赖。如上例1中: Sno,Cname Cname和Sno,Cname Sno是平凡函数依赖。 Sno,Cn

11、ame Grade是非平凡函数依赖。完全函数依赖与部分函数依赖定义2: 设XY是一个函数依赖,并且对于任何X属于X,X Y 都不成立,则称X Y是一个完全函数依赖,即Y完全函数依赖 于X。记作X Y。如: (sno,cno)grade设XY是一个函数依赖,但不是完全函数依赖,则称X Y是一个部分函数依赖或称Y函数依赖于X的某个真子集。记作 X Y。如(sno,sage) snamefpfp传递函数依赖定义3 设R(U)是一个关系模式,X,Y,Z属于U(U的子集),如 果XY(Y非X的子集),Y X,YZ,则称Z传递依赖于X。如:student关系模式: U=sno,sname,ssex, sa

12、ge,sdept ,mn F=snosdept, sdeptmn, 可以推出mn传递依赖于sno.码和主属性前面我们给出了关系模式的码的非形式化定义,即关系中能唯一 地标识一个元组的某一属性组。这里使用函数依赖的概念来严格 定义关系模式的码。 定义4: 设K为关系模式R(U,F)中的属性或属性组合。若K 完全函数 决定U,则K称为R 的一个候选码(candidate key)。若关系模式 R有多个候选码,则选定其中的一个作为主码(primary key)。 候选关键字(码)中包含的属性称为主属性,不包含在候选关键 字中的属性称为非主属性或非码属性。简单情况下,单个属性是 码。最极端的情况,整个

13、属性组是码,称为全码。 关系模式R中属性组X并非 R的码,但X是另一个关系模式的码, 则称X是R的外部码,也称外码。 码是关系模式中的一个重要概念。 候选码能够唯一地区别关系的元组,是关系模式中一组最重要的 属性。此外,主码和外码一起提供了一个表示关系间联系的手段 。范 式关系数据库中的关系是要满足一定要求的,满足不同程度要求的 为不同范式。 范式:符合某一种规范化级别的关系模式的集合。 目前主要有六种范式: 通常说某一关系模式R 为第n范式,记为RnNF。非规范化关系模式:任意的关系模式。 1NF:每个分量是不可分的数据项。 2NF:非主属性完全函数依赖于码。 3NF:非主属性即不部分依赖于

14、码也不传递依赖于码。 BCNF:所有属性都不部分依赖于码也不传递依赖于码。所有决定因素(属性集)都包含码。 4NF:所有非平凡的多值依赖都是函数依赖。 5NF:连接依赖均由候选码所蕴含。第一范式(1NF)如果一个关系模式R 的所有属性都是不可分的基本数据项,则R属于1NF 。 在任何一个关系数据库系统中,第一范式是对关系模式的一个最起码的 要求,不满足1NF的数据库模式不能 称为关系数据库。 满足1NF的关系模式并不一定是一个好的关系模式, 如:学生成绩SS(sno,sdept,sloc,cno,score)该关系满足第一范式,每个数据项都不可再分割。 候选码:(sno,cno) F=(sno

15、,cno) score,;sdept sloc;sno sdept;sno sloc; (sno,cno) sdept;(sno,cno) sloc假设每个系只住一个地方。SS关系存在以下问题:插入异常(学生未选课,不能插入学生信息)删除异常(删除学生选课时,可能将学生的信息(学号)都删除) 修改复杂(修改一个学生的系,将修改该学生的所有记录) 数据冗余度大:如果一个学生选修了10门课程,那么sdept,sloc会重复存储10次。Snocnosdeptslocscore第二范式(2NF)如果关系模式R1NF,并且每一个非主属性都完全函数依赖于R 的码,则R2NF。 2NF就是不允许关系模式的属

16、性之间有:非主属性部分函数依赖 于码,即所有非主属性都是完全函数依赖于码。 上例子中SS关系模式的问题的原因是 (sno,cno) sdept,(sno,cno) sloc都是部分函数依赖于码。 我们采用投影分解法,将SS分解为两个关系模式: SSS(sno,cno,score)SSD(sno,sdept,sloc) 分解后,非主属性都完全函数依赖于码了,上述问题在一定 程度上得到了一定的解决,但仍然存在问题: 插入异常:如果某系暂且没有学生,则系的信息无法存入数据库。 删除异常:某系学生全部毕业,删除学生信息时,将这个系的信息也丢失了。 修改复杂:系的住处重复存放,若某系学生全部搬迁,则必须修改全部的SLOC属性值 。 数据冗余

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号