《关系数据模型优秀课件.ppt》由会员分享,可在线阅读,更多相关《关系数据模型优秀课件.ppt(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、关系数据模型第1页,本讲稿共53页ODL、E/R到关系模型的转换到关系模型的转换关系模型的设计理论关系模型的设计理论第2页,本讲稿共53页3.1 关系模型的基本概念关系模型的基本概念逻辑数据模型逻辑数据模型是用户从数据库所看到的数据模型是用户从数据库所看到的数据模型与与DBMS有关有关层次、网状、关系、面向对象层次、网状、关系、面向对象第3页,本讲稿共53页关系数据模型关系数据模型数据结构数据结构两维的扁平表两维的扁平表数据操作数据操作关系代数关系代数关系演算关系演算数据的完整性数据的完整性实体完整性实体完整性参照完整性参照完整性用户定义的完整性用户定义的完整性第4页,本讲稿共53页现实世界的
2、实体以及实体间的各种联系均用现实世界的实体以及实体间的各种联系均用关系表示关系表示关系数据库系统是建立在关系模型上的数据关系数据库系统是建立在关系模型上的数据库系统库系统关系数据库是表的集合关系数据库是表的集合第5页,本讲稿共53页模型和模式模型和模式数据模型是描述数据的手段数据模型是描述数据的手段数据模式是用给定的数据模型对具体数据的描数据模式是用给定的数据模型对具体数据的描述述属性属性元组元组域域型型值值联系联系关系的联系是通过关联属性的值连接的关系的联系是通过关联属性的值连接的第6页,本讲稿共53页SnoSnoSnameSnameSsexSsexSageSagesdeptsdept950
3、0195001张三张三男男2525CSCS9500295002李四李四女女2424CSCS9610196101王五王五男男2323MAMA9600196001赵六赵六男男2323CSCS关系关系(表表)属性属性(列、字段列、字段)元组元组(行、记录行、记录)域域(string,男,女男,女)Student(sno,sname,ssex,sage,sdept)第7页,本讲稿共53页关系实例关系实例关系关系 实体集、类实体集、类关系的实例关系的实例 元组的集合元组的集合元组元组 实体、对象实体、对象数据库实例数据库实例 给定时刻数据库中数据的一个给定时刻数据库中数据的一个快照快照第8页,本讲稿共5
4、3页3.2 从从ODL设计到设计到关系设计关系设计ODL设计是概念设计的产物设计是概念设计的产物(Using OO)ODL描述描述 关系模式关系模式 实现实现第9页,本讲稿共53页ODL属性属性 关系属性关系属性原子属性原子属性类类 关系关系属性属性 属性属性非原子属性(复杂数据类型)非原子属性(复杂数据类型)必须转换成原子属性必须转换成原子属性记录结构记录结构结构的每个结构的每个item对应一个属性对应一个属性多值集合多值集合针对每个值建立一个元组针对每个值建立一个元组会产生冗余会产生冗余 需规范化需规范化第10页,本讲稿共53页ODL属性属性 关系属性关系属性(续)(续)其他类型属性其他类
5、型属性(包、数组、列表)(包、数组、列表)针对每个元素建立一个元组针对每个元素建立一个元组增加一个记数属性,表示包的成员号增加一个记数属性,表示包的成员号定长数组定长数组扩展为多个属性扩展为多个属性第11页,本讲稿共53页ODL联系联系 关系描述关系描述单值联系单值联系联系的类型为一个类联系的类型为一个类增加一个(组)属性,存放相关类的键码属性(组)增加一个(组)属性,存放相关类的键码属性(组)将类之间的联系将类之间的联系 关系之间的联系关系之间的联系第12页,本讲稿共53页ODL联系联系 关系描述关系描述(续)(续)多值联系多值联系联系的类型为某个类的集合类型联系的类型为某个类的集合类型1:
6、N、N:M增加一个键码属性增加一个键码属性为集合的每个成员建立一个元组为集合的每个成员建立一个元组其他原始属性重复多次(与集合成员的个数相其他原始属性重复多次(与集合成员的个数相等)等)导致大量的冗余,需要规范化导致大量的冗余,需要规范化第13页,本讲稿共53页键码是必需的键码是必需的选择合适的属性(组)作为键码选择合适的属性(组)作为键码学号、工号、身份证号学号、工号、身份证号.增加计数属性增加计数属性联系与反向联系联系与反向联系在联系的双方均有联系的描述在联系的双方均有联系的描述 冗余冗余ODL:双向描述:双向描述E/R:相关的键码值进行连接:相关的键码值进行连接第14页,本讲稿共53页3
7、.3 从从E/R图到图到关系的设计关系的设计E/R与与ODL描述的差异描述的差异联系作为独立的概念联系作为独立的概念 联系嵌套在类定义中联系嵌套在类定义中结构化数据结构化数据 允许使用集合、聚集类型允许使用集合、聚集类型联系可以有属性联系可以有属性 联系无属性联系无属性E/R 关系模式关系模式 实现实现第15页,本讲稿共53页实体集到关系的转换实体集到关系的转换非弱实体集非弱实体集实体集名实体集名 关系名关系名属性属性 属性属性弱实体集弱实体集为弱实体集建立关系为弱实体集建立关系属性:弱实体集的属性属性:弱实体集的属性+辅助实体集的键码辅助实体集的键码第16页,本讲稿共53页E/R联系到关系的
8、转换联系到关系的转换用关系表示联系用关系表示联系联系名联系名 关系名关系名属性属性 属性属性+相关实体集的键码属性(集)相关实体集的键码属性(集)多向联系的转换多向联系的转换注意,属性的命名注意,属性的命名第17页,本讲稿共53页3.4 子类结构到关系的转换子类结构到关系的转换ODL中的子类中的子类一个对象完全属于一个类一个对象完全属于一个类子类继承其超类的特性子类继承其超类的特性E/R中的子类中的子类分层结构通过与分层结构通过与ISA联系有关的实体集进行扩联系有关的实体集进行扩展展第18页,本讲稿共53页用关系表示用关系表示ODL子类子类每个子类都有自己的关系每个子类都有自己的关系包含包含该
9、子类的所有特性该子类的所有特性(含继承特性)(含继承特性)在一个关系中含有所有属性在一个关系中含有所有属性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,starN
10、ame,voice,weapon)第19页,本讲稿共53页在关系模型中表示在关系模型中表示 isa 联系联系子类的信息被分散到上层的几个关系中子类的信息被分散到上层的几个关系中与与ISA联系有关的实体集拥有相同的键码联系有关的实体集拥有相同的键码Movie(title,year,length,filmType)Cartoon(title,year)MurderMystery(title,year,weapon)Voice(title,year,name)第20页,本讲稿共53页使用使用NULL值合并关系值合并关系将关系描述成一个将关系描述成一个全集全集属性:所有可能的属性属性:所有可能的属性描
11、述:允许描述:允许Null值值层次越高,取层次越高,取Null值的属性越多值的属性越多Movie(title,year,length,filmType,studioName,starName,voice,weapon)只是一种方法而已只是一种方法而已第21页,本讲稿共53页作业作业思考所有带思考所有带*的练习,并上网查询解答的练习,并上网查询解答练习练习3.2.3/3.3.1/3.4.1/3.5.3/第22页,本讲稿共53页3.5 函数依赖函数依赖数据依赖数据依赖函数依赖函数依赖多值依赖多值依赖数据依赖是针对数据模式,而不是特定的实例数据依赖是针对数据模式,而不是特定的实例第23页,本讲稿共5
12、3页函数依赖(函数依赖(FD)属性之间的联系属性之间的联系假设给定假设给定 X 属性的值,就知道属性的值,就知道 Y的值,那么的值,那么 X 函数函数决定决定 Y如果如果R的两个元组在属性的两个元组在属性A1,A2,An上一致,则它们上一致,则它们在另一个属性在另一个属性B上也一致,那么上也一致,那么 A1,A2,An函数决定函数决定B,记作记作A1A2AnBif A1A2AnB1then A1A2AnB2A1A2An B1 B2.Bm A1A2AnBm第24页,本讲稿共53页关系的键码关系的键码如果一个或多个属性的集合如果一个或多个属性的集合A1A2An满足如下条满足如下条件,则该集合为关系
13、件,则该集合为关系R的键码:的键码:1.这些属性函数决定该关系的所有其他属性这些属性函数决定该关系的所有其他属性2.A1A2An的任何真子集都不能函数决定的任何真子集都不能函数决定R的所的所有其他属性有其他属性第25页,本讲稿共53页超键码超键码包含键码的属性集称为超键码包含键码的属性集称为超键码第26页,本讲稿共53页寻找关系的键码(来自寻找关系的键码(来自E/R)来自实体集的关系的键码就是该实体集的键码属性来自实体集的关系的键码就是该实体集的键码属性对于二元联系对于二元联系R:N:M,相关两个实体的键码都是,相关两个实体的键码都是R的键码属性的键码属性N:1,多端实体集的键码是,多端实体集
14、的键码是R的加码属性的加码属性1:1,任意一端实体集的键码是,任意一端实体集的键码是R的键码的键码对于多向联系对于多向联系R:如果多向联系如果多向联系R有一个箭头指向实体集有一个箭头指向实体集E,则响应的关系,则响应的关系中,除了中,除了E的键码以外,至少还存在一个键码。的键码以外,至少还存在一个键码。第27页,本讲稿共53页寻找关系的键码(来自寻找关系的键码(来自ODL)来自来自ODL的关系的键码的关系的键码不一定不一定就是该类的键码属就是该类的键码属性性对于单值联系对于单值联系R:类类C有一个指向类有一个指向类D的单值联系,的单值联系,C的关系中包含的关系中包含D的的键码。键码。C的键码仍
15、是相应关系的键码的键码仍是相应关系的键码对于多值联系对于多值联系R:被引用类的键码加入到引用类的键码组合称为键码被引用类的键码加入到引用类的键码组合称为键码第28页,本讲稿共53页3.6 函数依赖规则函数依赖规则分解规则分解规则A1A2An B1 B2.Bm等价于等价于A1A2An Bi 合并规则合并规则A1A2An Bi等价于等价于A1A2An B1 B2.Bm第29页,本讲稿共53页平凡的函数依赖平凡的函数依赖如果对于函数依赖如果对于函数依赖 A1A2An B,B是是A中的一中的一个,则该函数依赖就是平凡的函数依赖个,则该函数依赖就是平凡的函数依赖平凡依赖是永恒的平凡依赖是永恒的title
16、,year title非平凡非平凡如果如果B中至少有一个属性不在中至少有一个属性不在A中中title,year year,length完全非平凡完全非平凡如果如果B中没有一个属性在中没有一个属性在A中中title,year length第30页,本讲稿共53页计算属性的闭包计算属性的闭包闭包闭包F的闭包是指的闭包是指F逻辑蕴涵的所有函数依赖的集合,记逻辑蕴涵的所有函数依赖的集合,记作作F+闭包的意义闭包的意义检验给定的函数依赖是否蕴涵于某个函数依赖集检验给定的函数依赖是否蕴涵于某个函数依赖集S从给定的函数依赖,可以推导出蕴涵的函数依赖从给定的函数依赖,可以推导出蕴涵的函数依赖求闭包求闭包例:对
17、关系例:对关系R(A,B,C,D,E,F),给定函数依赖给定函数依赖ABC,BCAD,DE,CFB,求求 A,B+第31页,本讲稿共53页关系的基与最小基关系的基与最小基任何一个能从中导出关系的任何一个能从中导出关系的所有所有依赖的依赖的给定依赖集给定依赖集,称为该关系的一个称为该关系的一个基基如果一个基的任何如果一个基的任何真子集真子集都不能推导出该关系的都不能推导出该关系的依赖全集,则称此基为依赖全集,则称此基为最小基最小基求函数依赖的最小基求函数依赖的最小基例:对关系例:对关系R(A,B,C,D),有),有ABC,BC,A B,AB C,AC D,求最小函数依赖集求最小函数依赖集第32页
18、,本讲稿共53页3.7 关系数据库模式设计关系数据库模式设计什么是好的数据库设计什么是好的数据库设计体现客观世界的信息体现客观世界的信息无过度的冗余无过度的冗余无插入异常无插入异常无更新复杂无更新复杂无删除异常无删除异常第33页,本讲稿共53页titleyearlengthfilmTypestudioNamestarNameStar Wars1977124colorFoxCarrie FisherStar Wars1977124colorFoxMark HamillStar Wars1977124colorFoxHarrison FordMighty Ducks1991104colorDisn
19、eyEmilio EstevezWaynes World199195colorParamountDana CarveyWaynes World199295colorParamountMike Meyers冗余冗余!更新复杂更新复杂!删除异常删除异常!第34页,本讲稿共53页异常的原因异常的原因数据依赖的约束数据依赖的约束解决方法解决方法数据库设计的规范化数据库设计的规范化分解分解 第35页,本讲稿共53页范式范式(Normal Forms)规范化规范化一个关系满足某个范式所规定的一系列条一个关系满足某个范式所规定的一系列条件时件时,它就属于该范式它就属于该范式可以用规范化要求来设计数据库可以用
20、规范化要求来设计数据库也可以用来验证设计结果的合理性,用其指导也可以用来验证设计结果的合理性,用其指导优化过程优化过程1NF2NF3NFBCNF4NF第36页,本讲稿共53页第一范式第一范式(1NF)当且仅当一个关系当且仅当一个关系R中,每一个元组的每一个中,每一个元组的每一个属性只含有一个值时,该关系属于第一范式。属性只含有一个值时,该关系属于第一范式。要求属性是原子的要求属性是原子的第37页,本讲稿共53页第二范式第二范式(2NF)对于关系对于关系R,若,若R1NF,且每一个非主属性,且每一个非主属性完全函数依赖于码,则完全函数依赖于码,则R2NF。不能部分依赖于码不能部分依赖于码sc(s
21、no,sname,cno,grade)sno,cnogradesnosnamesnocnogradesname完全依赖完全依赖非完全依赖非完全依赖第38页,本讲稿共53页第三范式第三范式(3NF)对于关系对于关系R,若,若R2NF,且,且每个每个非主属性都非主属性都不传递依赖于码,则不传递依赖于码,则R3NF。主属性可以传递依赖于码主属性可以传递依赖于码student(sno,sname,sdept,dept_manager)snosname,sdept sdeptdept_manager传递依赖:传递依赖:snodept_managersnosdeptsnamedept_manager第39
22、页,本讲稿共53页Boyce/Codd范式范式(BCNF)对于关系对于关系R,若,若R1NF,且,且所有所有非平凡的函数依非平凡的函数依赖,其决定因素是候选码,则赖,其决定因素是候选码,则RBCNF。sct(s,c,t)/学生,课程,教师学生,课程,教师tc/每位教师只上一门课每位教师只上一门课(s,c)t (s,t)c/每门课有若干位教师每门课有若干位教师sctstcsct3NF,sctBCNF第40页,本讲稿共53页最高范式最高范式BCNF是基于函数依赖的最高范式是基于函数依赖的最高范式但不是数据库模式设计的最高范式但不是数据库模式设计的最高范式第41页,本讲稿共53页范式优化范式优化分解
23、分解A1,A2,An=B1,B2,BnC1,C2,Cn分解的要求分解的要求无损连接无损连接BCB或或BCC保持依赖保持依赖范式要求范式要求BC第42页,本讲稿共53页分解到高层范式(基于分解到高层范式(基于FD)1.找出一个不符合范式要求的找出一个不符合范式要求的FD(XY),),并并使其右端的属性尽可能地多(使其右端的属性尽可能地多(求出求出X+)2.创建新的模式,包含上述创建新的模式,包含上述FD的所有(左右)属的所有(左右)属性(性(X+的所有属性的所有属性)3.创建另一模式,包含前述创建另一模式,包含前述FD中的决定因素及剩余中的决定因素及剩余的所有属性的所有属性(U-X+)X)4.反
24、复反复13,直至符合范式要求,直至符合范式要求第43页,本讲稿共53页3.8 多值依赖多值依赖BCNF仍有异常仍有异常namestreetcitytitleyearC.Fisher123 maple St.HollywoodStar Wars1977C.Fisher5 Locust Ln.MailbuStar Wars1977C.Fisher123 maple St.HollywoodEmpire Strikes Back1980C.Fisher5 Locust Ln.MailbuEmpire Strikes Back1980C.Fisher123 maple St.HollywoodRetu
25、rn of the Jedi1983C.Fisher5 Locust Ln.MailbuReturn of the Jedi1983第44页,本讲稿共53页多值依赖(多值依赖(MVD)按按P.110的定义的定义第45页,本讲稿共53页多值依赖(多值依赖(MVD)设设R(U)是属性集是属性集U上的一个关系。上的一个关系。X、Y、Z是是U的子集,且的子集,且Z=U-X-Y。关系。关系R(U)中多值依赖中多值依赖XY成立,当且仅当对成立,当且仅当对R(U)的任一元组的任一元组r,给定给定一对一对(x,z)值,有一组值,有一组y的值的值,这组值仅仅取决于,这组值仅仅取决于x值,而与值,而与z值无关。值
26、无关。对给定对给定X的值,则的值,则Y的取值与的取值与Z的取值无关的取值无关第46页,本讲稿共53页给定一对给定一对(x,z)值,有一组值,有一组y的值的值第47页,本讲稿共53页namestreetcitytitleyearC.Fisher123 maple St.HollywoodStar Wars1977C.Fisher123 maple St.HollywoodEmpire Strikes Back1980C.Fisher123 maple St.HollywoodReturn of the Jedi1983C.Fisher5 Locust Ln.MailbuStar Wars1977
27、C.Fisher5 Locust Ln.MailbuEmpire Strikes Back1980C.Fisher5 Locust Ln.MailbuReturn of the Jedi1983nametitle,year第48页,本讲稿共53页平凡的多值依赖平凡的多值依赖如果如果X包含包含Y或或 XY=U,则,则XY是平凡的多值是平凡的多值依赖依赖性质性质If XY,and YZ then XZ-YIf XY,and Z=U-X-Y then XZIf XY then XY 无分解无分解/合并规则合并规则第49页,本讲稿共53页第四范式(第四范式(4NF)对于关系对于关系R,若,若R1NF,
28、且,且所有所有非平凡的多值非平凡的多值依赖,其决定因素是候选码,则依赖,其决定因素是候选码,则R4NF。基于数据依赖的最高范式基于数据依赖的最高范式分解要求分解要求无损连接无损连接保持依赖保持依赖4NF第50页,本讲稿共53页1983Return of the JediHollywood123 maple St.C.Fisher1980Empire Strikes BackHollywood123 maple St.C.Fisher1983Return of the JediMailbu5 Locust Ln.C.Fisher1980Empire Strikes BackMailbu5 Loc
29、ust Ln.C.Fisher1977Star WarsMailbu5 Locust Ln.C.Fisher1977Star WarsHollywood123 maple St.C.Fisheryeartitlecitystreetnamenametitle,yearnamestreet,cityAll Keyis BCNFisnt 4NFR1(name,title,year)R2(name,street,city)All Keyis 4NF第51页,本讲稿共53页范式间的联系范式间的联系高层范式包含低层范式高层范式包含低层范式分解特性分解特性第52页,本讲稿共53页作业作业思考所有带思考所有带*的练习,并上网查询解答的练习,并上网查询解答练习练习3.7.5/3.8.3/第53页,本讲稿共53页