数据库系统基础教程精品文稿.ppt
《数据库系统基础教程精品文稿.ppt》由会员分享,可在线阅读,更多相关《数据库系统基础教程精品文稿.ppt(112页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库系统基础教程数据库系统基础教程Principles of Database第1页,本讲稿共112页依赖理论依赖理论n人们采用多种方法为一个应用设计关系数据库模式。n初始的关系模式通常需要改进,尤其在消除冗余方面。一般来说,这些问题是由于模式试图将过多的内容合并到一个关系中而造成的。n依赖理论涉及如何构建一个良好的关系数据库模式,以及当一个模式存在缺陷时如何改进。第2页,本讲稿共112页3.1 函数依赖函数依赖n关系R上的函数依赖是指“如果R的两个元组在属性A1,A2.An上一致,那么它们必定在其他属性B1,B2.Bm上一致.该函数依赖记为:A1,A2.An-B1,B2.Bm。n如果关系R
2、的每个实例都能使一个给定的FD为真,那么称R满足函数依赖f。这是在R上声明了一个约束,而不是仅仅针对R的一个特殊实例。n例3.1 考虑关系nMovies(title,year,length,genre,sudioName,starName)n函数依赖:title year-length genre studioNamentitle year-starName第3页,本讲稿共112页3.1.2 关系的键关系的键n如果下列条件满足,就认为一个或多个属性集A1,A2,.An是关系的键。n这些属性函数决定关系的所有其他属性。也就是说,关系R不可能存在两个不同的元组,它们具有相同的A1,A2,.,An值
3、。n在A1,A2,.An的真子集中,没有一个能函数决定R的所有其他属性。n例3.2 Movies1(title,year,length,genre,sudioName,starName)n键为:(title,year,starName)n有时一个关系可能会有多个键,通常需要指定一个为主键。n超键:一个包含键的属性集叫超键。第4页,本讲稿共112页3.2 函数依赖的规则函数依赖的规则n例3.4 如果关系R(A,B,C)满足FD:A-B和B-C,那么久可以推断出A-C。n对于FD结合S和T 而言,若关系实例集合满足S与其满足T的情况完全一样,就认为S和T等价;n若满足T中所有FD的每个关系实例也满
4、足S中的所有FD,则认为S是由T推断而来的。n当且仅当S是从T中推断而来,并且T也是从S中推断而来,S和T才是等价的。第5页,本讲稿共112页3.2.2分解组合规则分解组合规则nA1,A2.An-B1,B2.Bm等价于下列FD的集合nA1,A2.An-B1,A1,A2.An-B2,.,A1,A2.An-Bm.n分解规则不能应用到FD的左边,例3.6。3.2.3 平凡函数依赖nA1,A2.An-B1,B2.Bm,其中B1,B2.Bm属于A1,A2.An,平凡FD的右边是左边的子集。nFD右边的一些(而不是全部)属性也在左边出现。这个FD不是平凡函数依赖。n平凡依赖规则:A1,A2.An-B1,B
5、2.Bm等价于A1,A2.An-C1,C2,.Ck,Ci是集合B而不是集合A中的属性。第6页,本讲稿共112页3.2.4 计算属性的闭包计算属性的闭包n假设A1,A2,.,An是属性集合,S是FD的集合,s集合下的属性集合A1,A2,.,An的闭包是满足下面条件的属性集合B:每一个满足S中所有FD的关系,也同样满足A1A2.An-B.记为A1,A2,.,An+.n算法3.7 属性集合的闭包n例3.8 考虑含有属性A,B,C,D,E,F的关系.假设此关系包含FD:AB-C,BC-AD,D-E和CF-B,求A,B+n通 过 计 算 任 一 属 性 集 合 的 闭 包,尅 判 断 任 一 给 定 的
6、 FD A1A2.An-B是否可以由FD集合S推断.n例3.9 考虑上题中关系和FD集合,判断AB-D水哦能从该FD集合推断.第7页,本讲稿共112页3.2.6传递规则传递规则n若关系R中FD A1A2.An-B1B2.Bm和B1B2.Bm-C1C2.Ck都成立,那么FD A1A2.An-C1C2.Ck在R中成立。n如果C中属性属于A,则可根据平凡依赖规则把它们从右边消除。n例3.10ntitle year-studioNamenstudioName-studioAddr第8页,本讲稿共112页3.2.7 函数依赖的闭包集合函数依赖的闭包集合n如果给定一个FD集合S(例如在某个关系中成立的FD
7、集合),则任何核S等价的FD结合都被称为S的等价集。我们关心的是一个关系完全FD集合的等价集。n满足下面三个条件的等价集B称为关系的最小化基本集。nB中所有FD的右边均为单一属性。n从B中删除任何一个FD后该集合不再是基本集。n对于B中任何一个FD,如果从其左边删除一个或多个属性,B将不再是基本集。n例3.11 考虑关系R(A,B,C),它的任一个属性都能函数决定其他两个属性。第9页,本讲稿共112页3.2.8 投影函数依赖投影函数依赖n假设有一个含有FD集合S的关系R,通过计算R1=L(R)对其部分属性进行投影。那么R1中有哪些FD成立?n算法3.12n例3.13第10页,本讲稿共112页3
8、.3关系数据库模式设计关系数据库模式设计n不仔细选择关系数据库模式会带来冗余和相应的异常。titleyearlengthgenrestudioNamestarNameStar warsStar warsstar warsMight DucksWaynes worldWaynes world19771977 19771991199219921241241241049595SciFiSciFiSciFiComedyComedyComedyFOXFoxFoxDisneyParamountParamountCarrie FisherMark HamillHarrison FordHarrison Fo
9、rdDana CarveyMike Meyers第11页,本讲稿共112页3.3.1异常异常1.冗余:信息在多个元组中重复。2.更新异常:可能修改了某个元组的信息,但没有修改其他元组中的相同信息。3.删除异常:如果一个值集变成空集,则可能带来丢失信息的副作用。n3.3.2 分解关系n给定一个关系R(A1,A2,.,An),把他分解为关系S(B1,B2,.,Bm)和T(C1,C2,.,Ck),并且满足:1.A1,A2,.,An=B1,B2,.,Bm U C1,C2,.,Ck2.S=B1,B2,.,Bm(R)3.T=C1,C2,.,Cm(R)第12页,本讲稿共112页titleyearlength
10、filmTypestudioNameStar wars Might DucksWaynes World19771991199212410495ColorColorColorFoxDisneyParamounttitleyearstarNameStar wars Star warsStar warsMight DucksWaynes WorldWaynes World197719771977199119921992Carrie FisherMark HamillHarrison FordEmilio EstevezDana CarveyMike Meyers第13页,本讲稿共112页3.3.3B
11、oyce-Codd范式范式n一个简单的条件可以保证前面讨论的异常不存在。这个条件称为Boyce-Codd范式。n关系R属于BCNF范式当且仅当:如果R中非平凡FDA1A2.An-B1B2.Bm成立,则A1,A2,.,An是R的超键。n例3.15 图3-6中的关系Movie1不属于BCNF。n例3.16 图3-7的关系Movie2属于BCNFn例3.17 任意一个二元关系都属于BCNF第14页,本讲稿共112页3.3.4分解为分解为BCNFn重复选择适当的分解,可以把任何一个关系模式分解为带有下列重要性质的具有多个属性的子集:1.以这些子集为模式的关系都属于BCNF2.原始关系中的数据都正确地反
12、映在分解后的关系上,即原始关系应能从分解后的几个关系实例中重构。n要遵循的分解而策略是找出违反BCNF条件的非平凡FD A1A2.An-B1B2.Bm,并且A1A2,.,An不是超键。然后尽可能地向FD的右边增加由A1,A2,.,An决定的属性。n其中一个模式包含了上述FD的所有属性,而另一个包含了该FD左边的属性和不属于该FD的所有属性。第15页,本讲稿共112页n例3.18考虑关系Movies1(title,year,length,genre,studioName,starName)title year-length genre studioNamen例3.19 考虑具有如下模式的关系:t
13、itle,year,studioName,president,presAddr title year-studioName studioName-president president-presAddrn键为title,yearn第一步分解:StudioName-president;在右边添加StudioName决定的属性presAddr,于是为StudioName-president,presAddr;n得到title,year,studioName和sudioName,president,presAddrn第二步对sudioName,president,presAddr进行分解。npres
14、ident-presAddr第16页,本讲稿共112页3.4分解的优劣分解的优劣n分解应当具有以下三个性质:n消除异常n信息的可恢复。是否能够从分解后的各个元组中恢复原始关系。n依赖的保持:如果FD的投影在分解后的关系上成立,能否确保对分解后的关系用连接重构获取的原始关系仍然满足原来的FD?n3.4.1 从分解中恢复信息n使用3.20算法进行分解,其中所有的分解都起因于一个违反BCNF的FD,那么将原始元组的投影进行连接就可以生成所有原始元组,且仅生成原来那些原组。n考虑关系R(A,B,C)和一个违反BCNF的FD B-C,分解为(,)和R2(b,c)n如t=(a,b,c),投影后再连接能得到
15、(a,b,c)n另一方面,如R中有元组t=(a,b,c)和v=(d,b,e),投影后再进行自然连接,不会产生伪元组。第17页,本讲稿共112页nX,Y,Z是属性集,R的属性集为XUYUZ,那么R=XUY(R)YUZ(R)n例3.21 R(A,B,C),但关系中不存在A-B,B-C.ABC142235第18页,本讲稿共112页3.4.4 依赖的保持依赖的保持n在某些情况下,把一个关系分解为一系列BCNF关系时,无法同时拥有无损连接和依赖保持两种性质。n例3.25考虑关系Bookings(title,theater,city)ntheater-city,title city-theatern键:t
16、itle,city theater,titlenBCNF违例:theater-city,分解结果为theater,city,theater,titlen原关系满足title city-theater,但分解后的关系进行连接操作后,产生的关系却不满足title city-theater。第19页,本讲稿共112页theatercityGuildParkMenlo ParkMenlo ParktheatertitleGuildParkAntzAntztheatercitytitleGuildParkMenlo ParkMenlo ParkAntzAntz第20页,本讲稿共112页3.5 第三范式第
17、三范式n关系R属于第三范式,如果它满足:n只要A1A2.An-B1B2.Bm是非平凡FD,那么或者A1,A2,.,An是超键,或者每个属于B1,B2,.,Bm但不属于A的属性都是某个键的成员。n如果一个属性是某个键的成员,则常被称为“主属性”。因此3NF可以概括为:对于每个非平凡FD,或者其左边是超键,或者其右边仅由主属性构成。第21页,本讲稿共112页3.5.2 3NF模式综合算法模式综合算法n算法3.26 具有无损连接和依赖保持性质的3NF关系综合算法1.找出F的一个最小基本集,记为G。2.对于G中的每一个FD X-A,将XA作为分解出的某个关系的模式3.如果第2步分解出的关系的模式均不包
18、含R的超键,则增加一个关系,其模式为R的任何键。n例3.27 考虑关系R(A,B,C,D,E),其上有FD:AB-C,C-B,A-D。n上述FD集就是最小化基本集。S1(A,B,C),S2(B,C),S3(A,B),增加一个S4(A,B,E)(R的键有两个A,C,E,A,B,E第22页,本讲稿共112页第第4章章 高级数据库模型高级数据库模型思考高级设计关系数据库模式关系DBMS第23页,本讲稿共112页4.1 E/R模型模型n4.1.1实体集n4.1.2属性:实体集具有相关的属性,属性是这个实体集中实体所具有的性质。n4.1.3联系:两个或多个实体集的连接。n4.1.4实体-联系图:是描述实
19、体集、属性和联系的图示。第24页,本讲稿共112页MoviesStarsStudiosStars-inOwnsnameaddresstitleyearlengthgenrenameaddress第25页,本讲稿共112页4.1.5 E/R图实例图实例n一个E/R图描述的数据库包含特定的数据,称为数据库实例。n对于每个实体集,数据库实例都有一个特定的有限实体集合。n联系集:连接n个实体集E1,E2,.,En的联系R的一个实例由元组(e1,e2,.en)的有限集构成。MoviesStarsBasic InstinctTotal Recall Total RecallSharon StoneArno
20、ld SchwarzenggerSharon Stone第26页,本讲稿共112页4.1.6 二元二元E/R联系的多样性联系的多样性n二元联系能将一个实体集中任意数目的实体与另一个实体集中任意数目的实体相连接。n如果E中的任一实体可以通过R和F中的至多一个实体连接,那么说R是从E到F的多对一联系n如果R既是从E到F的多对一联系,又是从F到E的多对一联系,那么R就是一对一联系。n如果R既不是从E到F的多对一联系,又不是从F到E的多对一联系,那么R就是多对多联系。n例4.4第27页,本讲稿共112页4.1.7 多路联系多路联系ContractsStarsMoviesSudios第28页,本讲稿共1
21、12页4.1.8 联系的角色联系的角色n一个联系中一个实体集可能出现两次或多次MoviesSequel-ofSequelOriginal第29页,本讲稿共112页ContractsMoviesStarsStudiosProducing studioStudio of star第30页,本讲稿共112页4.1.9 联系的属性联系的属性n有时需要把属性与联系相连,较之与联系中的任何一个实体集相连更加方便。属性的的值由联系集中对应的整个元组函数决定。ContractsMoviesStarsStudiossalary第31页,本讲稿共112页4.1.10 多路联系到二元联系的转换多路联系到二元联系的转
22、换n连接实体集:它的实体被看作是多路联系的联系集的元组。然后,针对组成原来多路联系元组的每个实体集,从连接实体集中引入多对一联系。Star-ofMoviesContractsMovie-ofStarsStudiosStudio ofstarProducing studio第32页,本讲稿共112页4.1.11 E/R模型中的子类模型中的子类n一个实体集中含有一些实体,这些实体拥有集合其他实体成员没有的特殊性质。这就需要定义实体集的子类。n子类实体集与面向对象方法的子类的区别MoviestitleyearlengthgenreisaisaCartoonsMurder-Mysteriesweapo
23、nVoicesStars第33页,本讲稿共112页4.2 设计原则设计原则n忠实性:忠实于应用的具体要求。例4.13n避免冗余:对每件事只说一次。n简单性:除非绝对需要,不要在你的设计中添加更多成分。n选择正确的联系。例4.15.ContractsStarsMoviesSudios第34页,本讲稿共112页选择正确的联系选择正确的联系n例4.16MoviesStarsStudiosStars-inOwnsWorks-for第35页,本讲稿共112页选择正确的元素种类选择正确的元素种类n人们可以选择不同的设计元素的类型来表 示现实世界。很多这样的选择介于是用属性还是用实体集(联系)来表示。n例4
24、.17电影公司是作为实体集还是作为电影的属性?n假设E是一个实体集,如果要把E用一个属性或几个其他实体集的属性代替,必须满足如下条件:1.所有与E有关的联系必须有箭头指向E.2.如果E有几个属性,那么必须没有属性能依赖于其他属性。也就是说,E的唯一键是它所有的属性。3.没有联系包含E多次。n如果这些条件都符合,那么可以这样代替实体集E;1.如果从实体集F到E有多对一联系R,那么删除R并把E的属性作为F的属性。2.如果有多路联系R的箭头指向E,E的属性作为R的属性,并删除从R到E的弧。第36页,本讲稿共112页例例4.18 用多路联系还是用多个二元联系用多路联系还是用多个二元联系n如果只涉及到两
25、个电影公司,用多路联系或连接实体集都是正确的。ContractsMoviesStarsStudiosProducing studioStudio of star第37页,本讲稿共112页Studios-ofMoviesStarsStudiosContractsStar-ofMovie-of假设合同包含一个影星、一部电影和电影公司的任意集合。第38页,本讲稿共112页4.3 E/R模型中的约束模型中的约束n E/R模型中的键:实体集E的键是一个或多个属性的集合K,对于来自于E的不同实体e1,e2,它们对键K中属性没有完全相同的值。n每个实体集必须与一个键。n一个实体集也可以有多个键。但是习惯上只
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 基础教程 精品 文稿
限制150内