网站大量收购独家精品文档,联系QQ:2885784924

第6章——关系数据理论.ppt

  1. 1、本文档共137页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
模式求精的必要性 E-R图设计是一个复杂且主观的过程,并且有些约束关系并不能通过E-R图来表达。一些不“好”的关系模式可能忽略数据之间的约束关系而产生冗余,特别是在大型数据库模式设计时更是如此。 另外,关系模式不一定都是严格地由E-R图转换得到,也可能是设计者的即席产生。因此,有必要对关系模式进行模式求精。 模式求精是运用关系理论(如函数依赖理论、多值依赖理论等)对已有关系模式进行结构调整、分解、合并和优化的过程,以满足应用系统的功能及性能等需求。 模式求精步骤 基于函数依赖理论的模式求精步骤: 确定函数依赖。根据需求分析得到的数据需求,确定关系模式内部各属性之间以及不同关系模式的属性之间存在的数据依赖关系。 确定关系模式所属范式。按照数据依赖关系对关系模式进行分析,检测是否存在部分依赖或传递依赖,以确定该模式属于第几范式。 分析是否满足应用需求。按照需求分析得到的数据处理要求,分析现有模式是否满足应用需求,并决定是否需要进行模式合并或分解。 模式分解。根据范式要求(是选择BCNF还是3NF),运用规范化方法将关系模式分解成所要求的关系模式。 模式合并。在分解过程中可能进行模式合并。如当查询经常涉及到多个关系模式的属性时,系统将经常进行连接操作,而连接运算的代价是相当高的。此时,可考虑将这几个关系合并为一个关系。 模式求精举例 [例5.29] 假设大学选课系统中课程与教师的关系模式设计为: CourseTeacher (courseNo, courseName, creditHour, courseHour, teacherNo, teacherName, title, degree, teachNumber) 其中属性集{courseNo, teacherNo}是主码。试对该模式进行模式求精,以达到BCNF/3NF范式要求。 步骤1. 分析函数依赖关系及判断范式 关系模式CourseTeacher存在以下函数依赖: courseNo ? courseName, creditHour, courseHour teacherNo? teacherName, title, degree {courseNo, teacherNo} ? teachNumber 显然,存在非主属性对主码的部分依赖,故CourseTeacher不属于2NF范式,更不属于BCNF范式。 讲授次数 步骤2. 模式分解 由于存在部分函数依赖:courseNo ? courseName, creditHour, courseHour,违背了BCNF/3NF条件,依BCNF/3NF分解算法,可将关系模式CourseTeacher分解为以下两个关系模式: Course (courseNo, courseName, creditHour, courseHour); Teaching (courseNo, teacherNo, teacherName, title, degree, teachNumber) 可验证关系模式Course已满足BCNF/3NF要求,且是无损分解(因为公共属性courseNo是关系模式Course的主码)。 而在关系模式Teaching中,由于存在部分函数依赖:teacherNo? teacherName, title, degree,因此可以进一步分解为: Teacher (teacherNo, teacherName, title, degree) NewTeaching (courseNo, teacherNo, teachNumber) 可验证关系模式Teacher和NewTeaching都已满足BCNF/3NF要求,且是无损分解(因为公共属性teacherNo是关系模式Teacher的主码)。 模式求精举例 综合上述分解结果,关系模式CourseTeacher可以分解为如下满足BCNF/3NF要求的三个关系模式: Course (courseNo, courseName, creditHour, courseHour) Teacher (teacherNo, teacherName, title, degree) NewTeaching (courseNo, teacherNo, teachNumber) 模式求精是数据库设计过程中非常重要的一步,设计者应在关系数据理论的指导下检查和改进设计中存在的不足和缺陷,以保证最终的设计结果尽可能地满足应用需求。 模式求精举例 总结 数据库设计目标 ——基于函数依赖 BCNF; 无损连接; 保持依赖。 如果不能同时达到这3个目标,则需要在BCNF、3NF间选择。 模式分解算法 BCNF分解; 3N

文档评论(0)

moon8888 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档