- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库课程中基于图关系候选码分析方法
数据库课程中基于图的关系候选码分析方法
摘 要: 在数据库课程教学中,分析关系的候选码是认识关系的第一步,也是进一步学习关系数据理论的基础。本文从关系候选码的定义出发,在分析数据依赖的基础上,提出一种基于图形方式的关系候选码分析方法,并通过举例说明该方法在实际中的运用。实践证明,本方法在数据库课程教学过程中具有良好效果。
关键词: 数据库 关系候选码 数据依赖 完全函数依赖
从E.E.Codd提出关系规范化理论至今,关于这一理论的研究已经取得了很多成果。对于关系的候选码,在规范化理论中有严格的定义,但是针对具体的关系,尤其当没有给出关于关系的具体的语义信息时,只是已知关系的属性组及属性组上的数据依赖的情况下,该如何分析出关系的候选码,目前已经有一些研究,[1]-[2]但这些方法都较为复杂,不利于学生的掌握。本文提出一种基于图的分析方法,可以快速得到关系的候选码。
1.基于图的关系候选码分析方法介绍
分析关系的候选码的方法,主要依据的是候选码的定义[3],即设K为关系R〈U,F〉中的属性或属性组合,若KU,则K为R的候选码。其中,R为关系名,U为关系R的一组属性,F为属性组U上的一组数据依赖,KU表示U对K完全函数依赖。所谓数据依赖就是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系。
现在已经提出的数据依赖的类型[4]-[5]主要有:
#8226;函数依赖(Functional Dependency,简称FD);
#8226;多值依赖(Multivalued Dependency,简称MVD);
#8226;联接依赖(Join Dependency,简称JD)。
本文主要讨论的是函数依赖。函数依赖的定义[3]是:设R(U)是属性集U上的关系模式,X、Y是U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作X→Y。完全函数依赖是指在R(U)中,如果X→Y,并且对于X的任何一个真子集X′,都有X′→Y,则称Y对X完全函数依赖,记作:XY。
分析具体关系的候选码时,主要解决三个问题:
首先,确定已知关系R〈U,F〉中哪些属性或属性组作为候选码的判断对象,设判断对象为K;
其次,对所有的判断对象K逐一判断是否满足K→U;
最后,对已经满足K→U的判断对象K再判断是否满足KU。
1.1确定候选码的判断对象K
确定已知关系R〈U,F〉中哪些属性或属性组作为候选码的判断对象(设判断对象为K)主要根据候选码的定义。由候选码的定义可知K可以是关系R中的属性,也可以是关系R中的属性组。这似乎就使选取候选码的判断对象的问题变成了一个组合问题,即若U中的属性个数为n,候选码的判断对象的个数就有可能是C(n,1)+C(n,2)+…+C(n,n)。在C(n,1)+C(n,2)+…+C(n,n)种可能中,是否有必要对每一种可能判断其满足K→U?回答是否定的。因为对于没有出现在F中的属性或属性组,我们没有判断其是否满足K→U的依据,所以也就没有判断的必要。据此,将候选码的判断对象的范围缩小为在F中出现的属性或属性组。
对于F中的任何一个数据依赖X→Y,称X为函数依赖中的决定因素,Y为函数依赖中的被决定因素。故在F中出现的属性或属性组有两种情况:决定因素和被决定因素,所以将候选码的判断对象确定为F中的决定因素和被决定因素。
1.2判断是否满足K→U
对所有的判断对象K逐一判断是否满足K→U。采用图示的方法,表示这一判断过程。对于F中的任何一个数据依赖X→Y,“→”用有向边表示,并以决定因素X为起点指向被决定因素Y;每一个判断对象对应一个U(关系R的所有属性),并且在U中用圆圈将判断对象圈起,表示该判断对象已知;然后对每一个判断对象在F中找出与之有关的数据依赖,并用有向边在U中一一标出。当某一个判断对象所对应的U中,除了判断对象被圆圈圈起外,其余属性都被有向边所指时,就满足K→U。否则,就不满足K→U。
1.3判断是否满足KU
对已经满足K→U的判断对象K,再判断是否满足KU。如果K为关系R中的属性,K的任何一个真子集K1是Ф,就有K1U,即满足KU。即如果K为关系R中的属性,K的任何一个非空真子集K′都是不存在,所以无需再判断K′是否满足K′→U,该K就是关系R的候选码。如果K为关系R中的属性组,对于K的任何一个非空真子集K′,都要采用图示方法讨论它是否满足K′→U。只要有一个非空真子集K′满足K′→U,那么就不满足U对K完全函数依赖,即该K不是关系R的候选码。
2.基于图的关系候选码分析方法举例
本节通过一
原创力文档


文档评论(0)