湖南大学数据库复试资料7fef1988-d6fc-45f7-b137-03a8e2f3a8e9_第1页
湖南大学数据库复试资料7fef1988-d6fc-45f7-b137-03a8e2f3a8e9_第2页
湖南大学数据库复试资料7fef1988-d6fc-45f7-b137-03a8e2f3a8e9_第3页
湖南大学数据库复试资料7fef1988-d6fc-45f7-b137-03a8e2f3a8e9_第4页
湖南大学数据库复试资料7fef1988-d6fc-45f7-b137-03a8e2f3a8e9_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

CSEEinHunanUniversityJin-MinYang2016.06,DatabaseSystemsDesignPartIII:Normalization,DatabaseDesignFlowDiagram,IndividualPart1,Modeling(identify,deducerefine,abstract),IndividualPartn,ER-diagram,Relations,RationalRelations,Userview1,Userviewn,Transformation,Normalization,ImplementinparticularDBMS,Requirements,Investigation,analysis,research,ViewStoredprocedure,期望的关系模式特性,设计得好的关系模式具有如下3个重要的属性:1)一个关系是由一组逻辑上相关联的属性构成,也就是说,一个关系(relation)的属性是指一个实体(Entity)或者一个关系(Relationship)的属性.2)无损联接性是指将一个关系分解成2个或多个关系之后,原有的关系能够通过做自然联接来复原,这一点是从关系实例来讲的,也就是从元组来说的,其具体情形看ER建模中的裂口陷进和后面的5范式。3)依赖保留性指将一个关系分解成2个或多个关系,分解前的函数依赖性在分解之后仍然存在,其具体情况看后面的BC范式。,函数依赖理论及其在数据库设计合理性验证中的应用,已知:对于一个关系R,它的属性集合A(A1,A2,An),有函数依赖集F=X1Y1,XjYj,其中XkA,YkA,1ki;应用:判断函数依赖XtYt是否成立;判断Xt是否是R的候选键;计算F的闭包F+,推理出其隐含的所有其它函数依赖(放大)构建F的最小集,也即特征集(精简);.判断两个函数依赖集F和E是否等价;,解决问题的关键策略,对于属性集合X,XkA,在函数依赖集F下的X的闭包X+:是指使用F能确定的所有属性的集合;必须掌握的内容:X+的计算;F+的计算;,LetX+=XRepeat如果F中有某个FD,它的左边是X+的子集.添加该FD的右边的属性到X+.Until(X+不发生改变orX+包含了R得所有属性),判断属性集Xk是否是R的候选键的方法,对于关系R,它的属性集合A,函数依赖集F,对于属性集合Xk,XkA:如果Xk+=A;然后计算Xk的所有真子集的闭包,如果它们都不等于A;那么Xk是R的候选键,否则不是;,两个函数依赖集F和E的等价性,对于两个函数依赖集F和E,如果E中的每一个函数依赖都在F+中,那么就说F覆盖E;F覆盖E的判定方法:对E中的每一个函数依赖XY,基于F,计算X,然后检查Y是否在X+中;如果全部成立,那么F覆盖E;如果F覆盖E,F也覆盖E,那么就说E和F等价(equivalent);F和E等价,那么E+=F+.,函数依赖集的最小集(缩减函数依赖,减炼的过程),对函数依赖集F,如果满足如下三个条件,那么它就是最小集:F中的每一个函数依赖XY,Y只含一个属性;.F的任意真子集,都与F不等价;对F中的任意函数依赖XA,设X的真子集Y,对于F,当用YA替换XA后得到的函数依赖集E,F和E不等价;对于一个函数依赖集,它的最小集,可以说是它的一个特征集;对于一个函数依赖集,它的最小集可能有多个,也即并不唯一;,完全函数依赖(FullFD),定义:对于函数依赖AB,如果从A中去掉任一个属性,依赖关系不再成立,那么AB是一个完全函数依赖。也说,B完全函数依赖于A;如果从A中去掉任一个属性,依赖关系依然成立,那么就说B部分函数依赖于A;例子:enoename(完全FD)eno,enamesalary,title(部分FD,只依赖eno)eno,pnohours,resp(完全FD),作业,13.1613.20;其中13.19中有关4NF部分的判定基于扇子陷进来思考;13.20中有关5NF部分的判定基于裂口陷进来思考;,范式(NormalForms),就关系(Relation)的模式(Schema)合理性而言,可从5个层面来检测关系是否会存在有潜在的冗余和更新异常。当达到第5个层面时,则不会有潜在的冗余和更新异常.共有6个范式:1NF,2NF,3NF,BCNF(Boyce-Codd),4NF,5NF;特征:6个范式中,后面范式比前面范式更严格;比如,3NF比2NF更严格,它对关系(Relation)的模式(Schema),相对于2NF,能够更进一步去除冗余和操作异常。,第一范式(FirstNormalForm)(1NF),一个关系,对它的任意元组,其所有属性的取值都是原子型(atomic)时,就说它满足第一范式。也就是说,满足1NF的关系,它的任意元组的任意属性的取值不能是多个值的集合(即为多值属性),或者是元组的集合;在关系型DBMS中,1NF是基本要求.不满足1NF的关系是一个不规范(unnormalized)的关系.,使一个不满足1NF的关系满足1NF的处理方法,1)拆分(Splitting)法:把一个不满足1NF的关系R拆分成2个关系R1和R2:关系R1:由R中满足1NF的属性构成;关系R2:由R1的主键属性和R中不满足1NF的属性构成,重新确立R2的主键;R1的主键肯定是R2的主键的构成部分,对否?为什么R2中要包含R1的主键属性?2)膨胀(Flattening)方法:把一行扩展成多行,重新确立关系的主键.,注意:拆分后的表,要重新确立其主键!,拆分法,膨胀法,膨胀后的表,要重新确立其主键!,第二范式(SecondNormalForm)(2NF),一个关系R满足2NF,当且仅当:满足1NF;它的所有非主键属性都完全函数依赖于它的主键;,SecondNormalForm(2NF),对于不满足2NF的关系R,进行拆分:对违背2NF的FDXY:计算X+;将关系R拆分成:R1=X+和R2=(R-X+)UX注意:X是R的主键属性集的真子集.,ThirdNormalForm(3NF),3NF是基于传递依赖概念而来的.传递依赖:是指函数依赖:AC是基于FD:AB和FD:BC推理出来的.一个关系R满足3NF,当且仅当:满足2NF;不存在非主键属性传递依赖于它的主键;,ThirdNormalForm(3NF),处理方法:按照去除传递依赖的策略是拆分关系R:对于R中的所有传递依赖XY,构建新关系Ri(X,Y);去除R中的属性集Y;,更完备的2NF和3NF,前面的2NFand3NF仅就关系的主键而言,其实还可以考虑所有的候选键(candidatekeys)完备的2NF:对关系R,满足1NF;它的任意候选键X,其它不在X中的属性都完全函数依赖于X;.完备的3NF:对关系R,满足2NF;它的任意候选键X,对其它不在X中的属性,不存在传递依赖于X情况;,更完备的3NF例子,根据3NF的定义,此例不满足3NF,原因是SSN属性不是主键属性;但是满足完备的3NF,因为SSN属性是候选键;.,Emprelation:,fd1,fd2,回答问题,关系R(A,B,C,D,E,F,G,H,I,J),函数依赖集F=A,BC;AD,E;BF;FG,H;DI,J求出R的候选键;把R分解成第二范式和第三范式.,Boyce-CoddNormalForm(BCNF),一个关系满足BCNF,当且仅当:任一确定因子(determinant)都是候选键;对关系R,FD:XY,那么X就为确定因子;3NF和BCNF的差异在于:对FD:XY,如果Y是一个主键的成员属性,并且X不是候选键,3NF对该情况是允许的;BCNF要求X是一个候选键;BCNF比3NF更严格.,不满足BCNF的基本条件,满足3NF而不满足BCNF的情况非常少见;满足3NF而不满足BCNF的基本条件是:至少有两个或以上的组合性候选键;候选键之间存在交集,即它们之间有公共属性。,BCNFversus3NF,分解到BCNF时,不能保证函数依赖性保留(即dependencypreservation不能保证),即对FD:XY,BCNF分解后可能会出现X,Y分别位于不同的关系中,即失去了函数依赖约束;而对于3NF,就不会出现该情况,它能保持住函数依赖性(dependencypreservation);满足3NF而不满足BCNF的情况非常非常少见;就是存在,也可以不考虑;,无损联接依赖Lossless-joinDependency,无损联接属性是指,当分解一个关系后,原有的关系能够通过联接运算复原;无损联接依赖是指,当分解一个关系后,原有的关系能够通过联接运算复原,不会导致多余的元组(即行)出现;要保障无损联接属性,有时有必要把一个关系分解成两个以上的关系.,4NFand5NFinPractice,Inpractice,4NFandespecially5NFarerare.在ER建模中,注意了Fantrap,就能满足4NF;在ER建模中,注意了Chasmtrap,就能满足5NF;,4NF答疑,老师,在书上第四范式给出的例子中BranchStaffOwner(branchNo,sName,cName)中的主键是哪一个呢?该关系有多值依赖如下:brachNo-sName,brachNo-oName,如果是这样的,那么它的主键应该就是branchNo啊?可是看书上它的关系表觉得应该又是(sName,cName).而它满足第四范式后就变成了BranchStaff(branchNo,sName)和BranchOwner(branchNO,oName)同样看其关系表,主键也不是branchNo,对应的应该分别是sName,oName。这是为什么呢?求解,答疑解答,brachNo-sName是一对多关系,即一个分支机构有多个员工,brachNo-oName也是一对多关系,即一个分支机构接待有多个房东。而实际业务需求中,要求关注员工和他负责接待的房东。刚好满足扇子陷阱,因此拆分成BranchStaff(branchNo,sName)和BranchOwner(branchNO,oName)后还不够,没有精准表达(sName,oName)之间的关系,即哪个员工负责接待哪个房东,因此还需要StaffOwner(sName,cName)关系。当然这里有一个假设,也就是branchNO,sName,oName分别充当了实体分支机构,员工,房东的主键。,答疑解答,在这个多值依赖branchNo-sName中branchNo是键吗?答:键是就关系而言的,基本准则就是关系中的元组具有唯一性,唯一性又要根据语义来判断,对BranchStaffOwner(branchNo,sName,cName)而言,键自

温馨提示

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

最新文档

评论

0/150

提交评论