【教学课件】第三章关系数据模型TheRelationalDataModel.ppt
第三章 关系数据模型The Relational Data Model,ODL、E/R到关系模型的转换关系模型的设计理论,3.1 关系模型的基本概念,逻辑数据模型是用户从数据库所看到的数据模型与DBMS有关层次、网状、关系、面向对象,关系数据模型数据结构两维的扁平表数据操作关系代数关系演算数据的完整性实体完整性参照完整性用户定义的完整性,现实世界的实体以及实体间的各种联系均用关系表示关系数据库系统是建立在关系模型上的数据库系统关系数据库是表的集合,模型和模式数据模型是描述数据的手段数据模式是用给定的数据模型对具体数据的描述属性-二维表中的一列元组-二维表中的一行域-属性的取值范围型值联系关系的联系是通过关联属性的值连接的,Student(sno,sname,ssex,sage,sdept),关系实例关系 实体集、类关系的实例 元组的集合元组 实体、对象数据库实例 给定时刻数据库中数据的一个快照,3.5 函数依赖,数据依赖函数依赖多值依赖数据依赖是针对数据模式,而不是特定的实例,函数依赖(FD)属性之间的联系假设给定 X 属性的值,就知道 Y的值,那么 X 函数决定 Y如果R的两个元组在属性A1,A2,An上一致,则它们在另一个属性B上也一致,那么 A1,A2,An函数决定B,记作A1A2AnBif A1A2AnB1then A1A2AnB2A1A2An B1 B2.Bm A1A2AnBm,关系的键码如果一个或多个属性的集合A1A2An满足如下条件,则该集合为关系R的键码:1.这些属性函数决定该关系的所有其他属性2.A1A2An的任何真子集都不能函数决定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 函数依赖规则,分解规则A1A2An B1 B2.Bm等价于A1A2An Bi 合并规则A1A2An Bi等价于A1A2An B1 B2.Bm,平凡的函数依赖如果对于函数依赖 A1A2An 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),给定函数依赖ABC,BCAD,DE,CFB,求 A,B+,关系的基与最小基任何一个能从中导出关系的所有依赖的给定依赖集,称为该关系的一个基如果一个基的任何真子集都不能推导出该关系的依赖全集,则称此基为最小基求函数依赖的最小基例:对关系R(A,B,C,D),有ABC,BC,A B,AB C,AC D,求最小函数依赖集,3.7 关系数据库模式设计,什么是好的数据库设计体现客观世界的信息无过度的冗余无插入异常无更新复杂无删除异常,更新复杂!,删除异常!,异常的原因数据依赖的约束解决方法数据库设计的规范化分解,范式(Normal Forms)规范化一个关系满足某个范式所规定的一系列条件时,它就属于该范式可以用规范化要求来设计数据库也可以用来验证设计结果的合理性,用其指导优化过程1NF2NF3NFBCNF4NF,第一范式(1NF)当且仅当一个关系R中,每一个元组的每一个属性只含有一个值时,该关系属于第一范式。要求属性是原子的,第二范式(2NF)对于关系R,若R1NF,且每一个非主属性完全函数依赖于码,则R2NF。不能部分依赖于码sc(sno,sname,cno,grade)sno,cnogradesnosname,第三范式(3NF)对于关系R,若R2NF,且每个非主属性都不传递依赖于码,则R3NF。主属性可以传递依赖于码student(sno,sname,sdept,dept_manager)snosname,sdept sdeptdept_manager传递依赖:snodept_manager,Boyce/Codd范式(BCNF)对于关系R,若R1NF,且所有非平凡的函数依赖,其决定因素是候选码,则RBCNF。sct(s,c,t)/学生,课程,教师tc/每位教师只上一门课(s,c)t(s,t)c/每门课有若干位教师,最高范式BCNF是基于函数依赖的最高范式但不是数据库模式设计的最高范式,范式优化分解A1,A2,An=B1,B2,BnC1,C2,Cn分解的要求无损连接BCB或BCC保持依赖范式要求,分解到高层范式(基于FD)找出一个不符合范式要求的FD(XY),并使其右端的属性尽可能地多(求出X+)创建新的模式,包含上述FD的所有(左右)属性(X+的所有属性)创建另一模式,包含前述FD中的决定因素及剩余的所有属性(U-X+)X)反复13,直至符合范式要求,3.8 多值依赖,BCNF仍有异常,多值依赖(MVD)按P.110的定义,多值依赖(MVD)设R(U)是属性集U上的一个关系。X、Y、Z是U的子集,且Z=U-X-Y。关系R(U)中多值依赖XY成立,当且仅当对R(U)的任一元组r,给定一对(x,z)值,有一组y的值,这组值仅仅取决于x值,而与z值无关。对给定X的值,则Y的取值与Z的取值无关,给定一对(x,z)值,有一组y的值,nametitle,year,平凡的多值依赖如果X包含Y或 XY=U,则XY是平凡的多值依赖性质If XY,and YZ then XZ-YIf XY,and Z=U-X-Y then XZIf XY then XY 无分解/合并规则,第四范式(4NF)对于关系R,若R1NF,且所有非平凡的多值依赖,其决定因素是候选码,则R4NF。基于数据依赖的最高范式分解要求无损连接保持依赖4NF,nametitle,yearnamestreet,cityAll Keyis BCNFisnt 4NF,R1(name,title,year)R2(name,street,city)All Keyis 4NF,范式间的联系高层范式包含低层范式分解特性,