第3章关系数据库的设计理论(1)_第1页
第3章关系数据库的设计理论(1)_第2页
第3章关系数据库的设计理论(1)_第3页
第3章关系数据库的设计理论(1)_第4页
第3章关系数据库的设计理论(1)_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、问题提出问题提出设计关系数据库需要设计关系数据库需要掌握什么知识呢?掌握什么知识呢?可以随便手工凑吗?可以随便手工凑吗?随便凑的数据库有什随便凑的数据库有什么缺点?么缺点?第第3章章 关系数据库的设关系数据库的设计理论计理论知识要求:知识要求: 函数依赖。 范式3.1 3.1 实体类型的属性关系 数据库设计主要采用手工试凑法,缺乏科学理论依据和工程方法的支持,依赖于设计人员的经验和水平,从而难以保证工程的质量,增加了系统维护的代价。 规范法设计从本质上看仍然属于手工设计方法,其基本思想是过程迭代和逐步求精。 目前常用的实用化和产品化的数据库设计工具软件有Oracle公司推出的Design 和s

2、ybase 公司的PowerDesigner,这些工具软件能自动或辅助设计人员完成数据库设计过程中的很多任务,但使用起来还都属于规范法设计方法。I.R.Palmer主张将数据库设计当成一步步的过程并采用一些辅助手段实现每一过程。 基于E-R模型的数据库设计方法、基于3NF(第三范式)的设计方法和基于抽象语法规范的设计方法,都是在数据库设有一定的难度和复杂度 。不规范:产生数据冗余,带来很多问题。规范:提高数据的结构化、共享性、一致性和可操作性。范式:规范化的程度,级别。规范化:在关系数据库中的每个关系都需要进行规范化,使之达到一定的规范化程度。关系数据库的规范化理论主要包括三个方面的内容: 函

3、数依赖 范式(Normal Form) 模式设计其中,函数依赖起着核心的作用,是模式分解和模式设计的基础,范式是模式分解的标准实体的联系模式实体的联系模式 1:1 1:n N:m3.2 数据的函数依赖数据的函数依赖 省省=f(城市城市):只要给出一个具体的城市值,就会有唯一一:只要给出一个具体的城市值,就会有唯一一个省值和它对应,个省值和它对应,如如“广州市广州市”在在“广东省广东省”,这里,这里“城市城市”是自变量是自变量X,“省省”是因变量或函数值是因变量或函数值Y。把把X函数决定函数决定Y,或,或Y函数依赖于函数依赖于X表示为:表示为:XY如果有关系模式如果有关系模式R(A1,A2,An

4、),X和和Y为为A1,A2,An的子集,的子集,则对于关系则对于关系R中的任意一个中的任意一个X值,都只有一个值,都只有一个Y值与之对应,值与之对应,则称则称X函数决定函数决定Y,或,或Y函数依赖于函数依赖于X。 例1:对学生关系模式 Student(Sno, Sname, Sdept, Sage)有以下依赖关系: SnoSname, SnoSdept, SnoSage (Sno, Cno)Grade 函数依赖定义函数依赖定义设有关系模式设有关系模式R(A1,A2,An),X和和Y均为均为A1,A2,An的子集,的子集,r是是R的的任一具体关系,任一具体关系,t1、t2是是r中的任意两个元组;

5、中的任意两个元组;如果由如果由t1X=t2X可以推导出可以推导出t1Y=t2Y,则称,则称X函数决定函数决定Y,或,或Y函数函数依赖于依赖于X,记为,记为XY。在以上定义中特别要注意,只要在以上定义中特别要注意,只要 t1X=t2X t1Y=t2Y成立,就有成立,就有XY。也就是说只有当。也就是说只有当t1X=t2X为真,而为真,而t1Y=t2Y为假为假时,函数依赖时,函数依赖XY不成立;而当不成立;而当t1X=t2X为假时,不管为假时,不管t1Y=t2Y为为真或为假,都有真或为假,都有XY成立。成立。 一些术语和符号一些术语和符号 1.1. 如果如果X XY Y,但,但Y Y不包含于不包含于

6、X X,则称,则称X XY Y是非平凡的函数依赖是非平凡的函数依赖。 2 . . 如果如果X XY Y,但,但Y Y包含于包含于X X,则称,则称X XY Y是平凡的函数依赖是平凡的函数依赖。 若无特别声明,我们讨论的都若无特别声明,我们讨论的都是非平凡的函数依赖是非平凡的函数依赖。术语和符号(续)术语和符号(续) 3.3. 如果如果X XY Y,则,则X X称为称为决定因子决定因子。 4. 4. 如果如果X XY Y,并且,并且Y YX X,则记作,则记作X XY Y。 如果XY成立,并且对于X的某个真子集X 有XY成立,则称Y部分函数依赖于X,并记作:术语和符号(续)术语和符号(续) 如果

7、XY,并且对于X的一个任意真子集X 都有X/Y,则称Y完全函数依赖于X,并记作:YXpYXf如果XY(非平凡函数依赖,并且Y/X)、YZ,则称Z传递函数依赖于X,记作:示例示例 例例1 1:有关系模式:有关系模式SCSC(Sno,Sname,Cno,Credit,GradeSno,Sname,Cno,Credit,Grade),主码),主码为(为(SnoSno, , CnoCno),则函数依赖关系有:),则函数依赖关系有: 示例示例例例2 2:假设有关系模式:假设有关系模式S S( Sno,Sname,Dept,Dept_masterSno,Sname,Dept,Dept_master),其中

8、各),其中各属性分别为:学号、姓名、所在系和系主任(假设一个系只有一个主属性分别为:学号、姓名、所在系和系主任(假设一个系只有一个主任),主码为任),主码为SnoSno,则函数依赖关系有:,则函数依赖关系有: 例如,要求设计成绩关系例如,要求设计成绩关系( (学号学号, ,课程代码课程代码, ,姓名姓名, ,年龄年龄, ,系别系别号,系别名称,成绩号,系别名称,成绩) ) 根据实际情况,这些数据有如下语义规定:根据实际情况,这些数据有如下语义规定:1. 1. 一个系有若干个学生,但一个学生只属于一个系;一个系有若干个学生,但一个学生只属于一个系;2. 2. 一个学生可以选修多门功课,每门课程可

9、有若干学生选一个学生可以选修多门功课,每门课程可有若干学生选修;修;3. 3. 每个学生学习课程有一个成绩。每个学生学习课程有一个成绩。为什么要讨论函数依赖,进为什么要讨论函数依赖,进行规范化行规范化根据上述的语义规定,并分析以上关系中的数据,我们可以看出:根据上述的语义规定,并分析以上关系中的数据,我们可以看出:(学号学号,课程代课程代码码)属性的组合能唯一标识一个元组,所以属性的组合能唯一标识一个元组,所以(学号学号,课程代码课程代码)是该关系模式的主关键是该关系模式的主关键字。但在进行数据库的操作时,会出现以下几方面的问题。字。但在进行数据库的操作时,会出现以下几方面的问题。1. 1.

10、数据冗余数据冗余。每个系别号和系别名称的名字存储的次数等于该系的学生人数每个系别号和系别名称的名字存储的次数等于该系的学生人数乘以每个学生选修的课程门数,同时学生的姓名、年龄也都要重复存储多次,乘以每个学生选修的课程门数,同时学生的姓名、年龄也都要重复存储多次,数据的冗余度很大,浪费了存储空间。数据的冗余度很大,浪费了存储空间。2. 2. 插入异常插入异常。如果某个新系没有招生,尚无学生时,则系别号和系别名称的如果某个新系没有招生,尚无学生时,则系别号和系别名称的信息无法插入到数据库中。信息无法插入到数据库中。 因为在这个关系模式中,因为在这个关系模式中,(学号学号,课程代码课程代码)是主关键

11、字。根据关系的是主关键字。根据关系的实体完实体完整性约束,主关键字的值不能为空,而这时没有学生,学号和课程代码均整性约束,主关键字的值不能为空,而这时没有学生,学号和课程代码均无值,因此不能进行插入操作。无值,因此不能进行插入操作。 另外,当某个学生尚未选课,即课程代码未知,实体完整性约束还规定,另外,当某个学生尚未选课,即课程代码未知,实体完整性约束还规定,主关键字的值不能部分为空,同样不能进行插入操作。主关键字的值不能部分为空,同样不能进行插入操作。3. 3. 删除异常删除异常。 某系学生全部毕业而没有招生时,删除全部学生的记录则系别号、系别名称某系学生全部毕业而没有招生时,删除全部学生的

12、记录则系别号、系别名称也随之删除,而这个系依然存在,在数据库中却无法找到该系的信息。也随之删除,而这个系依然存在,在数据库中却无法找到该系的信息。 另外,如果某个学生不再选修另外,如果某个学生不再选修C1C1课程,本应该只删去课程,本应该只删去C1C1,但,但C1C1是主关系键的是主关系键的一部分,为保证实体完整性,必须将整个元组一起删掉,这样,有关该学生一部分,为保证实体完整性,必须将整个元组一起删掉,这样,有关该学生的其它信息也随之丢失。的其它信息也随之丢失。4. 4. 更新异常。更新异常。 如果学生改名,则该学生的所有记录都要逐一修改姓名;如果学生改名,则该学生的所有记录都要逐一修改姓名

13、; 又如某系更换系名称,则属于该系的学生记录都要修改系别名称的内容,稍又如某系更换系名称,则属于该系的学生记录都要修改系别名称的内容,稍有不慎,就有可能漏改某些记录,这就会造成数据的不一致性,破坏了数据有不慎,就有可能漏改某些记录,这就会造成数据的不一致性,破坏了数据的完整性。的完整性。很显然,该成绩关系不是一个很好的关系范式,需要应用规范化理论进行优化。很显然,该成绩关系不是一个很好的关系范式,需要应用规范化理论进行优化。3.3 应用规范化理论的步骤应用规范化理论的步骤应用规范化理论对上述产生的关系的逻辑模式进行初步优化,以减少乃至消除关系模式中存在的各种异常,改善完整性、一致性和存储效率。

14、规范化理论是数据库逻辑设计的指南和工具,规范化过程可分为两个步骤:确定规范式级别,实施规范化处理。1确定范式级别考查关系模式的函数依赖关系,确定范式等级,逐一分析各关系模式,考查是否存在部分函数依赖,传递函数依赖等,确定它们分别属于第几范式。2实施规范化处理确定范式级别后,利用第4章的规范化理论,逐一考察各个关系模式,根据应用要求,判断它们是否满足规范要求,可用已经介绍过的规范化方法和理论将关系模式规范化。在关系数据库规范中建立了一个范式系列:1NF,2NF,3NF,BCNF,4NF,5NF,一级比一级有更严格的要求。图图 各种范式之间的关系各种范式之间的关系3.3.1 第第1范式范式第一范式

15、(First Normal Form)是最基本的规范形式,即关系中每个属性都是不可再分的简单项。集合、数组和结构不能作为某一属性出现,严禁关系中出现“表中有表”的情况。在任何一个关系数据库系统中,第一范式是关系模式的一个最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。下面右表的关系满足第一范式。姓名姓名电话号码电话号码宿舍宿舍家庭家庭张强张强3208000087110000王丽王丽3208000187110001姓名姓名宿舍宿舍电话电话家庭家庭电话电话张强张强320800003208000187110000王丽王丽87110001很显然,成绩关系很显然,成绩关系(学号学号,课程代码

16、课程代码,姓名姓名,年龄年龄,系别号,系别号,系别名称,姓名,成绩系别名称,姓名,成绩)不可再分,满足第一范式。不可再分,满足第一范式。实质就是实质就是原原子性子性,不可,不可再分割再分割3.3.2 第二范式(第二范式(2NF)在第一范式中进一步满足一些要求为第二范式。如果关系模式在第一范式中进一步满足一些要求为第二范式。如果关系模式R R 1NF1NF,且每,且每个非主属性都个非主属性都完全函数完全函数依赖于依赖于R R的每个关键字,则称的每个关键字,则称R R属于属于第二范式第二范式。(Second Normal Form),简称,简称2NF2NF,记作,记作R R 2NF2NF。对于对于

17、成绩关系成绩关系( (学号学号, ,课程代码课程代码, ,姓名姓名, ,年龄年龄, ,系别号,系别名称,成绩系别号,系别名称,成绩) ) ,学,学号,课程代码为主属性,其余均为非主属性,姓名、年龄、系别号、系别名号,课程代码为主属性,其余均为非主属性,姓名、年龄、系别号、系别名称等并不依赖课程代码主关键字,而只是依赖学号主关键字,不符合第二范称等并不依赖课程代码主关键字,而只是依赖学号主关键字,不符合第二范式的要求。式的要求。解决方法:将原成绩关系分解为两个关系:分解时遵循的基本原则就是解决方法:将原成绩关系分解为两个关系:分解时遵循的基本原则就是“一一事一地事一地”,让一个关系只描述一个实体

18、或者实体间的联系。,让一个关系只描述一个实体或者实体间的联系。1 1)学生系关系)学生系关系( (学号学号, ,姓名姓名, ,年龄年龄, ,系别号,系别名称系别号,系别名称) ),描述学生实体;,描述学生实体;2 2)课程关系(学号)课程关系(学号, ,课程代码课程代码, ,成绩成绩) ),描述学生与课程的联系。,描述学生与课程的联系。3.3.3 第第3范式范式 如果关系模式R2NF,且每个非主属性都不传递依赖不传递依赖于R的每个关系键,则称R属于第三范式第三范式(Third Normal Form),简称3NF,记作R3NF。 和2NF的规范化时遵循的原则相同,即“一事一地一事一地”,让一个关系只描述一个实体或者实体间的联系。对于经2NF后的学生系关系(学号,姓名,年龄,系别号,系别名称),仍有下述问题;1数据冗余。每个系别号和系别名称的名字存储的次数等于该系的学生人数。2插入异常。当一个新系没有招生时,有关该系的信息无法插入。3删除异常。某系学生全部毕业而没有招生时,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论