1、完整word版)数据库原理与应用教程何玉洁五——八章课后习题部分答案 第五章 一、试说明使用视图的好处。 答:1、简化数据查询语句 2、使用户能从多角度看待同一数据 3、提高了数据的安全性 4、提供了一定程度的逻辑独立性 二、使用视图可以加快数据的查询速度,这句话对吗?为什么? 答:不对。因为数据库管理系统在对视图进行查询时,首先检查要查询的视图是否存在,如果存在,则从数据字典中提取视图的定义,把视图的定义语句对视图语句结合起来,转换成等价的对基本表的查询,然后再执行转换后的查询,所以使用视图不可以加快数据的查询速度。 三、利用第3章建立的Student、Course和SC
2、表,写出创建满足下述要求的视图的SQL语句。 (1)查询学生的学号、姓名、所在系、课程号、课程名、课程学分。 答:CREATE VIEW IS_S_C AS SELECT Sno,Sname,Sdept,Cno,Cname,Credit FROM Student S JOIN SC ON S.Sno=SC.Sno JOIN Course C ON C.Cno=SC.Cno 四、利用第三题建立的视图,完成如下查询: (1)查询考试成绩大于等于90分的学生的姓名、课程号和成绩。 答:SELECT Sname,Cno,Gra
3、de FROM IS_SC WHERE Grade>=90 五、修改第三题(4)定义的视图,使其查询每个学生的学号,总学分以及总的选课门数。 答:ALTER VIEW IS_CC AS SELECT Sno,COUNT(Credit),COUNT(Cno) FROM SC JOIN Course C ON SC.Cno=C.Cno GROUP BY Sno 第六章 一、关系规范化中的操作异常有哪些?它是由什么引起的?解决的方法是什么? 答:操作异常:数据冗余问题、数据更新问题、数据插入问题和数据删除问题。 它
4、是由关系模式中某些属性之间存在的“不良”的函数依赖关系一起的。 解决的方法是进行模式分解,即把一个关系模式分解成两个或多个关系模式,在分解的过程中消除那些“不良”的函数依赖,从而获得良好的关系模式。 二、第一范式、第二范式和第三范式关系的定义分别是什么? 答:不包含重复组的关系(即不包含非原子项的属性)是第一范式的关系。 如果R(U,F)∈1NF,并且R中的每个非主属性都完全函数依赖于主码,则R(U,F)∈2NF。 如果R(U,F)∈2NF,并且所以的非主属性都不传递依赖于主码,则R(U,F)∈3NF。 三、什么是部分依赖?什么是传递依赖?请举例说明。 答:如果X→Y,有对于X的
5、真子集Xˊ→Y成立,则称Y部分函数依赖于X。 如果X→Y,Y→Z,则称Z传递函数依赖于X。 例:1、SC(Sno,Sname,Cno,Credit,Grade)主码为(Sno,Cno) Sno→Sname (Sno,Cno)→Sname 姓名部分函数依赖于学号和课程号 2、S(Sno,Sname,Dept,Dept_master) 主码为Sno Sno→Dept Dept→Dept_master Sno→Dept_master 系主任传递函数依赖于学号 四、第三范式的关系模式是否一定不包含部分依赖关系? 答:是。因为满足
6、第三范式的关系模式一定满足第二范式,一定不包含部分函数依赖关系。 六、设有关系模式:学生修课(学号,姓名,所在系,性别,课程号,课程名,学分,成绩)。 设一个学生可以选多门课程,一门课程可以被多名学生选。一个学生有唯一的所在系,每门课程有唯一的课程号和学分。请指出此关系模式的候选码,判断此关系模式是第几范式的,若不是第三范式的,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主码和外码。 答:候选码为:(学号,课程号) 第一范式 学生(学号,姓名,所在系,性别) 课程(课程号,课程名,学分) 学生修课(学号,课程号,成绩) 学号为引用学生关系模式的外码 课程号为引
7、用课程关系模式的外码 七、设有关系模式:学生(学号,姓名,所在系,班号,班主任,系主任),其语义为:一个学生只在一个系的一个班学习,一个系只有一个系主任,一个班只有一个班主任,一个系可以有多个班。 请指出此关系模式的候选码,判断此关系模式是第几范式的,若不是第三范式的,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主码和外码。 答:候选码为:学号 第二范式 学生(学号,姓名,所在系,班号) 所在系为引用系关系模式的外码 班号为引用班关系模式的外码 系(所在系,系主任) 班(班号,班主任) 八、设有关系模式:教师授课(课程号,课程名,学分,授课教师
8、号,教师名,授课时数),其语义为:一门课程(由课程号决定)有确定的课程名和学分,每名教师(由教师号决定)有确定的教师名,每门课程可以由多名教师教授,每名教师也可以讲授多门课程,每名教师对每门课程有确定的授课时数。指出此关系模式的候选码,判断此关系模式属于第几范式,若不属于第三范式,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主码和外码。 答:候选码为:(课程号,授课教师号) 第一范式 课程(课程号,课程名,学分) 教师(授课教师号,教师名) 教师授课(课程号,授课教师名,授课时数) 课程号为引用课程关系模式的外码 授课教师号为引用教师关系模式的
9、外码 练习1:下表给出的关系R为第几范式?是否存在操作异常?若存在,将其分解为高一级范式。 工程号 材料号 数量 开工日期 完工日期 单价 P1 I1 4 9805 9902 250 P1 I2 6 9805 9902 300 P1 I3 15 9805 9902 180 P2 I1 6 9811 9912 250 P2 I4 18 9811 9912 300 R 满足1NF 码:工程号+材料号 操作异常:数据冗余,插入异常,删除异常,修改异常 分析原因: (工程号,材料号) ® 开工日期 工程号® 开
10、工日期 存在部分函数依赖,不满足2NF (工程号,材料号) ® 单价 材料号®单价 存在部分函数依赖,不满足2NF 分解为: R1(工程号,材料号,数量) R2(材料号,单价) R3(工程号,开工日期,完工日期) 第七章 一、试说明事务的概念及四个特征。 答:事务是用户定义的数据操作系列,这些操作可作为一个完整的工作单元,一个事务内的 所有语句被作为一个整体,要么全部执行,要么全部不执行。 四个特征:原子性、一致性、隔离性和持续性 三、在数据库中为什么要有并发控制机制? 答:数据
11、库系统一个明显的特点是多个用户共享数据库资源,尤其是多个用户可以同时存取相同数据。在这样的系统中,在同一时刻同时运行的事务可达数百个。若对多用户的并发操作不加控制,就会造成数据库存、取的错误,破坏数据的一致性和完整性。所以数据库中要有并发控制机制。 四、并发控制的措施是什么? 答:在数据库环境下,进行并发控制的主要方式是使用封锁机制,即加锁。 具体的控制由锁的类型决定。 基本的锁类型有两种:排它锁(X锁)和共享锁(S锁)。 共享锁:若事务T给数据对象A加了S锁,则事务T可以读A,但不能修改A,其他事务只能再给A加S锁,而不能加X锁,直到T释放了A上的S锁为止。 排他锁:若事务T给数
12、据对象A加了X锁,则允许T读取和修改A,但不允许其他事务再给A加任何类型的锁和进行任何操作。 五、设有3个事务:T1、T2和T3,其所包含的动作为: T1:A=A+2 T2:A=A*2 T3:A=A**2 设A的初值为1,若这三个事务运行并行执行,则可能的调度策略有几种?A最终的结果分别是什么? 答:6种策略。分别是T1T2T3 ,T1T3T2,T2T1T3,T2T3T1,T3T1T2,T3T2T1 结果分别是 六、当某个事务对某段数据加了S锁之后,在此事务释放锁之前,其他事物还可以对此段数据添加什么锁? 答:S锁 七、什么是死锁?如何预防死锁? 答:如果事务T1
13、封锁了数据R1,T2封锁了数据R2,然后T1又请求封锁数据R2,由于T2已经封锁了数据R2,因此T1等待T2释放R2上的锁,然后T2又请求封锁数据R1,由于T1封锁了数据R1,因此T2也只能等待T1释放R1上的锁.这样就会出现T1等待T2先释放R2上的锁,而T2又等待T1先释放R1上的锁的局面,此时T1和T2都在等待对方先释放锁,因而形成死锁。 预防死锁的方法有多种,常用的方法有一次封锁法和顺序封锁法。 八、三级封锁协议分别是什么?各级封锁协议的主要区别是什么?每一级封锁协议能保证什么? 答:一级封锁协议:对事务T要修改的数据加X锁,直到事务结束才释放。 二级封锁协议:一级封
14、锁协议加上事务T对要读取的数据加S锁,读完后即释放S锁。 三级封锁协议:一级封锁协议加上事务T对要读取的数据加S锁,并直到事务结束才释放。 各级封锁协议的主要区别在于读操作是否需要申请封锁,以及何时释放锁。 一级封锁协议可以防止丢失修改,并保证事务T是可恢复的。 二级封锁协议除了可以防止丢失修改外,还可以防止读“脏”数据。 三级封锁协议除了可以防止丢失修改和不读“脏”数据外,还可以进一步防止不可重复读。 十二、数据库故障大致分为几类?(考题:判断故障类型) 答:1、事务内部的故障 2、系统故障 3、其他故障 十四、数据库恢复的技术有哪些? 答:1、数据库备份技术 2、事务
15、日志备份技术 第八章 三、数据库结构设计包含那几个过程? 答:数据库结构设计包括概念结构设计、逻辑结构设计和物理结构设计。 五、概念结构应该具有哪些特点? 答:有丰富的语义表达能力。 易于交流和理解。 易于更改。 易于像各种数据模型转换。 六、概念结构设计的策略是什么? 答:自底向上。先定义每个局部应用的概念结构,然后按一定的规则把它们集成起来,从而得到全局概念结构。 自顶向下。先定义全局概念结构。然后在逐步细化。 由里向外。先定义最重要的核心结构,然后再逐步向外扩展。 混合策略。将自顶向下和
16、自底向上方法结合起来使用。先用自顶向下方法设计一个概念结构的框架,然后以它为框架再用自底向上策略设计局部概念结构,最后把它们集成起来。 七、什么是数据库的逻辑结构设计?简述其设计步骤。 答:逻辑结构设计的任务是把在概念结构设计中设计的基本E-R模型转换为具体的数据库管理系统支持的组织层数据模型,也就是导出特定的DBMS可以处理的数据库逻辑结构。 步骤:1、将概念结构转换为某种组织层数据模型。 2、对组织层数据模型进行优化。 八、把E-R模型转换为关系模式的转换规则有哪些? 答:一个实体转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的主码。
17、 九、数据模型的优化包含哪些方法? 答:1、确定各属性间的函数依赖关系。根据需要分析阶段得出的语义,分别写出每个关系模式的各属性之间的函数依赖以及不同关系模式中各属性之间的数据依赖关系。 2、对各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。 3、判断每个关系模式的范式,根据实际需要确定最合适的范式。 4、根据需要分析阶段得到的处理要求,分析这些模式对于这样的应用环境是否合适,确定是否要对某些模式进行分解或合并。 十、设有如图8-15所示的两个E-R模型,分别将它们转换为合适的关系模式,并指出每个关系模式的主码和外码。 出版日期 书号
18、 联系电话 顾客号 读者 顾客 作者 m 书名 顾客名 m 借书日期 借阅 还书日期
19、 订购日期 职工编号 p 联系电话 n 读者编号 订购 销售人员 职工姓名 读者 订购数量
20、 单位 读者编号 n 所在部门 库存量 商品 商品编号 商品分类 商品名称 a)
21、 b) 答:a)图书(书号,书名,作者,出版日期) 读者(读者编号,读者姓名,联系电话,单位) 借阅(书号,读者编号,借书日期,还书日期) 书号为引用图书关系模式的外码 读者编号为引用读者关系模式的外码 b)顾客(顾客号,顾客名,联系电话) 商品(商品编号,商品名称,库存量,商品分类) 销售人员(职工编号,职工姓名,所在部门) 订购(顾客号,商品编号,职工编号,订购日期,订购数量) 顾客号为引用顾客关系模式的外码 商品编号为引用商品关系模式的外码 职工编号为引用销售人员关系模式的外码






