- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 可以将满足第三范式的关系模式看作为一个物理中的原子,其中主属性集合就是原子核,而非主属性集合中的元素就是这个原子中的电子,它们紧紧依赖于主属性集合而构成一个紧密的整体。 4.4.1 函数依赖与范式 * (2)关系模式分解为3NF模式集算法一个范式如果不满足第三范式,可以通过模式分解将其分解为若干个模式,使得分解后的模式能够满足第三范式,具体算法如下:设有关系模式R(U),K是其主键,X→Z是R(U)的函数依赖,其中Z是非主属性集且不是X的子集,而X不是候选键,此时即有K→Z是R(U)的传递函数依赖。可以将R(U)分解为两个新的关系模式: 4.4.1 函数依赖与范式 * ● R1(XZ),主键是X。● R2(Y),其中Y=U-Z,主键是K,外键是X。由主键和外键的匹配机制,可以通过连接由R1和R2重新得到R。如果R1或R2还不是3NF,重复上述过程直到所有的模式都是3NF为止。 4.4.1 函数依赖与范式 * 例4-15 在例4-13中,SCG2满足第二范式,但是不满足第三范式,可以将其分解为如下两个关系模式:SCG21(S#SnSs,{ S# →Sn,S#→Ss })和SCG22(SsSd,{ Ss→Sd }),其依赖情况如图4-23所示。 4.4.1 函数依赖与范式 * 4.4.1 函数依赖与范式 * SCG经过几次分解之后,得到三个关系模式:SCG1、SCG21和SCG22。这三个模式都满足第三范式,冗余度较小,没有异常现象出现。 4.4.1 函数依赖与范式 * 5. Boyce-Codd范式——BCNF第二范式和第三范式的讨论对象都是非主属性,而BCNF既涉及到非主属性,也涉及到主属性。设关系模式R(U)∈1NF,如果R(U)中每一个属性都不传递依赖于R(U)的候选键,则称关系模式R(U)满足Boyce-Codd范式,简称BC范式,记为R(U)∈BCNF。由定义可以知道,非BC范式可以有下面几种情形: 4.4.1 函数依赖与范式 * ● 属性A含于某键W当中,属性集X与键K的交集非空,且X→A,如图4-24所示。图4.24 非BCNF类型之一 4.4.1 函数依赖与范式 * ● 属性A含于某键K中,属性集X与键K的交集为空,且X→A,如图4-25所示。图4.25 非BCNF类型之二 4.4.1 函数依赖与范式 * 例4-17 设有关系模式SCT(S#C#Tn),其中,S#,C#的含义如前,而Tn表示教师姓名。SCT中有以下语义:●每个教师仅上一门课程。●学生与课程的关系确定之后,教师即唯一确定。由此,SCT中就有函数依赖关系: S#C#→Tn,Tn→C#。 4.4.1 函数依赖与范式 * 这个关系模式满足3NF,因为唯一候选键为S#C#,非主属性只有Tn。Tn完全依赖于S#C#,同时对于Tn,不存在传递依赖问题。但是在Tn→C#中,决定因素Tn不含有候选键S#C#,所以SCT不满足BCNF。 4.4.1 函数依赖与范式 * 仅3NF而非BCNF不能避免异常性。在关系SCT中,如果某门课程(C#)本学期不开设,就无学生(S#)选读,此时有关教师(Tn)固定开设这门课程的信息就无法显示。由此看来,应当进一步将关系模式SCT分解为BCNF。在此例中,SCT可以进一步分解为S#→Tn和C#→Tn,这两个关系模式都是BCNF,不会产生异常现象,如图4-26所示。 4.4.1 函数依赖与范式 * 图4.26 非BCNF分解为BCNF 4.4.1 函数依赖与范式 * 例4-18 设有课程安排关系如表4-13所示。 表4-13 课程安排示意图 4.4.2 多值依赖与4NF * 在这里的课程安排具有如下语义。 ⑴“数学分析”这门课程可以由三个教师担任,同时有两本教材可以选用。 ⑵“数据结构”这门课程可以由三个教师担任,同时有3本教材可供选用。 如果分别用Cn、Tn和Bn表示“课程名称”、“任课教师”和“教材名称”,上述情形可以表示如表4-14所示的关系CTB。 4.4.2 多值依赖与4NF * 在这里的课程安排具有如下语义。 ⑴“数学分析”这门课程可以由三个教师担任,同时有两本教材可以选用。 ⑵“数据结构”这门课程可以由三个教师担任,同时有3本教材可供选用。 如果分别用Cn、Tn和Bn表示“课程名称”、“任课教师”和“教材名称”,上述情形可以表示如表4-14所示的关系CTB。 4.4.2 多值依赖与4NF * 表4-14关系CTB 4.4.2 多值依赖与4NF * 通过仔细分析关系CTB,可以发现它有如下特点。 ⑴ 属性集{Cn}与{Tn}之间存在着数据依赖关系,在属性集{Cn}与{Bn}也存在着数据依赖关系,而这两个数据依赖都不是“函数依赖”,因为当属性
文档评论(0)