关系数据模型_第1页
关系数据模型_第2页
关系数据模型_第3页
关系数据模型_第4页
关系数据模型_第5页
已阅读5页,还剩48页未读, 继续免费阅读

付费下载

下载本文档

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

文档简介

关系数据模型ODL、E/R到关系模型的转换关系模型的设计理论在联系的双方均有联系的描述→冗余5LocustLn.创建另一模式,包含前述FD中的决定因素及剩余的所有属性((U-X+)∪X)也可以用来验证设计结果的合理性,用其指导优化过程多值依赖(MVD)——按的定义EmpireStrikesBack针对每个元素建立一个元组name→→street,city5LocustLn.1关系模型的基本概念F的闭包是指F逻辑蕴涵的所有函数依赖的集合,记作F+ODL联系→关系描述(续)会产生冗余→需规范化数据依赖是针对数据模式,而不是特定的实例t→c //每位教师只上一门课§3.1关系模型的基本概念逻辑数据模型是用户从数据库所看到的数据模型与DBMS有关层次、网状、关系、面向对象关系数据模型数据结构两维的扁平表数据操作关系代数关系演算数据的完整性实体完整性参照完整性用户定义的完整性现实世界的实体以及实体间的各种联系均用关系表示关系数据库系统是建立在关系模型上的数据库系统关系数据库是表的集合模型和模式数据模型是描述数据的手段数据模式是用给定的数据模型对具体数据的描述属性元组域型值联系关系的联系是通过关联属性的值连接的SnoSnameSsexSagesdept95001张三男25CS95002李四女24CS96101王五男23MA96001赵六男23CS关系(表)属性(列、字段)元组(行、记录)域(string,{男,女})Student(sno,sname,ssex,sage,sdept)关系实例关系→实体集、类关系的实例→元组的集合元组→实体、对象数据库实例→给定时刻数据库中数据的一个快照§3.2从ODL设计到关系设计ODL设计是概念设计的产物(UsingOO)ODL描述→关系模式→实现ODL属性→关系属性原子属性类→关系属性→属性非原子属性(复杂数据类型)必须转换成原子属性记录结构结构的每个item对应一个属性多值集合针对每个值建立一个元组会产生冗余→需规范化ODL属性→关系属性(续)其他类型属性(包、数组、列表)针对每个元素建立一个元组增加一个记数属性,表示包的成员号定长数组扩展为多个属性ODL联系→关系描述单值联系联系的类型为一个类增加一个(组)属性,存放相关类的键码属性(组)将类之间的联系→关系之间的联系ODL联系→关系描述(续)多值联系联系的类型为某个类的集合类型1:N、N:M增加一个键码属性为集合的每个成员建立一个元组其他原始属性重复多次(与集合成员的个数相等)导致大量的冗余,需要规范化键码是必需的选择合适的属性(组)作为键码学号、工号、身份证号…...增加计数属性联系与反向联系在联系的双方均有联系的描述→冗余ODL:双向描述E/R:相关的键码值进行连接§3.3从E/R图到关系的设计E/R与ODL描述的差异联系作为独立的概念←→联系嵌套在类定义中结构化数据←→允许使用集合、聚集类型联系可以有属性←→联系无属性E/R→关系模式→实现实体集到关系的转换非弱实体集实体集名→关系名属性→属性弱实体集为弱实体集建立关系属性:弱实体集的属性+辅助实体集的键码E/R联系到关系的转换用关系表示联系联系名→关系名属性→属性+相关实体集的键码属性(集)多向联系的转换注意,属性的命名§3.4子类结构到关系的转换ODL中的子类一个对象完全属于一个类子类继承其超类的特性E/R中的子类分层结构通过与ISA联系有关的实体集进行扩展用关系表示ODL子类每个子类都有自己的关系包含该子类的所有特性(含继承特性)在一个关系中含有所有属性Movie(title,year,length,filmType,studioName,starName)Cartoon(title,year,length,filmType,studioName,starName,voice)MurderMystery(title,year,length,filmType,studioName,starName,weapon)Cartoon-MurderMystery(title,year,length,filmType,studioName,starName,voice,weapon)与ISA联系有关的实体集拥有相同的键码寻找关系的键码(来自E/R)在联系的双方均有联系的描述→冗余针对每个值建立一个元组关系的实例→元组的集合对给定X的值,则Y的取值与Z的取值无关传递依赖:sno→dept_manager在联系的双方均有联系的描述→冗余对于关系R,若R∈1NF,且所有非平凡的多值依赖,其决定因素是候选码,则R∈4NF。这些属性函数决定该关系的所有其他属性也可以用来验证设计结果的合理性,用其指导优化过程设R(U)是属性集U上的一个关系。Movie(title,year,length,filmType,studioName,starName,voice,weapon)属性→属性+相关实体集的键码属性(集)123mapleSt.在关系模型中表示isa联系子类的信息被分散到上层的几个关系中与ISA联系有关的实体集拥有相同的键码Movie(title,year,length,filmType)Cartoon(title,year)MurderMystery(title,year,weapon)Voice(title,year,name)使用NULL值合并关系将关系描述成一个‘全集’属性:所有可能的属性描述:允许Null值层次越高,取Null值的属性越多Movie(title,year,length,filmType,studioName,starName,voice,weapon)只是一种方法而已作业思考所有带*的练习,并上网查询解答练习3.2.3/3.3.1/3.4.1/3.5.3/§3.5函数依赖数据依赖函数依赖多值依赖数据依赖是针对数据模式,而不是特定的实例函数依赖(FD)属性之间的联系假设给定X属性的值,就知道Y的值,那么X函数决定Y如果R的两个元组在属性A1,A2,…,An上一致,则它们在另一个属性B上也一致,那么A1,A2,…,An函数决定B,记作A1A2…An→BifA1A2…An→B1 then

A1A2…An→B2 A1A2…An→B1B2...Bm

……

A1A2…An→Bm关系的键码如果一个或多个属性的集合{A1A2…An}满足如下条件,则该集合为关系R的键码:1.这些属性函数决定该关系的所有其他属性2.{A1A2…An}的任何真子集都不能函数决定R的所有其他属性超键码包含键码的属性集称为超键码寻找关系的键码(来自E/R)来自实体集的关系的键码就是该实体集的键码属性对于二元联系R:N:M,相关两个实体的键码都是R的键码属性N:1,多端实体集的键码是R的加码属性1:1,任意一端实体集的键码是R的键码对于多向联系R:如果多向联系R有一个箭头指向实体集E,则响应的关系中,除了E的键码以外,至少还存在一个键码。寻找关系的键码(来自ODL)来自ODL的关系的键码不一定就是该类的键码属性对于单值联系R:类C有一个指向类D的单值联系,C的关系中包含D的键码。C的键码仍是相应关系的键码对于多值联系R:被引用类的键码加入到引用类的键码组合称为键码§3.6函数依赖规则分解规则A1A2…An→B1B2...Bm等价于A1A2…An→Bi合并规则A1A2…An→Bi等价于A1A2…An→B1B2...Bm平凡的函数依赖如果对于函数依赖A1A2…An→B,B是A中的一个,则该函数依赖就是平凡的函数依赖平凡依赖是永恒的title,year→title非平凡如果B中至少有一个属性不在A中title,year→year,length完全非平凡如果B中没有一个属性在A中title,year→length计算属性的闭包闭包F的闭包是指F逻辑蕴涵的所有函数依赖的集合,记作F+闭包的意义检验给定的函数依赖是否蕴涵于某个函数依赖集S从给定的函数依赖,可以推导出蕴涵的函数依赖求闭包例:对关系R(A,B,C,D,E,F),给定函数依赖AB→C,BC→AD,D→E,CF→B,求{A,B}+关系的基与最小基任何一个能从中导出关系的所有依赖的给定依赖集,称为该关系的一个基如果一个基的任何真子集都不能推导出该关系的依赖全集,则称此基为最小基求函数依赖的最小基例:对关系R(A,B,C,D),有A→BC,B→C,A→B,AB→C,AC→D,求最小函数依赖集§3.7关系数据库模式设计什么是好的数据库设计体现客观世界的信息无过度的冗余无插入异常无更新复杂无删除异常titleyearlengthfilmTypestudioNamestarNameStarWars1977124colorFoxCarrieFisherStarWars1977124colorFoxMarkHamillStarWars1977124colorFoxHarrisonFordMightyDucks1991104colorDisneyEmilioEstevezWayne’sWorld199195colorParamountDanaCarveyWayne’sWorld199295colorParamountMikeMeyers冗余!更新复杂!删除异常!异常的原因数据依赖的约束解决方法数据库设计的规范化→分解子类的信息被分散到上层的几个关系中关系的实例→元组的集合MarkHamill假设给定X属性的值,就知道Y的值,那么X函数决定YA1A2…An→BmReturnoftheJedi联系作为独立的概念←→联系嵌套在类定义中针对每个值建立一个元组结构的每个item对应一个属性EmpireStrikesBackEmpireStrikesBack分解到高层范式(基于FD)2从ODL设计到关系设计多值依赖(MVD)——按的定义任何一个能从中导出关系的所有依赖的给定依赖集,称为该关系的一个基范式(NormalForms)规范化一个关系满足某个范式所规定的一系列条件时,它就属于该范式可以用规范化要求来设计数据库也可以用来验证设计结果的合理性,用其指导优化过程1NF→2NF→3NF→BCNF→4NF第一范式(1NF)当且仅当一个关系R中,每一个元组的每一个属性只含有一个值时,该关系属于第一范式。要求属性是原子的第二范式(2NF)对于关系R,若R∈1NF,且每一个非主属性完全函数依赖于码,则R∈2NF。不能部分依赖于码sc(sno,sname,cno,grade)sno,cno→gradesno→snamesnocnogradesname完全依赖非完全依赖第三范式(3NF)对于关系R,若R∈2NF,且每个非主属性都不传递依赖于码,则R∈3NF。主属性可以传递依赖于码student(sno,sname,sdept,dept_manager)sno→sname,sdeptsdept→dept_manager传递依赖:sno→dept_managersnosdeptsnamedept_managerBoyce/Codd范式(BCNF)对于关系R,若R∈1NF,且所有非平凡的函数依赖,其决定因素是候选码,则R∈BCNF。sct(s,c,t) //学生,课程,教师t→c //每位教师只上一门课(s,c)→t(s,t)→c //每门课有若干位教师sctstcsct∈3NF,sct∈BCNF最高范式BCNF是基于函数依赖的最高范式但不是数据库模式设计的最高范式范式优化分解{A1,A2,…,An}={B1,B2,…,Bn}∪{C1,C2,…,Cn}分解的要求无损连接B∩C→B或B∩C→C保持依赖范式要求BC分解到高层范式(基于FD)找出一个不符合范式要求的FD(X→Y),并使其右端的属性尽可能地多(求出X+)创建新的模式,包含上述FD的所有(左右)属性(X+的所有属性)创建另一模式,包含前述FD中的决定因素及剩余的所有属性((U-X+)∪X)反复1~3,直至符合范式要求sct∈3NF,sct∈BCNFsct(s,c,t) //学生,课程,教师123mapleSt.在关系模型中表示isa联系5LocustLn.Voice(title,year,name)F的闭包是指F逻辑蕴涵的所有函数依赖的集合,记作F+一个对象完全属于一个类R1(name,title,year)Movie(title,year,length,filmType,studioName,starName)title,year→length123mapleSt.数据库实例→给定时刻数据库中数据的一个快照A1A2…An→B2 A1A2…An→B1B2.数据模式是用给定的数据模型对具体数据的描述§3.8多值依赖BCNF仍有异常namestreetcitytitleyearC.Fisher123mapleSt.HollywoodStarWars1977C.Fisher5LocustLn.MailbuStarWars1977C.Fisher123mapleSt.HollywoodEmpireStrikesBack1980C.Fisher5LocustLn.MailbuEmpireStrikesBack1980C.Fisher123mapleSt.HollywoodReturnoftheJedi1983C.Fisher5LocustLn.MailbuReturnoftheJedi1983多值依赖(MVD)——按的定义多值依赖(MVD)设R(U)是属性集U上的一个关系。X、Y、Z是U的子集,且Z=U-X-Y。关系R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一元组r,给定一对(x,z)值,有一组y的值,这组值仅仅取决于x值,而与z值无关。对给定X的值,则Y的取值与Z的取值无关给定一对(x,z)值,有一组y的值namestreetcitytitleyearC.Fisher123mapleSt.HollywoodStarWars1977C.Fisher123mapleSt.HollywoodEmpireStrikesBack1980C.Fisher123mapleSt.HollywoodReturnoftheJedi1983C.Fisher5LocustLn.MailbuStarWars1977C.Fisher5LocustLn.MailbuEmpireStrikesBack1980C.Fisher5Lo

温馨提示

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

评论

0/150

提交评论