ImageVerifierCode 换一换
格式:PPT , 页数:58 ,大小:152KB ,
文档编号:4971245      下载积分:28 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-4971245.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(关系数据库设计理论重点课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

关系数据库设计理论重点课件.ppt

1、第第6 6章章 关系数据库设计理论关系数据库设计理论定西广播电视大学定西广播电视大学 肖武德肖武德本章要点本章要点 1 1深入理解函数依赖和键码的概念。深入理解函数依赖和键码的概念。学会计算属性的封闭集。学会计算属性的封闭集。2 2模式设计是本章的重点。了解数模式设计是本章的重点。了解数据冗余和更新异常产生的根源;理解据冗余和更新异常产生的根源;理解关系模式规范化的途径;准确理解第关系模式规范化的途径;准确理解第一范式、第二范式、第三范式和一范式、第二范式、第三范式和BCBC范范式的含义、联系与区别;式的含义、联系与区别;深入理解模式分解的原则;熟练深入理解模式分解的原则;熟练掌握模式分解的方

2、法,能正确而熟掌握模式分解的方法,能正确而熟练的将一个关系模式分解成属于第练的将一个关系模式分解成属于第三范式或三范式或BCBC范式的模式。范式的模式。3.3.了解多值依赖和第四范式的概念,了解多值依赖和第四范式的概念,掌握把关系模式分解成属于第四范掌握把关系模式分解成属于第四范式的模式的方法。式的模式的方法。学生关系学生关系StudentStudent的实例如下:的实例如下:Sno Sno SN SD MN CN GSN SD MN CN G9923099230贺小华贺小华 计算机计算机 周光周光 OS 96OS 969923999239金金 谦谦 计算机计算机 周光周光 OS 90OS 9

3、09923999239金金 谦谦 计算机计算机 周光周光 编译编译 92 929985199851陈陈 刚刚 建建 筑筑 王勇王勇 建筑建筑 89 89Sno SNSno SDSD MNSno CN G6.1 6.1 函数依赖函数依赖6.1.16.1.1定义定义 如果关系如果关系R R的两个元组在属性的两个元组在属性A1A1,A2A2,AnAn上一致(也就是,两个元组在这些属性上一致(也就是,两个元组在这些属性所对应的各个分量具有相同的值),则它所对应的各个分量具有相同的值),则它们在另一个属性们在另一个属性B B上也一致。那么,我们就上也一致。那么,我们就说在关系说在关系R R中属性中属性B

4、 B函数依赖于属性函数依赖于属性A1A2A1A2AnAn。A1A2A1A2An BAn B,“A1A1,A2A2,AnAn函数决定函数决定B”B”。A1A2A1A2AnAn称为决定因素。称为决定因素。6.1.2 6.1.2 关系的键码关系的键码 如一个或多个属性的集合如一个或多个属性的集合 A1A1,AnAn满足如下条件,称该集合为关系满足如下条件,称该集合为关系R R的键码的键码:1 1这些属性函数决定该关系的所有其这些属性函数决定该关系的所有其它属性。它属性。2.2.A1A1,AnAn的任何真子集都不的任何真子集都不能函数决定能函数决定R R的所有其它属性,键码必须的所有其它属性,键码必须

5、是最小的。是最小的。6.1.3 6.1.3 超键码超键码 包含键码的属性集称为包含键码的属性集称为“超键码超键码”。因此,每个键码都是超键码。因此,每个键码都是超键码。某些超键码不是(最小的)键码。某些超键码不是(最小的)键码。每个超键码都满足键码的第一个条件每个超键码都满足键码的第一个条件 :函数决定它所在的关系的所有其它属性。函数决定它所在的关系的所有其它属性。超键码不必满足键码的第二个条件:最超键码不必满足键码的第二个条件:最小化条件。小化条件。6.1.4 6.1.4 函数依赖规则(函数依赖规则(1 1)分解分解/合并规则合并规则可以把每个函数依赖右边的属性分解,从而使可以把每个函数依赖

6、右边的属性分解,从而使其右边只出现一个属性。同样,我们也可以把其右边只出现一个属性。同样,我们也可以把左边相同的依赖的聚集用一个依赖来表示,该左边相同的依赖的聚集用一个依赖来表示,该依赖的左边没变,而右边则为所有属性组成的依赖的左边没变,而右边则为所有属性组成的一个属性集。两种情况下,新的依赖集都等价一个属性集。两种情况下,新的依赖集都等价于旧的依赖集。于旧的依赖集。函数依赖规则(函数依赖规则(2 2)平凡依赖规则平凡依赖规则对于函数依赖对于函数依赖A1A2A1A2An BAn B来说,如果来说,如果B B是是A A中的某一个,我们就称之为中的某一个,我们就称之为“平凡的平凡的”。对于函数依赖

7、对于函数依赖A1A2A1A2An B1B2An B1B2BmBm,如果如果B B是是A A的子集,则称该依赖为平凡的。的子集,则称该依赖为平凡的。如果如果B B中至少有一个属性不在中至少有一个属性不在A A中,则称该依中,则称该依赖为非平凡的。赖为非平凡的。函数依赖规则(函数依赖规则(2 2)如果如果B B中没有一个属性在中没有一个属性在A A中,则称该中,则称该依赖为完全非平凡的。依赖为完全非平凡的。函数依赖函数依赖A1A2A1A2An B1B2An B1B2BmBm等价于等价于A1A2A1A2An C1C2An C1C2CkCk,其中其中C C是是B B的子集,但不在的子集,但不在A A中

8、出现。中出现。我们称这个规则为我们称这个规则为“平凡依赖规则平凡依赖规则”。函数依赖规则(函数依赖规则(3 3)传递规则传递规则传递规则使我们能把两个函数依赖传递规则使我们能把两个函数依赖级联成一个新的函数依赖。级联成一个新的函数依赖。如果如果A1A2A1A2An B1B2An B1B2BmBm和和B1B2B1B2Bm Bm C1C2 C1C2CkCk,在关系在关系R R中成中成立,则立,则A1A2A1A2An C1C2An C1C2CkCk在在R R中中也成立。这个规则就称为传递规则也成立。这个规则就称为传递规则。6.1.5 6.1.5 计算属性的封闭集计算属性的封闭集 假设假设 A1A1,

9、A2A2,AnAn是属性集,记为是属性集,记为A A,S S是函数依赖集。是函数依赖集。属性集属性集A A在依赖集在依赖集S S下的封闭集是这样的下的封闭集是这样的属性集属性集X X,它使得满足依赖集它使得满足依赖集S S中的所有依中的所有依赖的每个关系也都满足赖的每个关系也都满足A XA X。也就是说,也就是说,A1A2A1A2An XAn X是蕴含于是蕴含于S S中的函数依赖。中的函数依赖。用用 A1A1,An+An+表示属性集表示属性集A1A1AnAn的封闭的封闭集。允许出现平凡依赖,所以集。允许出现平凡依赖,所以A1A1,AnAn在在 A1A1,An+An+中。中。下面我们进一步理解封

10、闭集的下面我们进一步理解封闭集的实际含义:实际含义:对于给定的函数依赖集对于给定的函数依赖集S,属属性集性集A函数决定的属性的集合就函数决定的属性的集合就是属性集是属性集A在依赖集在依赖集S下的封闭下的封闭集。集。学会计算某属性集的封闭集,还可以根学会计算某属性集的封闭集,还可以根据给定的函数依赖集推导蕴含于该依赖集据给定的函数依赖集推导蕴含于该依赖集的其他函数依赖。的其他函数依赖。已知:已知:关系模式关系模式R R(A A,B B,C C,D D)函数依赖函数依赖AB CAB C,C DC D,D AD A求:蕴含于给定函数依赖的所有非平凡函求:蕴含于给定函数依赖的所有非平凡函数依赖。数依赖

11、。首先考虑各种属性组合的封闭集。然后,首先考虑各种属性组合的封闭集。然后,依次分析各属性集的封闭集,从中找出该依次分析各属性集的封闭集,从中找出该属性集所具有的新的函数依赖。属性集所具有的新的函数依赖。单属性:单属性:A+=AA+=A,B+=BB+=B,C+=ACDC+=ACD,D+=ADD+=AD新依赖:新依赖:C AC A (1 1)AB CAB C,C DC D,D AD A双属性:双属性:AB+AB+=ABCD=ABCD,AC+=ACDAC+=ACD,AD+=AD,AD+=AD,BC+BC+=ABCD=ABCD,BD+BD+=ABCD=ABCD,CD+=ACD CD+=ACD 新依赖:

12、新依赖:AB DAB DAC DAC DBC A BC A BD ABD ACD A BC D BD C (7)CD A BC D BD C (7)三属性:三属性:A A B B C C+=ABCD+=ABCD,A A B B D+D+=ABCD=ABCD,ACD+=ACDACD+=ACD,B B C C D+D+=ABCD=ABCD新依赖:新依赖:ABC D ABD C ABC D ABD C BCD ABCD A(3)(3)四属性:四属性:A A B B C C D+D+=ABCD =ABCD 无新依赖无新依赖_键码(键码(3 3)_ _ _ _ _ _ _超键码(超键码(4 4)6.2

13、6.2 模式设计模式设计6.2.16.2.1问题的提出问题的提出设计关系数据库模式时,特别是从面向设计关系数据库模式时,特别是从面向对象的对象的ODLODL设计或从设计或从E/RE/R设计直接向关系设计直接向关系数据库模式转换时,很容易出现的问题数据库模式转换时,很容易出现的问题是冗余性,即一个事实在多个元组中重是冗余性,即一个事实在多个元组中重复。复。造成这种冗余的最常见的原因是,企图造成这种冗余的最常见的原因是,企图把一个对象的单值和多值特性包含在一把一个对象的单值和多值特性包含在一个关系中。个关系中。当我们企图把太多的信息存放在当我们企图把太多的信息存放在一个关系时,就会出现数据冗余和更

14、新一个关系时,就会出现数据冗余和更新异常等问题。主要表现如下:异常等问题。主要表现如下:1 1 数据冗余。数据冗余。2 2 修改异常。修改异常。3 3 删除异常。删除异常。4 4 插入异常。插入异常。参看参看实例实例6.2.2 6.2.2 问题的根源(问题的根源(1 1)关系的键码函数决定该关系的所有其它属性。关系的键码函数决定该关系的所有其它属性。由于键码能唯一确定一个元组,所以,也可以由于键码能唯一确定一个元组,所以,也可以说关系的键码函数决定该关系的所有属性。一说关系的键码函数决定该关系的所有属性。一个关系中的所有属性都函数依赖于该关系的键个关系中的所有属性都函数依赖于该关系的键码。不同

15、的属性在关系模式中所处的地位和扮码。不同的属性在关系模式中所处的地位和扮演的角色是不同的。把键码所在的属性称为主演的角色是不同的。把键码所在的属性称为主属性,而把键码属性以外的属性称为非主属性。属性,而把键码属性以外的属性称为非主属性。问题的根源(问题的根源(2 2)不同的属性对键码函数依赖的性质和程不同的属性对键码函数依赖的性质和程度是有差别的。有的属于直接依赖,有度是有差别的。有的属于直接依赖,有的属于间接依赖(通常称为传递依赖)。的属于间接依赖(通常称为传递依赖)。当键码由多个属性组成时,有的属性函当键码由多个属性组成时,有的属性函数依赖于整个键码属性集,而有的属性数依赖于整个键码属性集

16、,而有的属性只函数依赖于键码属性集中的一部分属只函数依赖于键码属性集中的一部分属性。性。完全依赖与部分依赖完全依赖与部分依赖对于函数依赖对于函数依赖W AW A,如果存在如果存在 V W V W(V V是是W W的真子集)而函数依赖的真子集)而函数依赖 V A V A成立,则称成立,则称A A部分依赖于部分依赖于W W;若不存在这种若不存在这种V V,则称则称A A完全依赖于完全依赖于W W。当存在非主属性对键码部分依赖时,就会产当存在非主属性对键码部分依赖时,就会产生数据冗余和更新异常。若非主属性对键码完全生数据冗余和更新异常。若非主属性对键码完全函数依赖,则不会出现类似问题。函数依赖,则不

17、会出现类似问题。传递依赖传递依赖对于函数依赖对于函数依赖X YX Y,如果如果Y XY X(X X不函数依赖于不函数依赖于Y Y)而函数依赖而函数依赖Y ZY Z成立,成立,则称则称Z Z对对X X传递依赖。传递依赖。如果如果X YX Y,且且Y XY X,则则X X,Y Y相互依相互依赖,这时赖,这时Z Z与与X X之间就不是传递依赖,而之间就不是传递依赖,而是直接依赖了。我们以前所讨论的函数是直接依赖了。我们以前所讨论的函数依赖大多数是直接依赖。依赖大多数是直接依赖。6.2.3 6.2.3 解决的途径解决的途径 部分依赖和传递依赖有一个共同之处,部分依赖和传递依赖有一个共同之处,这就是,二

18、者都不是基本的函数依赖,这就是,二者都不是基本的函数依赖,而都是导出的函数依赖:而都是导出的函数依赖:部分依赖是以对键码的某个真子集的依部分依赖是以对键码的某个真子集的依赖为基础赖为基础传递依赖的基础则是通过中间属性联系传递依赖的基础则是通过中间属性联系在一起的两个函数依赖。在一起的两个函数依赖。导出的函数依赖在描述属性之间的联系导出的函数依赖在描述属性之间的联系方面并没有比基本的函数依赖提供更多方面并没有比基本的函数依赖提供更多的信息。在一个函数依赖集中,导出的的信息。在一个函数依赖集中,导出的依赖相对于基本的依赖而言,虽然从形依赖相对于基本的依赖而言,虽然从形式上看多一种描述方式,但从本质

19、上看,式上看多一种描述方式,但从本质上看,则完全是冗余的。则完全是冗余的。正是由于关系模式中存在对键码的这种正是由于关系模式中存在对键码的这种冗余的依赖导致数据库中的数据冗余和冗余的依赖导致数据库中的数据冗余和更新异常。更新异常。解决的途径解决的途径消除关系模式中消除关系模式中各属性对键码的冗余的依赖。各属性对键码的冗余的依赖。由于冗余的依赖有部分依赖与传由于冗余的依赖有部分依赖与传递依赖之分,而属性又有主属性递依赖之分,而属性又有主属性与非主属性之别,把解决的途径与非主属性之别,把解决的途径分为几个不同的级别,以属于第分为几个不同的级别,以属于第几范式来区别。几范式来区别。范式范式就是符合某

20、一种级别的关系模式的集合。就是符合某一种级别的关系模式的集合。目前主要有六种范式:第一范式、第二范式、目前主要有六种范式:第一范式、第二范式、第三范式、第三范式、BCBC范式、第四范式和第五范式。第一范式、第四范式和第五范式。第一范式需满足的要求最低,在第一范式基础上满足范式需满足的要求最低,在第一范式基础上满足进一步要求的为第二范式:进一步要求的为第二范式:1 1NF 2NF 3NF BCNF 4NF 5NFNF 2NF 3NF BCNF 4NF 5NF 通过分解把属于低级范式的关系模式转换为几通过分解把属于低级范式的关系模式转换为几个属于高级范式的关系模式的集合,这一过程称个属于高级范式的

21、关系模式的集合,这一过程称为规范化为规范化。第一范式(第一范式(1 1NFNF)如果一个关系模式如果一个关系模式R R的所有属性都是不可的所有属性都是不可分的基本数据项,则这个关系属于第一分的基本数据项,则这个关系属于第一范式。范式。在任何一个关系数据库系统中,第一范在任何一个关系数据库系统中,第一范式是对关系模式的一个最起码的要求。式是对关系模式的一个最起码的要求。不满足第一范式的数据库模式不能称为不满足第一范式的数据库模式不能称为关系数据库。关系数据库。第二范式(第二范式(2 2NFNF)l若关系模式若关系模式R R属于第一范式,且每个属于第一范式,且每个非主属性都完全函数依赖于键码,非主

22、属性都完全函数依赖于键码,则则R R属于第二范式。属于第二范式。l第二范式就是不允许关系模式中的第二范式就是不允许关系模式中的非主属性部分函数依赖于键码。非主属性部分函数依赖于键码。学生关系模式学生关系模式Student(Sno,Sname,Sdept,Mname,Cname,Grade)。该关系模式存在如下部分依赖:该关系模式存在如下部分依赖:Sno,CnameSname,Sdept,Mname显然不满足显然不满足“每个非主属性都完全函数依赖于每个非主属性都完全函数依赖于键码键码”的条件。所以学生关系模式不属于第二的条件。所以学生关系模式不属于第二范式。范式。P关系分解的含义关系分解的含义关

23、系关系R R的分解包括两个方面,一方面的分解包括两个方面,一方面是把是把R R的属性分开,以构成两个新的的属性分开,以构成两个新的关系模式:另一方面是通过对关系模式:另一方面是通过对R R的元的元组进行投影而产生两个新的关系。组进行投影而产生两个新的关系。分解的过程分解的过程 给定一个模式为给定一个模式为 A1A1,A2A2,AnAn的关系的关系R R,我们可以把我们可以把R R分解为两个关分解为两个关系系S S和和T T,模式分别为模式分别为 B1B1,B2B2,BmBm 和和 C1C1,C2C2,CkCk,使得:使得:1 1 A1A1,An=An=B1B1,BmBmC1C1,CkCk2 2

24、关系关系S S中的元组是中的元组是R R的所有元组在的所有元组在 B1B1,BmBm 上的投影。对于上的投影。对于R R的当前实的当前实例的每个元组例的每个元组t t,取取t t在属性在属性B1B1,B2B2,BmBm上的分量。这些分量构成一个元组,上的分量。这些分量构成一个元组,它属于它属于S S的当前实例。的当前实例。3 3类似地,关系类似地,关系T T中的元组是中的元组是R R的当前实的当前实例中的元组在属性集例中的元组在属性集 C1C1,C2C2,CkCk上的投影。上的投影。第三范式(第三范式(3 3NFNF)若关系模式若关系模式R R属于第一范式,且每属于第一范式,且每个非主属性都不

25、传递依赖于键码,个非主属性都不传递依赖于键码,则则R R属于第三范式。属于第三范式。这里应说明一点:属于第三范式的这里应说明一点:属于第三范式的关系模式必然属于第二范式。因为关系模式必然属于第二范式。因为可以证明部分依赖蕴含着传递依赖可以证明部分依赖蕴含着传递依赖。关系模式关系模式S1(Sno,Sname,Sdept,Mname)由于存在传递依赖而不属第三范式由于存在传递依赖而不属第三范式.S1分解成两个关系模式分解成两个关系模式S11(Sno,Sname,Sdept)S12(Sdept,Mname)BCBC范式(范式(BCNFBCNF)若关系模式若关系模式R R属于第一范式,且每个属性属于第

26、一范式,且每个属性都不传递依赖于键码,则都不传递依赖于键码,则R R属于属于BCBC范式。范式。通常通常BCBC范式的条件有多种等价的表述:范式的条件有多种等价的表述:每个非平凡依赖的左边必须包含键码;每个非平凡依赖的左边必须包含键码;每个决定因素必须包含键码。每个决定因素必须包含键码。BCBC范式既检查非主属性,又检查主属性。范式既检查非主属性,又检查主属性。当只检查非主属性时,就成了第三范式。当只检查非主属性时,就成了第三范式。满足满足BCBC范式的关系都必然满足第三范式。范式的关系都必然满足第三范式。关系模式STC(SN,TN,CN,G)SN,CN TN,GSN,TN CN,GTN CN

27、键码为:键码为:SNSN,CNCN和和 SNSN,TNTN。关系模式关系模式STCSTC分解成分解成 SC(SN,CN,G)ST(SN,TN)关系模式关系模式STC的实例的实例SNTNCNG杨紫兰杨紫兰 文文 松松程序设计程序设计 90杨紫兰杨紫兰 孙兰竹孙兰竹数据库数据库 88 魏魏 红红 孙兰竹孙兰竹数据库数据库 92 魏魏 红红 田田 梅梅 程序设计程序设计 86分解后关系模式分解后关系模式STST的实例如下的实例如下:SNTN杨紫兰杨紫兰文松文松杨紫兰杨紫兰 孙兰竹孙兰竹魏红魏红孙兰竹孙兰竹魏红魏红田梅田梅SNCNG杨紫兰杨紫兰程序程序90杨紫兰杨紫兰 数据库数据库88魏红魏红数据库数

28、据库92魏红魏红程序程序86STST和和SCSC以以SNSN为公共属性进行连接为公共属性进行连接:SN TN SN TN CN CN G G (真真/伪)伪)杨紫兰杨紫兰 文松文松程序程序 90 90杨紫兰杨紫兰 文松文松数据库数据库 88 88杨紫兰杨紫兰 孙兰竹孙兰竹程序程序 90 90杨紫兰杨紫兰 孙兰竹孙兰竹数据库数据库 88 886.2.4 6.2.4 分解的原则分解的原则 主要涉及两个原则:主要涉及两个原则:无损连接(无损连接(LosslessLossless Join Join)如果对新的关系进行自然连接得到的如果对新的关系进行自然连接得到的元组的集合与原关系完全一致,则称为元组

29、的集合与原关系完全一致,则称为无损连接。无损连接。无损连接反映了模式分解的数据等价原无损连接反映了模式分解的数据等价原则。则。保持依赖(保持依赖(Preserve DependencyPreserve Dependency)如果分解后总的函数依赖集与原函数如果分解后总的函数依赖集与原函数依赖集保持一致,则称为保持依赖。依赖集保持一致,则称为保持依赖。保持依赖反映了模式分解的依赖等价保持依赖反映了模式分解的依赖等价原则。依赖等价保证了分解后的模式与原则。依赖等价保证了分解后的模式与原有的模式在数据语义上的一致性。原有的模式在数据语义上的一致性。6.2.5 6.2.5 分解的方法分解的方法 关系模

30、式分解的基础是键码和函数关系模式分解的基础是键码和函数依赖。当我们对关系模式中属性之依赖。当我们对关系模式中属性之间的内在联系做了深入、准确的分间的内在联系做了深入、准确的分析,确定了键码和函数依赖之后,析,确定了键码和函数依赖之后,模式分解因有章(规则)可循,有模式分解因有章(规则)可循,有法(方法)可依而显得简单明了。法(方法)可依而显得简单明了。模式分解的两个规则(模式分解的两个规则(1 1)公共属性共享公共属性共享要把分解后的模式连接起来,公共属要把分解后的模式连接起来,公共属性是基础。若分解时模式之间未保留公性是基础。若分解时模式之间未保留公共属性,则只能通过笛卡尔积相连,导共属性,

31、则只能通过笛卡尔积相连,导致元组数量膨胀,真实信息丢失,结果致元组数量膨胀,真实信息丢失,结果失去价值。保留公共属性,进行自然连失去价值。保留公共属性,进行自然连接是分解后的模式实现无损连接的必要接是分解后的模式实现无损连接的必要条件。条件。模式分解的两个规则(模式分解的两个规则(2 2)相关属性合一相关属性合一把以函数依赖的形式联系在一起的相关属性把以函数依赖的形式联系在一起的相关属性放在一个模式中,从而使原有的函数依赖得以放在一个模式中,从而使原有的函数依赖得以保持。这是分解后的模式实现保持依赖的充分保持。这是分解后的模式实现保持依赖的充分条件。然而,对于存在部分依赖或传递依赖的条件。然而

32、,对于存在部分依赖或传递依赖的相关属性则不应放在一个模式中,因为这正是相关属性则不应放在一个模式中,因为这正是导致数据冗余和更新异常的根源,从而也正是导致数据冗余和更新异常的根源,从而也正是模式分解所要解决的问题。模式分解所要解决的问题。模式分解的三种方法模式分解的三种方法部分依赖归子集;完全依赖随键码部分依赖归子集;完全依赖随键码。要使不属于第二范式的关系模式要使不属于第二范式的关系模式“升级升级”,就要消除非主属性对键码的部分依赖。解决的就要消除非主属性对键码的部分依赖。解决的办法就是对原有模式进行分解。分解的关键在办法就是对原有模式进行分解。分解的关键在于:找出对键码部分依赖的非主属性所

33、依赖的于:找出对键码部分依赖的非主属性所依赖的键码的真子集,把这个真子集与所有相应的非键码的真子集,把这个真子集与所有相应的非主属性组合成一个新的模式;对键码完全依赖主属性组合成一个新的模式;对键码完全依赖的所有非主属性则与键码组合成另一个新模式。的所有非主属性则与键码组合成另一个新模式。学生选课学生选课SC(Sno,Sname,Ssex,Sage,Cno,Cname,Grade)Cno CnameSno Sname,Ssex,SageSno,Cno Grade Sno,Cno Sname,Ssex,SageSno,Cno Cname PP本例中有两个部分依赖,一个完全本例中有两个部分依赖,一

34、个完全依赖,结果原来模式一分为三:依赖,结果原来模式一分为三:SC1(Sno,Sname,Ssex,Sage)SC2(Cno,Cname)SC3(Sno,Cno,Grade)基本依赖为基础,中间属性作桥梁基本依赖为基础,中间属性作桥梁要使不属于第三范式的关系模式要使不属于第三范式的关系模式“升升级级”,就要消除非主属性对键码的传递依,就要消除非主属性对键码的传递依赖。解决的办法非常简单:以构成传递链赖。解决的办法非常简单:以构成传递链的两个基本依赖为基础形成两个新的模式,的两个基本依赖为基础形成两个新的模式,这样既切断了传递链,又保持了两个基本这样既切断了传递链,又保持了两个基本依赖,同时又有

35、中间属性作为桥梁,跨接依赖,同时又有中间属性作为桥梁,跨接两个新的模式,从而实现无损的自然连接。两个新的模式,从而实现无损的自然连接。找违例自成一体,舍其右全集归一找违例自成一体,舍其右全集归一 若发现仍有违例,再回首如法炮制若发现仍有违例,再回首如法炮制要使关系模式属于要使关系模式属于BCBC范式,既要消范式,既要消除非主属性对键码的部分依赖和传除非主属性对键码的部分依赖和传递依赖,又要消除递依赖,又要消除主属性对键码主属性对键码的部分依赖和传递依赖。的部分依赖和传递依赖。利用利用BCBC范式违例分解关系模式范式违例分解关系模式STC:STC:BCBC范式的违例:范式的违例:TN TN CN

36、CN分解后的第一个关系模式分解后的第一个关系模式 TNTN,CNCN分解后的第二个模式分解后的第二个模式 TNTN,SNSN,G G 分解后的两个模式分解后的两个模式R1R1和和R2R2能实现无损连接的能实现无损连接的充分必要条件是:充分必要条件是:(R1R2R1R2)(R1 (R1R2)R2)或或(R1R2)(R2R1R2)(R2R1)R1)若分解后的两个模式的交集函数决定两个模若分解后的两个模式的交集函数决定两个模式的差集之一,则必能实现无损连接。按上述式的差集之一,则必能实现无损连接。按上述两个规则对模式进行分解,两个模式的交集则两个规则对模式进行分解,两个模式的交集则为公共属性,两个模

37、式的差集之一则为某个函为公共属性,两个模式的差集之一则为某个函数依赖的右边,因此必然函数依赖于公共属性,数依赖的右边,因此必然函数依赖于公共属性,满足无损连接的充分必要条件。满足无损连接的充分必要条件。分解为分解为 TNTN,CNCN和和 TNTN,SNSN,GG交集为交集为TNTN差集之一为差集之一为CNCNTN CNTN CN成立成立 如果一个关系数据库中的所有关如果一个关系数据库中的所有关系模式都满足于系模式都满足于BCBC范式,那么在函数范式,那么在函数依赖范畴内,它已实现了模式的彻底依赖范畴内,它已实现了模式的彻底分解,达到了最高的规范化程度,消分解,达到了最高的规范化程度,消除了更

38、新异常和信息冗余。除了更新异常和信息冗余。6.2.6 6.2.6 关系模式规范化小结关系模式规范化小结 第一范式是关系模式的基础,因此,第一范式是关系模式的基础,因此,即使未明确指出某关系模式属于第一范即使未明确指出某关系模式属于第一范式,也应认为尽在不言中。式,也应认为尽在不言中。对键码和函数依赖的分析是判别第对键码和函数依赖的分析是判别第二、第三和二、第三和BCBC范式的基础。在分析函数范式的基础。在分析函数依赖的基础上找出关系的键码,从而把依赖的基础上找出关系的键码,从而把属性分为主属性和非主属性。属性分为主属性和非主属性。第二、第三范式只检查非主属性与第二、第三范式只检查非主属性与键码之间的函数依赖关系。键码之间的函数依赖关系。BCBC范式检查每个函数依赖,而不分范式检查每个函数依赖,而不分主属性和非主属性。主属性和非主属性。关系模式规范化流程图:关系模式规范化流程图:

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|