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

下载本文档

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

文档简介

1、关系数据库设计理论,一函数依赖,1.关系模式中的数据依赖一个关系模式应当是一个五元组。R(U,D,DOM,F)R是关系名;U是一组属性;D是属性组U中属性所来自的域;DOM是属性到域的映射;F是属性组U上的一组数据依赖关系的集合。属性间数据的依赖关系集合F实际上是描述关系的元组定义,限定组成关系的各个元组必须满足的完整性约束条件。在实际应用中,这些约束或者通过对属性的取值范围限定,或者通过属性间的相互关连反映出来。后者称为数据依赖,这是数据库模式设计的关键。,由于D和DOM对模式设计关系不大,因此我们把关系模式看作是一个三元组:RU,F当且仅当U上的一个关系r满足F时,r称为关系模式RU,F的

2、一个关系。,2.数据依赖对关系模式的影响,数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系。它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。现在人们已经提出了许多种类型的数据依赖,其中最重要一个数据依赖是:函数依赖(FunctionalDependency简记为FD),函数依赖(FunctionalDependency简记为FD)函数依赖极为普遍地存在于现实生活中。如学生关系,可有学号(SNO),姓名(SNAME),系名(SDEPT)等几个属性。由于一个学号只对应一个学生,一个学生只在一个系学习。因而当“学号”值确定之后,姓名和该生所在系的值也就被唯一地确

3、定了。就象自变量x确定之后,相应的函数值f(x)也就唯一地确定了一样,我们说SNO函数决定SNAME和SDEPT,或者说SNAME,SDEPT函数依赖于SNO,记为SNOSNAMESNOSDEPT对“学生”关系,可能的一些属性:学号(Sno),系(Sdept),系负责人(Mname),课程(Cname)和成绩(Grade)。,现实世界的已知事实告诉我们(1)一个系有若干学生,但一个学生只属于一个系;(2)一个系只有一名(正职)负责人;(3)一个学生可选修多门课程,每门课程有若干学生选修;(4)每个学生学习每一门课程有一个成绩;我们就得到了一个描述学校的数据库模式SU,F:U=Sno,Sdept

4、,Mname,Cname,GradeF=SnoSdept,SdeptMname,(Sno,Cname)Grade,这组函数依赖如图所示。3.有关概念,Sno,Cname,Grade,Sdept,Mname,(1)函数依赖定义设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个属性在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作XY。若XY,则X叫做决定因素(Determinant)。若XY,YX,则记作XY。若Y不函数依赖于X,则记作XY。,(2)平凡的函数依赖与非平凡的函数依赖定义:在关系模式R(U)中,

5、对U中的子集X,Y,如果XY,但YX,则称XY是非平凡的函数依赖。若YX,则称XY是平凡的函数依赖。对于任一关系模式,平凡的函数依赖都是必然存在的。,(3)完全函数依赖与部分函数依赖定义:在R(U)中,如果XY,并且对于X的任何一个真子集X,都有XY,则称Y对X完全函数依赖,记作:XY。若XY,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作XY。(4)传递依赖定义:在R(U)中,如果XY,YZ,且(YX),YX,则称Z对X传递函数依赖。在关系Std(Sno,Sdept,Mname)中,有SnoSdeptSdeptMnameMname传递依赖Sno。,(5)码定义设K为RU,F中的属性或属

6、性组合,若KU,则称K为R的一个候选码。若R中有多个候选码,则选定其中的一个作为主码。在一个关系模式中,若一个属性或属性组K完全函数决定整个元组,则称K为该关系的一个侯选码。包含在任何一个侯选码中的属性称为主属性,不包含在任何一个侯选码中的属性称为非主属性。,二范式,范式是满足一定函数依赖的关系模式的集合。目前主要有多种范式:第一范式、第二范式、第三范式、BC范式等。满足最低要求的的叫第一范式,简称1NF。在第一范式基础上进一步添加一些要求的为第二范式,简称2NF。其余依次类推。显然各种范式之间存在联系:1NF2NF3NFBCNF,1.第一范式(1NF)定义如果一个关系模式R的所有属性都是不可

7、分的基本数据项,则R1NF。SLC(Sno,Sdept,Sloc,Cno,Grade)1NF不满足1NF的数据库模式不能称为关系数据库。Sloc为学生住处,假设每个系的学生住在同一个地方。SLC的码为(Sno,Cno)。函数依赖包括:(Sno,Cno)GradeSnoSdept(Sno,Cno)SdeptSnoSloc(Sno,Cno)SlocSdeptSloc满足1NF的数据库并一定是一个好的关系模式。例如,SLC关系存在问题:,(1)插入异常:插入一未选课的学生时,,码值未定。无法插入。(2)删除异常:95022只选修了3号课程。现在他连3课程也不选修了。删除3号课程将删除95022的所有

8、信息。(3)数据冗余大:,2.第二范式(2NF)定义若RlNF,且每一个非主属性完全函数依赖于码,则R2NF。SLC不是2NF。将SLC分解为两个关系模式:SC(Sno,Cno,Grade)SL(Sno,Sdept,Sloc)SC的码为(Sno,Cno),SL的码Sno。非主属性Grade、Sdept和Sloc完全函数依赖于码,即SC2NF、SL2NF。此时,可在SL关系中插入尚未选课的学生;删除SC中一个学生的选课记录不会涉及的SL中该学生的记录;不论一个学生选修多少门课程,他的Sdept和Sloc信息只存储一次。2NF的SL(Sno,Sdept,Sloc)仍存在问题:,(1)插入异常:如果

9、某个系刚成立,目前没有在校学生,则无法插入这个系的信息。(2)删除异常:如果某个系的学生全毕业了,删除学生的同时,将系的信息也删掉了。(3)数据冗余大:每个系的学生住在同一个地方,关于系的住处的信息被重复存放。问题所在:SL中的Sloc传递函数依赖Sno。,3.第三范式(3NF)定义关系模式RU,F中若不存在侯选码X、属性Y及非主属性Z(YX),使得XY,YZ和(YX)成立,则R3NF。上述定义说明,若R3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。关系模式SC(Sno,Sname,Sloc)中:SnoSlocSnoSname因此,SC3NF。关系模式SL(Sno,Sdept,Sl

10、oc)中,Sloc传递地依赖Sno因此,SL3NF(但SL2NF),解决办法是将SL分解为:SD(Sno,Sdept)DL(Sdept,Sloc)分解后的关系模式SD与DL中不存在传递依赖。刚成立的系,没有在校学生,其信息可直接插入DL;如果某个系的学生全毕业了,删除SD中学生信息,系的信息仍然存在在DL中;一个系的学生住在同一个地方,系和其住处的信息只存储一次,较好的控制了冗余。,4.BCNF范式定义:如果关系模式R是第一范式,且每个属性都不传递依赖于R的候选码,那么称R是BCNF的模式。从BCNF的定义可明显地得出如下结论:(1)所有非主属性对码是完全函数依赖。(2)所有主属性对不包含它的

11、码是完全函数依赖。(3)没有属性完全函数依赖于非码的任何属性组通常认为BCNF是修正的第三范式,它比3NF又进一步,就是如果在第三范式中,若每一个决定因素都包含码,则该关系就是BCNF。,三关系模式的规范化,一个关系只要其分量都是不可分的数据项,它就是规范化的关系,但这是最基本的规范化。规范化程度有多个级别,一个低一级范式的关系模式,通过分解可以转换为若干高一级范式的关系模式集合,这种过程就叫关系模式的规范化。,1.关系模式规范化的步骤规范化程度过低的关系可能会存在插入异常、删除异常、修改复杂和数据冗余等问题,需要对其进行规范化,转换成高级范式。但在现实世界中,设计数据库模式结构时,应对用户需

12、要做进一步的分析,确定一个合适的模式。,2.关系模式的分解关系模式的分解必须保证分解后的关系模式与原关系模式等价。设关系模式RU,F被分解为若干关系模式R1U1,F1、R2U2,F2,RnUn,Fn若R与R1,R2,。,Rn的自然连接的结果相等,则称关系R的这个分解具有无损连接性。,具有无损连接性的分解才能保证不丢失信息。例如:关系模式SL(Sno,Sdept,Sloc)存在以下依赖关系:SnoSdept,SdeptSloc,SnoSloc假设,SL的一个关系为,第一种分解:SN(Sno)SD(Sdept)SO(Sloc)分解后的数据库丢失了许多信息。,如,无法查询95001学生的所在系或所在宿舍等。

温馨提示

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

评论

0/150

提交评论