任务2SQLServer数据库概念.ppt_第1页
任务2SQLServer数据库概念.ppt_第2页
任务2SQLServer数据库概念.ppt_第3页
任务2SQLServer数据库概念.ppt_第4页
任务2SQLServer数据库概念.ppt_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

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

文档简介

任务2 SQL Server数据库概念,学习目的和要求 本任务讲解SQL Server数据库的概念,内容的理论性较强。 需要了解: SQL Server 的7个系统表。 需要牢固掌握:数据库的类别及数据库结构; SQL Server 2000的数据库对象; SQL Server 系统数据库的概念及作用。 难点: SQL Server 2000的数据库对象。,任务2 关系数据库理论,1. 关系模式设计中的问题 2. 函数依赖 3. 范式 4. 关系模式的规范化 5. 小结,任务2 关系数据库理论,关系数据库的规范化理论主要包括三个方面的内容:函数依赖、范式和模式设计。 其中函数依赖起着核心的作用,是模式分解和模式设计的基础,范式是模式分解的标准。,1.关系模式设计中的问题,关系数据库逻辑设计 针对具体问题,如何构造一个适合于它的数据模式; 数据库逻辑设计的工具关系数据库的规范化理论。,1.关系模式设计中的问题,(1)概念回顾 (2)关系模式的形式化定义 (3)什么是数据依赖 (4)关系模式的简化定义 (5)数据依赖对关系模式影响,(1)概念回顾,关系:描述实体、属性、实体间的联系。 从形式上看,它是一张二维表,是所涉及属性的笛卡尔积的一个子集。 关系模式:用来定义关系。 关系数据库:基于关系模型的数据库,利用关系来描述现实世界。 从形式上看,它由一组关系组成。 关系数据库的模式:定义这组关系的关系模式的全体。,(2)关系模式的形式化定义,关系模式由五部分组成,即它是一个五元组: R(U, D, DOM, F) R: 关系名 U: 组成该关系的属性名集合 D: 属性组U中属性所来自的域 DOM:属性向域的映象集合 F: 属性间数据的依赖关系集合,(3)什么是数据依赖,完整性约束的表现形式 限定属性取值范围:例如学生成绩必须在0-100之间 定义属性值间的相互关连(主要体现于值的相等与否),这就是数据依赖,它是数据库模式设计的关键。,(3)什么是数据依赖,数据依赖 是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系; 是现实世界属性间相互联系的抽象; 是数据内在的性质; 是语义的体现。,(3)什么是数据依赖,数据依赖的类型 函数依赖(Functional Dependency,简记为FD) 多值依赖(Multivalued Dependency,简记为MVD) 其他(如连接依赖)。,(4)关系模式的简化表示,关系模式R(U, D, DOM, F) 简化为一个三元组: R(U, F) 当且仅当U上的一个关系r 满足F时,r称为关系模式 R(U, F)的一个关系,(5)数据依赖对关系模式的影响,例:描述学校的数据库: 学生的学号(Sno)、所在系(Sdept) 系主任姓名(Mname)、课程名(Cname) 成绩(Grade) 单一的关系模式 : Student U Sno, Sdept, Mname, Cname, Grade ,(5)数据依赖对关系模式的影响,学校数据库的语义: 一个系有若干学生, 一个学生只属于一个系; 一个系只有一名主任; 一个学生可以选修多门课程, 每门课程有若干学生选修; 每个学生所学的每门课程都有一个成绩。,(5)数据依赖对关系模式的影响,属性组U上的一组函数依赖F: F Sno Sdept, Sdept Mname, (Sno, Cname) Grade ,关系模式Student(U, F)中存在的问题,1) 数据冗余太大 浪费大量的存储空间 例:每一个系主任的姓名重复出现 2)更新异常(Update Anomalies) 数据冗余 ,更新数据时,维护数据完整性代价大。 例:某系更换系主任后,系统必须修改与该系学生有关的每一个元组。,关系模式Student(U, F)中存在的问题,3)插入异常(Insertion Anomalies) 该插的数据插不进去 例,如果一个系刚成立,尚无学生,我们就无法把这个系及其系主任的信息存入数据库。 4)删除异常(Deletion Anomalies) 不该删除的数据不得不删 例,如果某个系的学生全部毕业了, 我们在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。,(5)数据依赖对关系模式的影响,结论: Student关系模式不是一个好的模式。 “好”的模式: 不会发生插入异常、删除异常、更新异常, 数据冗余应尽可能少。 原因:由存在于模式中的某些数据依赖引起的。 解决方法:通过分解关系模式来消除其中不合适的数据依赖。,2.函数依赖,关系模式中各属性之间相互依赖、相互制约的联系称为数据依赖。 数据依赖一般分为:函数依赖、多值依赖和连接依赖。,(1)函数依赖的定义及性质,1)函数依赖 2)平凡函数依赖与非平凡函数依赖 3)函数依赖的几点说明,1)函数依赖,定义3.1 设关系模式R(U,F), U是属性集,F是U上的函数依赖集,X和Y是U的子集。 若对于R(U)的任意一个可能的关系r,对于X的一个具体值, Y都有唯一的具体值与之对应, 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作XY。 X称为这个函数依赖的决定属性集,Y为依赖属性集。,说明:,1. 函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。 2. 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。 例如“姓名年龄”这个函数依赖只有在不允许有同名人的条件下成立 3. 数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖“姓名年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在, 则拒绝装入该元组。,1)函数依赖,例: Student(Sno, Sname, Ssex, Sage, Sdept) 假设不允许重名,则有: Sno Ssex, Sno Sage , Sno Sdept, Sno Sname, Sname Ssex, Sname Sage Sname Sdept 但Ssex Sage 若XY,并且YX, 则记为XY。 若Y不函数依赖于X, 则记为XY。,2)平凡函数依赖与非平凡函数依赖,在关系模式R(U)中,对于U的子集X和Y, 如果XY,但Y X,则称XY是非平凡的函数依赖; 若XY,但Y X, 则称XY是平凡的函数依赖。 例:在关系SC(Sno, Cno, Grade)中, 非平凡函数依赖: (Sno, Cno) Grade 平凡函数依赖: (Sno, Cno) Sno (Sno, Cno) Cno,平凡函数依赖与非平凡函数依赖(续),对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义,因此若不特别声明, 我们总是讨论非平凡函数依赖。,3)函数依赖的几点说明,函数依赖是语义范畴的概念: 我们只能根据语义来确定一个函数依赖,而不能按照其形式定义来证明一个函数依赖是否成立。,3)函数依赖的几点说明,函数依赖与属性之间的联系类型有关: (1)在一个关系中,若属性X和Y有1:1的关系,则存在函数依赖XY,和YX, 即XY。例如当学生无重名时, Sno Sname (2)若属性X和Y有1:m的关系,则只存在函数依赖XY。 (3)若属性X和Y有m:n的关系,则X、Y之间不存在任何函数依赖关系。,3)函数依赖的几点说明,函数依赖的存在与时间无关: 因为函数依赖是指关系中所有元组应该满足的约束条件,而不是指关系中某个或某些元组所满足的约束条件,所以,当关系中的元组增加、删除或更新后都不能破坏这种函数依赖。因此,必须根据语义来确定属性之间的函数依赖,而不能单凭某一时刻关系中的实际数值来判断。 函数依赖可以保证关系分解的无损连接性。,(2) 函数依赖的分类,1)完全函数依赖与部分函数依赖 2)传递函数依赖,1)完全函数依赖与部分函数依赖,定义3.2 在关系模式R(U)中,如果XY,并且对于X的任何一个真子集X,都有 X Y, 则称Y完全函数依赖于X,记作X Y。 若对于X的任何一个真子集X,都有X Y,则称Y部分函数依赖于X,记作X P Y。,1)完全函数依赖与部分函数依赖,例: 在关系SC ( Sno, Cno, Grade)中, 由于:Sno Grade,Cno Grade, 因此:(Sno, Cno) Grade 由定义可知:只有当决定因素是组合属性时,讨论部分函数依赖才有意义。,2)传递函数依赖,定义3.3 在关系模式R(U)中,如果XY,YZ,且Y X,YX,则称Z传递函数依赖于X。 记作: X T Y 注: 如果YX, 即XY,则Z直接依赖于X。 例: 在关系Std (Sno, Sdept, Mname)中,有: Sno Sdept,Sdept Mname Mname传递函数依赖于Sno, Sno T Mname,2.3 范式(Normal Form),设计任何一种数据库应用系统,不管是层次的、网状的、还是关系的,都会遇到如何构造合适的数据模式即逻辑结构的问题。即应该构造几个关系,每个关系有哪些属性组成,由于关系模型有严格的数学理论基础,并且可向别的数据模型转换,因此人们以关系模型为背景,形成了数据库逻辑设计的一个有力工具关系数据库的规范化理论。,2.3 范式(Normal Form),规范化的基本思想是消除关系模式中的数据冗余,消除数据依赖中的不合适部分,解决数据插入、删除时发生的异常情况。这就要求关系数据库设计出来的关系模式要满足一定的条件。我们把不同的规范化标准表示为范式。由于规范化程度的不同,就产生了不同的范式。满足最基本规范化要求的关系模式叫第一范式,在第一范式上满足一定要求的称为第二范式,以此类推。,2.3 范式(Normal Form),范式是符合某一种级别的关系模式的集合。 关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。 范式的种类: 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) BC范式(BCNF) 第四范式(4NF) 第五范式(5NF),5NF 4NF BCNF 3NF 2NF 1NF,各种范式之间的关系,2.3 范式(Normal Form),各种范式之间存在联系: 某一关系模式R为第n范式,可简记为R n NF。,1. 1NF的定义,定义3.6 1NF的定义 如果一个关系模式R的所有属性均为简单属性,即每个属性都是不可分的基本数据项,则R1NF。 第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。 但是满足第一范式的关系模式并不一定是一个好的关系模式。,1. 1NF的定义,例: 关系模式 SLC(Sno, Sdept, Sloc, Cno, Grade) Sloc为学生住处,假设每个系的学生住在同一个地方。 函数依赖包括: (Sno, Cno) f Grade Sno Sdept (Sno, Cno) P Sdept Sno Sloc (Sno, Cno) P Sloc Sdept Sloc,1. 1NF的定义,SLC的码为(Sno, Cno) SLC满足第一范式。 非主属性Sdept和Sloc部分函数依赖于码(Sno, Cno),SLC不是一个好的关系模式,(1) 插入异常 假设Sno95102,SdeptIS,SlocN的学生还未选课,因课程号是主属性,因此该学生的信息无法插入SLC。 (2) 删除异常 假定某个学生本来只选修了3号课程这一门课。现在因身体不适,他连3号课程也不选修了。因课程号是主属性,此操作将导致该学生信息的整个元组都要删除。,SLC不是一个好的关系模式,(3) 数据冗余度大 如果一个学生选修了10门课程,那么他的Sdept和Sloc值就要重复存储了10次。 (4) 修改复杂 例如学生转系,在修改此学生元组的Sdept值的同时,还可能需要修改住处(Sloc)。如果这个学生选修了K门课,则必须无遗漏地修改K个元组中全部Sdept、Sloc信息。,1. 1NF的定义,原因 Sdept、 Sloc部分函数依赖于码。 解决方法 SLC分解为两个关系模式,以消除这些部分函数依赖 SC(Sno, Cno, Grade) SL(Sno, Sdept, Sloc),1. 1NF的定义,SLC的码为(Sno, Cno) SLC满足第一范式。 非主属性Sdept和Sloc部分函数依赖于码(Sno, Cno),1. 1NF的定义,函数依赖图:,2. 2NF的定义,2NF的定义 定义3.5 若关系模式R1NF,并且每一个非主属性都完全函数依赖于R的码,则R2NF。 例:SLC(Sno, Sdept, Sloc, Cno, Grade) 1NF SLC(Sno, Sdept, Sloc, Cno, Grade) 2NF SC(Sno, Cno, Grade) 2NF SL(Sno, Sdept, Sloc) 2NF,2. 2NF的定义,采用投影分解法将一个1NF的关系分解为多个2NF的关系,可以在一定程度上减轻原1NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。 将一个1NF关系分解为多个2NF的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。,2. 2NF的定义,例:2NF关系模式SL(Sno, Sdept, Sloc)中 函数依赖: SnoSdept SdeptSloc SnoSloc Sloc传递函数依赖于Sno,即SL中存在非主属性对码的传递函数依赖。,2. 2NF的定义,函数依赖图:,2. 2NF的定义,解决方法 采用投影分解法,把SL分解为两个关系模式,以消除传递函数依赖: SD(Sno, Sdept) DL(Sdept, Sloc) SD的码为Sno, DL的码为Sdept。,2. 2NF的定义,SD的码为Sno, DL的码为Sdept。,3. 3NF的定义,定义3.6如果关系模式R2NF,且每一个非主属性都不传递依赖于R的码,则称R属于第三范式(Third Normal Form),简称3NF,记作R3NF。 3NF是一个可用的关系模式应满足的最低范式。也就是说,一个关系模式如果不服从3NF,实际上它是不能使用的。,3. 3NF的定义,例, SL(Sno, Sdept, Sloc) 2NF SL(Sno, Sdept, Sloc) 3NF SD(Sno, Sdept) 3NF DL(Sdept, Sloc) 3NF,3. 3NF的定义,若R3NF,则R的每一个非主属性既不部分函数依赖于候选码也不传递函数依赖于候选码。 如果R3NF,则R也是2NF。 采用投影分解法将一个2NF的关系分解为多个3NF的关系,可以在一定程度上解决原2NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。 将一个2NF关系分解为多个3NF的关系后,并不能完全消除关系模式中的各种异常情况和数据冗余。,5.2.6 BC范式(BCNF),定义5.9 设关系模式R1NF,如果对于R的每个函数依赖XY,若Y不属于X,则X必含有候选码,那么RBCNF。 若RBCNF 每一个决定属性集(因素)都包含(候选)码; R中的所有属性(主,非主属性)都完全函数依赖于码; R3NF(证明) 若R3NF 则 R不一定BCNF。,BCNF,例:在关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。 每一教师只教一门课。每门课由若干教师教,某一学生选定某门课,就确定了一个固定的教师。某个学生选修某个教师的课就确定了所选课的名称 : (S,J)T,(S,T)J,TJ,5.2.6 BCNF,BCNF,STJ3NF (S,J)和(S,T)都可以作为候选码 S、T、J都是主属性 STJBCNF TJ,T是决定属性集,T不是候选码,BCNF,解决方法:将STJ分解为二个关系模式: SJ(S,J) BCNF, TJ(T,J) BCNF 没有任何属性对码的部分函数依赖和传递函数依赖,3NF与BCNF的关系,如果关系模式RBCNF,必定有R3NF 如果R3NF,且R只有一个候选码, 则R必属于BCNF。,BCNF的关系模式所具有的性质, 所有非主属性都完全函数依赖于每个候选码; 所有主属性都完全函数依赖于每个不包含它的候选码; 没有任何属性完全函数依赖于非码的任何一组属性。,2.4 关系模式的规范化,一个低一级范式的关系模式,通过模式分解转化为若干个高一级范式的关系模式的集合,这种分解的过程叫做关系模式的规范化(Normalization) 。 由于低一级的关系模式分解为若干个高一级关系模式的结果不是惟一的,所以有必要讨论分解后的关系模式与原关系模式“等价”的问题。 只有能够保证分解后的关系模式与原关系模式等价,分解方法才有意义。,1. 关系模式规范化的原则,一个关系模式只要其分量是不可分的数据项,就可称它为规范化的关系,但着只是最基本的规范化。 规范化的目的使结构合理,消除存储异常,使数据冗余尽量小,便于插入、删除和更新。 规范化要遵循“一事一地”的基本原则,即一个关系只描述一个实体或者实体间的联系。若多于一个实体,就把它分离出来。因此,所谓规范化,实质上是概念的单一化,即一个关系表示一个实体或一种联系。,1nf 2nf 3nf Bcnf 4nf 5nf,2. 关系模式规范化的步骤,规范化是对原关系进行投影,消除决定属性不是候选码的任何函数依赖。,3. 关系模式规范化的要求,关系模式的规范化过程是通过对关系模式的投影分解来实现的,但是投影分解方法不是唯一的,不同的投影分解会得到不同的结果。在这些分解方法中,只有能够保证分解后的关系模式与原关系模式等价的方法才是有意义的。所以有必要讨论分解后的关系模式与原关系模式“等价”的问题。,3. 关系模式规范化的要求,一般情况下,我们说没有异常弊病的数据库设计是好的数据库设计,一个不好的关系模式也总是可以通过分解转换成好的关系模式的集合。 但是在分解时要全面衡量,综合考虑,视实际情况而定。 对于那些只要求查询而不要求插入、删除等操作的系统,几种异常现象的存在并不影响数据库的操作。这时便不宜过度分解,否则当要对整体查询时,需要更多的多表连接操作,这有可能得不偿失。 在实际应用中,最有价值的是3NF和BCNF,在进行关系模式的设计时,通常分解到3NF就足够了。,3. 关系模式规范化的要求,三种模式分解的“等价”定义 分解具有无损连接性:信息不失真(不增减信息) 分解要保持函数依赖:不破坏属性间存在的依赖关系。 分解既要保持函数依赖,又要具有无损连接性,3. 关系模式规范化的要求,(1) 无损连接性 所谓无损连接性是指,对关系模式分解时,原关系模式下的任一合法关系实例,在分解之后,应能通过自然连接运算恢复起来。无损连接性有时也称为无损分解。 无损连接反映了模式分解的数据等价原则。,3. 关系模式规范化的要求,例: SL(Sno, Sdept, Sloc) F= Sno Sdept , Sdept Sloc , Sno Sloc SL2NF 存在插入异常、删除异常、冗余度大和修改复杂等问题 分解方法可以有多种,3. 关系模式规范化的要求,SL Sno Sdept Sloc 95001 CS A 95002 IS B 95003 MA C 95004 IS B 95005 PH B ,3. 关系模式规范化的要求,1)SL分解为下面三个关系模式: SN(Sno) SD(Sdept) SO(Sloc),分解后的关系为:,SN SD SO Sno Sdept Sloc 95001 CS A 95002 IS B 95003 MA C 95004 PH 95005 ,3. 关系模式规范化的要求,分解后的数据库丢失了许多信息 例如无法查询95001学生所在系或所在宿舍。 如果分解后的关系可以通过自然连接恢复为原来的关系,那么这种分解就没有丢失信息。,3. 关系模式规范化的要求,2) SL分解为下面二个关系模式: NL(Sno, Sloc) DL(Sdept, Sloc) 分解后的关系为: NL DL Sno Sloc Sdept Sloc 95001 A CS A 95002 B IS B 95003 C MA C 95004 B PH B 95005 B ,模式的分解(续),NL DL Sno Sloc Sdept 95001 A CS 95002 B IS 95002 B PH 95003 C MA 95004 B IS 95004 B PH 95005 B IS 95005 B PH,模式的分解(续),NL DL比原来的SL关系多了3个元组 无法知道95002、95004、95005 究竟是哪个系的学生 元组增加了,信息丢失了。,3. 关系模式规范化的要求,3) 将SL分解为下面二个关系模式: ND(Sno, Sdept) NL(Sno, Sloc) 分解后的关系为:,模式的分解(续),ND NL Sno Sdept Sno Sloc 95001 CS 95001 A 95002 IS 95002 B 95003 MA 95003 C 95004 IS 95004 B 95005 PH 95005 B ,模式的分解(续),ND NL Sno Sdept Sloc 95001 CS A 95002 IS B 95003 MA C 95004 CS A 95005 PH B 与SL关系一样,因此没有丢失信息。,3. 关系模式规范化的要求,定义3-7 无损连接性(Lossless Join):设关系模式R(U,F)被分解为若干个关系模式R1(U1,F1),R2(U2,F2),RK(UK,FK),其中U= U1U2UK,且不存在UiUj,Fi为F在Ui上的投影,如果R与R1,R2,RK自然连接的结果相等,则称关系模式R的分解具有无损连接性。 具有无损连接性的分解保证不丢失信息; 无损连接性不一定能解决插入异常、删除异常、修改复杂、数据冗余等问题。,3. 关系模式规范化的要求,第三种分解方法具有无损连接性 问题: 这种分解方法没有保持原关系中的函数依赖 SL中的函数依赖SdeptSloc 没有投影到关系模式ND、NL上,3. 关系模式规范化的要求,定义3-8 函数依赖保持性(Preserve Dependency):设关系模式R(U,F)被分解为若干个关系模式R1(U1,F1),R2(U2,F2),RK(UK,FK),其中U= U1U2UK,且不存在UiUj,Fi为F在Ui上的投影,如果F所蕴含的函数依赖一定也有分解到的某个关系模式中的函数依赖Fi所蕴含,则称关系模式R的分解具有函数依赖保持性。,3. 关系模式规范化的要求,当对关系模式R进行分解时,R的函数依赖集也按相应的模式进行分解。如果分解后总的函数依赖集与原函数依赖集保持一致,则称保持依赖。 保持依赖反映了模式分解的依赖等价原则。依赖等价保证了分解后的模式与原有的模式在数据语义上的一致性。,3. 关系模式规范化的要求,实际上在对模式分解时,除考虑数据等价和依赖等价以外,还要考虑效率。因此保留适量冗余,以达到以空间换时间的目的,这也是模式分解的一个重要原则。,第四种分解方法,将SL分解为下面二个关系模式: ND(Sno, Sdept) DL(Sdept, Sloc) 这种分解方法就保持了函数依赖。,3. 关系模式规范化的要求,无损连接性和函数依赖保持性是两个相互独立的标准。具有无损连接性的分解不一定具有函数依赖保持性。同样,具有函数依赖保持性的分解不一定具有无损连接性。,模式的分解(续),如果一个分解具有无损连接性,则它能够保证不丢失信息。 如果一个分解保持了函数依赖,则它可以减轻或解决各种异常情况。 分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接性的分解不一定能够保持函数依赖。同样,保持函数依赖的分解也不一定具有无损连接性。,模式的分解(续),第一种分解方法既不具有无损连接性,也未保持函 数依赖,它不是原关系模式的一个等价分解; 第二种分解方法保持了函数依赖,但不具有无损连 接性; 第三种分解方法具有无损连接性,但未持函数依赖; 第四种分解方法既具有无损连接性,又保持了函数 依赖。,4. 关系模式分解的方法,关系模式分解的基础是键码和函数依赖。当我们对关系模式中属性之间的内在联系做了深入、准确的分析,确定了键码和函数依赖后采用下述方法进行分解。,4. 关系模式分解的方法,方法一 部分依赖归子集;完全依赖随键码 要使不属于第二范式的关系模式“升级”,就要消除非主属性对键码的部分函数依赖。解决的方法就是对原有模式进行分解。分解的关键在于:找出对键码部分依赖的非主属性所依赖的键码的真子集,然后把这个真子集与所有相应的非主属性组合成一个新模式;对键码完全依赖的所有非主属性则与键码组合成另一个新模式。,4. 关系模式分解的方法,例如,对于教学关系模式: U=学号,姓名,年龄,性别,系名,系主任,课程名,成绩; F=学号姓名,学号年龄,学号性别,学号系名,系名系主任, (学号,课程名)成绩,4. 关系模式分解的方法,按照完全函数依赖和部分函数依赖的概念,可以看出成绩完全依赖(学号,课程名);姓名,年龄,性别,系名,系主任函数依赖于学号,而对于(学号,课程名)只是部分依赖。 学生-系(学号,姓名,年龄,性别,系名,系主任) 选课(学号,课程名,成绩)。,4. 关系模式分解的方法,方法二 基本依赖为基础,中间属性作桥梁。 要使不属于第三范式的关系模式“升级”,就要消除非主属性对键码的传递函数依赖。解决的方法非常简单:以构成传递链的两个基本依赖为基础形成两个新的模式,这样既切断了传递链,又保持了两个基本依赖,同时又有中间属性作为桥梁,跨接两个新的模式,从而实现无损的自然连接。,4. 关系模式分解的方法,例如方法一中分解后得到的关系模式学生-系中: U=学号,姓名,年龄,性别,系名,系主任; F=学号姓名,学号年龄,学号性别,学号系名,系名系主任. 考查学生_系关系,会发现由于学生_系的关系模式中存在:学号系名,系名系主任。则:学号系主任。由于键码“学号”与非主属性“系主任”之间存在传递函数依赖,所以学生_系3NF。如果对学生_系关系按方法二的要求进行分解,分解后的关系模式为: 学生(学号,姓名,年龄,性别,系名); 教学系(系名,系主任). 显然分解后的各子模式均属于3NF。,4. 关系模式分解的方法,在这里强调一点:上面介绍的解决部分函数依赖和传递函数依赖的模式的分解方法均为既具有无损连接性,又具有函数依赖保持性的规范化方法。,小 结,在本任务中,我

温馨提示

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

评论

0/150

提交评论