软考_关系数据库设计理论

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第10章关系数据库设计理论学习目的和要求•关系模式中可能存在的问题•为何存在这些问题•函数依赖•关系模式的规范形式•关系模式的规范化10.1关系模式中可能存在的问题该关系模式中包含的数据语义:①系与学生之间是1∶n的联系;Students(Sid,SName,DName,DDirector,Cid,CName,CScore)1.存在问题的关系模式示例②系与系主任之间是1∶1的联系;③学生与课程之间是m∶n的联系。假定:系及系主任信息再无单独的关系模式分别存放。(1)示例模式1该关系模式中包含的数据语义:①课程与教师之间为1∶n的联系;STC(Sid,Tid,Cid)②学生与课程之间为m∶n的联系。候选键为:(Sid,Cid)和(Sid,Tid)。(2)示例模式2该关系模式中包含的数据语义:①课程与教师之间为m∶n的联系;Teach(CName,TName,RBook)②课程与参考书之间为1∶n的联系。候选键为:(CName,TName,RBook)和(TName,RBook)。(3)示例模式3该关系模式中包含的数据语义:①某供应商供应某零件给某部门,为m:n:l联系。SPD(Sid,Pid,Did)(4)示例模式4其中:Sid为供应商号,Pid为零件号,Did为部门号。其中:CName为课程名,TName为教师名,RBook为参考书名。表现:①元组插不进去;2.存在的问题②插入一个元组却要求插入多个元组。(1)插入异常(InsertAnomaly)表现:①某种信息在关系中存储多次;(3)冗余(Redundancy)表现:①删除时删掉了其他信息;②删除一个元组却删除了多个元组。(2)删除异常(DeleteAnomaly)表现:(4)更新异常(UpdateAnomaly)①更新一个元组却要求更新多个元组。10.2为何存在这些问题数据的语义不但在完整性方面有体现,在关系模式的设计方面也有体现。异常现象产生的根源:关系模式中属性间存在的这些依赖关系。具体表现:在关系模式中的属性间存在一定的依赖关系,此即数据依赖。数据依赖决定因素:由现实系统中属性间相互联系的语义决定。根源的体现及解决:关系的结构。一般,一个关系至少有一/多个候选键,其中之一为主键。主键值唯一决定其他属性值,候选键的值不能重复。如果将各种数据集中于一个模式中,一般都会违背以上限制,从而造成异常。解决异常的方法,是利用规范化理论,对关系模式进行相应的分解,以消除这些异常。数据依赖(DataDependency):指通过一个关系中属性间值的相等与否体现出来的数据间的相互关系。数据依赖分类:函数依赖(FunctionalDependency,FD)、多值依赖(MultivaluedDependency,MVD)和连接依赖(JoinDependency,JD)。10.3函数依赖约定:设R是一关系模式,U是R的属性集合,X、YU,r是R的一个关系实例,元组tR。则用t[X]表示元组t在属性集合X上的值。同时,将关系模式和关系实例统称为关系,XY表示X和Y的并集。函数依赖定义:设R是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R的任意实例r,r中任意两个元组t1和t2,如果t1[X]=t2[X]则t1[Y]=t2[Y],那么称X函数地确定Y,或Y函数地依赖于X,记作:X→Y,X称为决定子(Determinant)。函数依赖关心的问题:是一个或一组属性的值决定其他属性的值。1.函数依赖定义②非平凡函数依赖(NontrivialFD)①平凡函数依赖(TrivialFD)③完全函数依赖(FullFD)函数依赖类型:④部分函数依赖(PartialFD)⑤传递地函数依赖(TransitiveFD)2.函数依赖分类及其定义非平凡函数依赖:如果X→Y,且Y不是X的子集,则称X→Y是非平凡函数依赖。如不特别声明,一般总是讨论非平凡函数依赖。平凡函数依赖:如果YX,则X→Y称为平凡函数依赖。平凡函数依赖不反映新的语义。决定属性集:如果X→Y,则称X为该函数依赖的决定属性集。XY等价:如X→Y,且Y→X,则X与Y一一对应,记作XY。完全函数依赖:设R是一个具有属性集合U的关系模式,如果X→Y,并且对于X的任何一个真子集Z,Z→Y都不成立,则称Y完全函数依赖于X,记作:XY。部分函数依赖:若X→Y,但Y不完全函数依赖于X,则称Y部分函数依赖于X,记作:XY。传递函数依赖:设R是一个具有属性集合U的关系模式,X、Y、ZU,X、Y、Z是不同的属性集。如果X→Y,Y→X不成立,Y→Z,则称Z传递地函数依赖于X。fp⑥(Sid,Cid)SName根据其语义所得的函数依赖有:3.函数依赖示例注意:这些函数依赖的存在,完全是由数据的语义决定的。Students(Sid,SName,DName,DDirector,Cid,CName,CScore)针对示例模式1①Sid→SName②Sid→DName④DName→DDirector⑤(Sid,Cid)CScore⑦(Sid,Cid)DNamefpp③Cid→CName⑧(Sid,Cid)CNamep问题提出:在关系模式的规范化处理过程中,不仅要知道一个给定的函数依赖集合,还要知道由给定的函数依赖集合所蕴涵(或推导出)的所有函数依赖的集合。为此,需要一个有效而完备的公理系统,Armstrong公理系统即是这样的一个系统。4.Armstrong公理系统蕴含定义:设F是R上的函数依赖集合,X→Y是R的一个函数依赖。如果R的一个关系实例满足F,则必然满足X→Y,则称F逻辑蕴含(Imply)X→Y。Armstrong公理:为从已知的函数依赖推导出其他的函数依赖,Armstrong提出了一套推理规则,称为Armstrong公理(Armstrong’sAxioms)。闭包定义:函数依赖集合F所逻辑蕴含的函数依赖的全体,称为F的闭包(Closure),记为F+。(2)增广律(Augmentation):若X→Y,ZU,则XZ→YZ。(1)自反律(Reflexivity):若YXU,则X→Y。(3)传递律(Transitivity):若X→Y和Y→Z,则X→Z。引理1:Armstrong公理是正确的,即:如F成立,则由F根据Armstrong公理所推导的函数依赖总是成立的。引理2:如下三条推理规则是正确的:公理包含如下三条推理规则:(2)伪传递规则(PseudoTransitivity):如果X→Y,YW→Z,则XW→Z。(1)合并规则(Union):如果X→Y,X→Z,则X→YZ。(3)分解规则(Decomposition):如果X→Y,ZY,则X→Z。或:如X→YZ,则X→Y,X→Z。10.4关系模式的规范形式范式之间存在的关系或级别:关系模式中的范式:1NF、2NF、3NF、BCNF、4NF和5NF。1.范式范式(NormalForm,NF):关系模式的规范形式。5NF4NFBCNF3NF2NF1NF范式级别与异常问题之关系:一般,级别越低,出现异常的程度越高。③设计中一般达到3NF或BCNF即可。理想的规范化程度:范式级别越高则规范化程度也越高。②规范程度不一定越高就越好。①1NF和2NF一般作为规范化过程的过渡范式。实际的规范化操作:规范化目的:逐渐消除异常。规范化方法:一般采用分解的办法,将低级别范式向高级别范式转化,使关系的语义单纯化。规范化:将一个给定的关系模式转化为某种范式的过程称为关系模式的规范化过程,简称规范化(Normalization)。2.规范化商用RDBMS要求:关系的属性是原子的,即要求关系起码应为第一范式。INF关系可能的异常:满足1NF是不够的,仍可能出现插入、删除和更新异常。因为可能存在“部分函数依赖”与“传递函数依赖”。例如前面的关系模式示例都是INF,但仍存在异常。非第一范式的关系转换为1NF关系:将复合属性变为简单属性即可。定义:设R是一个关系模式。如果R的每个属性的值域都是不可分的简单数据项的集合,则称该关系模式为第一范式关系模式,记作1NF。(1)第一范式(1NF)以函数依赖为基础的范式种类:第一范式、第二范式、第三范式和BCNF范式。3.以函数依赖为基础的范式其中的函数依赖有:异常:Students(Sid,SName,DName,DDirector,Cid,CName,CScore)1NF异常示例:a.插入异常:插入学生,但学生还未选课,则不能插入;因为主键为(sid,cid)。b.删除异常:如某学生只选了一门课,现要删除学生的该门选课,则该学生信息亦被删除。⑥(Sid,Cid)SName①Sid→SName②Sid→DName④DName→DDirector⑤(Sid,Cid)CScore⑦(Sid,Cid)DNamefpp③Cid→CName⑧(Sid,Cid)CNamepc.冗余:如某学生选修了多门课程,则存在有多行多个字段值的重复存储。d.更新异常:由于存在冗余,故如果某学生要转系,则要修改多行.2NF实质:不存在非键属性“部分函数依赖”于键的情况。2NF关系可能的异常:仍可能存在插入异常、删除异常、更新异常和冗余。因为,还可能存在“传递函数依赖”。非2NF关系或1NF关系向2NF的转换:消除其中的部分函数依赖,一般是将一个关系模式分解成多个2NF的关系模式。即:将部分函数依赖于键的非键属性及其决定属性移出,另成一关系,使其满足2NF。定义:若关系模式R是1NF,而且每一个非键属性都完全函数依赖于R的键,则称该关系模式为第二范式关系模式,记作2NF。(2)第二范式(2NF)(1)Students(Sid,SName,DName,DDirector)Students(Sid,SName,DName,DDirector,Cid,CName,CScore)(2)ElectiveC(Sid,Cid,CScore)分解示例:(3)Course(Cid,CName)2020年2月29日DesignedbyTaoHongcai1710.1关系模式中可能存在的问题该关系模式中包含的数据语义:①系与学生之间是1∶n的联系;Students(Sid,SName,DName,DDirector,Cid,CName,CScore)1.存在问题的关系模式示例②系与系主任之间是1∶1的联系;③学生与课程之间是m∶n的联系。假定:系及系主任信息再无单独的关系模式分别存放。(1)示例模式1该关系模式中包含的数据语义:①课程与教师之间为1∶n的联系;STC(Sid,Tid,Cid)②学生与课程之间为m∶n的联系。候选键为:(Sid,Cid)和(Sid,Tid)。(2)示例模式2其中的函数依赖有:异常:2NF异常示例:a.插入异常:插入尚未招生的系时,不能插入。b.删除异常:如某系学生全毕业,删除学生则会删除系的信息。①Sid→SName②Sid→DName④Sid→DDirector③DName→DDirectorc.冗余:由于系有众多学生,而每个学生均带有系信息,故冗余。d.更新异常:由于存在冗余,故如修改一个系信息,则要修改多行.Students(Sid,SName,DName,DDirector)3NF的得来:3NF是从1NF消除非键属性对键的部分函数依赖和从2NF消除传递函数依赖而得到的关系模式。3NF关系可能的异常:仍可能存在插入异常、删除异常、更新异常和冗余。因为,还可能存在“主属性”“部分函数依赖”于键。2NF关系向3NF的转换:消除传递函数依赖,将2NF关系分解成多个3NF关系模式。定义:若关系模式R是2NF,而且它的任何一个“非键属性”都不传递依赖于R的任何候选键,则称该关系模式为第三范式关系模式,记作3NF。(3)第三范式(3NF)Students(Sid,SName,DName,DDirector)(1)Students(Sid,SName,DName)分解示例:(2)Dept(DName,DDirector)主属性:组成

1 / 38
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功