本文目录导读:
《数据库原理及应用第二版第五章课后答案解析》
图片来源于网络,如有侵权联系删除
第五章知识点概述
第五章通常会涉及到关系数据库的规范化理论等重要内容,规范化理论是设计良好关系数据库的重要指南,其目的在于减少数据冗余、消除数据插入、删除和更新异常等问题。
(一)函数依赖
1、定义
- 函数依赖是关系模式中属性之间的一种约束关系,设R(U)是属性集U上的关系模式,X、Y是U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。
- 在一个学生选课关系模式(学号,课程号,成绩)中,学号和课程号可以唯一确定成绩,即(学号,课程号)→成绩。
2、类型
- 完全函数依赖:在关系模式R(U)中,如果X→Y,并且对于X的任何一个真子集X',都有X'→Y不成立,则称Y对X完全函数依赖,记作X→Y,比如在(学号,课程号)→成绩关系中,成绩完全依赖于学号和课程号,因为单独的学号或者课程号都不能确定成绩。
- 部分函数依赖:如果X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X→Y,例如在关系模式(学号,姓名,课程号,成绩)中,(学号,课程号)→姓名就是部分函数依赖,因为学号就可以确定姓名。
- 传递函数依赖:在关系模式R(U)中,如果X→Y,Y→Z,且Y→X不成立,Z∉X,则称Z对X传递函数依赖,记作X→Z。
(二)范式
图片来源于网络,如有侵权联系删除
1、第一范式(1NF)
- 定义:关系模式R的所有属性都是不可再分的基本数据项,则R∈1NF,这是关系数据库最基本的要求,一个关系表中如果某列存储的是一个人员的姓名和年龄拼接在一起的值,就不满足1NF,需要将其拆分为姓名和年龄两个独立的属性。
2、第二范式(2NF)
- 定义:若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于R的码,则R∈2NF,在关系模式(学号,姓名,课程号,课程名,成绩)中,主键为(学号,课程号),姓名部分依赖于主键(因为学号→姓名),课程名部分依赖于主键(因为课程号→课程名),所以该关系模式不属于2NF,要使其满足2NF,需要将关系模式分解为(学号,姓名)、(课程号,课程名)和(学号,课程号,成绩)。
3、第三范式(3NF)
- 定义:关系模式R<U,F>中若不存在这样的码X、属性组Y及非主属性Z(Z∉Y),使得X→Y,Y→Z成立,Y→X不成立,则称R<U,F>∈3NF,在关系模式(学号,系名,系主任)中,如果学号→系名,系名→系主任,那么就存在传递函数依赖,不满足3NF,将其分解为(学号,系名)和(系名,系主任)后就满足3NF了。
课后习题解答思路
(一)函数依赖相关习题
1、对于判断函数依赖是否成立的题目
- 首先要明确关系模式中的属性集以及给定的函数依赖表达式,然后根据函数依赖的定义,通过分析关系实例或者根据业务逻辑来判断,在一个员工关系(员工编号,部门编号,部门名称,工资)中,判断部门编号→部门名称是否成立,从业务逻辑上讲,一个部门编号应该唯一对应一个部门名称,所以这个函数依赖是成立的。
2、计算函数依赖闭包的题目
图片来源于网络,如有侵权联系删除
- 可以使用算法来求解,从给定的属性集开始,不断添加由已知函数依赖能够推导出的属性,直到不能再添加为止,已知关系模式R(A,B,C,D),函数依赖集F = {A→B,B→C,C→D},求A的闭包,首先A的闭包初始为{A},因为A→B,所以闭包变为{A,B},又因为B→C,闭包变为{A,B,C},最后因为C→D,闭包变为{A,B,C,D}。
(二)范式相关习题
1、判断关系模式属于第几范式的题目
- 首先确定关系模式的主键,然后分析非主属性与主键之间的函数依赖关系,如果所有属性都是不可再分的基本数据项,满足1NF,接着检查非主属性是否完全函数依赖于主键来判断是否满足2NF,如果不存在传递函数依赖则判断是否满足3NF,在关系模式(订单编号,客户编号,客户姓名,商品编号,商品名称,数量)中,主键为(订单编号,商品编号),客户姓名部分依赖于主键(因为客户编号→客户姓名),商品名称部分依赖于主键(因为商品编号→商品名称),所以该关系模式不属于2NF。
2、将关系模式分解为满足指定范式的题目
- 对于要分解为2NF的情况,将部分依赖于主键的非主属性与对应的主键部分分离出来,对于要分解为3NF的情况,要消除传递函数依赖,对于上述不满足2NF的关系模式,可以分解为(订单编号,客户编号,数量)、(客户编号,客户姓名)和(商品编号,商品名称),如果要进一步分解为3NF,对于存在传递依赖的关系模式(如部门编号,部门名称,部门经理),其中部门编号→部门名称,部门名称→部门经理,分解为(部门编号,部门名称)和(部门名称,部门经理)。
第五章的内容是数据库原理中的关键部分,通过理解函数依赖的概念和类型,以及不同范式的定义和要求,可以有效地设计和优化关系数据库模式,在实际应用中,规范化理论能够提高数据库的性能、减少数据维护的复杂性并且增强数据的一致性,无论是在数据库的初始设计阶段还是在对现有数据库进行优化改造时,都需要依据规范化理论进行合理的操作,在解答课后习题时,要深入理解概念,按照相应的定义和算法步骤进行分析和求解,从而掌握关系数据库规范化的核心知识。
评论列表