浙大远程 - 数据库系统概论离线作业答案 联系客服

发布时间 : 星期六 文章浙大远程 - 数据库系统概论离线作业答案更新完毕开始阅读c67f5bac453610661ed9f4e5

所以C1ass与Dept之间存在着传递函数依赖。

C、系D(Dept,Dno,Office,Dnum)的最小函数依赖集如下: DeptDno,DnoDept,DnoOffice,DnoDnum

根据上述函数依赖可知,Dept与Office,Dept与Dnum之间不存在传递依赖。 D、学会M(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下: MnameMyear,MnameMaddr,MnameMnum 该模式不存在传递依赖。

(3)各关系模式的候选码、外部码,全码如下:

A、学生S候选码:Sno;外部码:Dept、Class;无全码 B、班级C候选码:Class;外部码:Dept;无全码 C、系D候选码:Dept或Dno;无外部码;无全码 D、学会M候选码:Mname;无外部码;无全码

12.下面的结论哪些是正确的? 哪些是错误的? 对于错误的请给一个反例说明之。

(1)任何一个二目关系是属于3NF。

答:正确。因为关系模式中只有两个属性,所以无传递。 (2)任何一个二目关系是属于BCNF.

答:正确。按BCNF的定义,若XY,且Y不是X的子集时,每个决定因素都包含码, 对于二目关系决定因素必然包含码。详细证明如下:(任何二元关系模式必定是 BCNF)。

证明:设R为一个二目关系R(A1,A2),则属性A1和A2之间可能存在以下几种依 赖关系:

A、A1A2,但A2A1,则关系R 的码为A1,决定因素都包含码,所以,R 是 BCNF。

B、A1A2,A2A1,则关系R的码为A2,所以决定因素都包含码,R是BCNF。 包含码。R是BCNF。C、R的码为(A1,A2)(即A1 A2,A2 A1),决定因素都 (3)任何一个二目关系是属于4NF.

答:正确。因为只有两个属性,所以无非平凡的多值依赖。

第七章习题9、11、12

9.试述数据库概念结构设计的重要性和设计步骤。 答: 重要性:数据库概念设计是整个数据库设计的关键,将在需求分析阶段所得到的应用需求首先抽象为概念结构,以此作为各种数据模型的共同基础,从而能更好地、更准确地用某一 DBMS实现这些需求。

设计步骤: 概念结构的设计方法有多种,其中最经常采用的策略是自底向上方法,该方法的设计步骤通常分为两步:第 1步是抽象数据并设计局部视图,第2步是集成局部视图,得到全局的概念结构。

11.什么是数据库的逻辑结构设计?试述其设计步骤。

答:数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本 E-R图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。

设计步骤为:(1)将概念结构转换为一般的关系、网状、层次模型;

(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换; (3)对数据模型进行优化

12、试把第一张习题12和习题13中的E-R图转换为关系模型.

学校(校名,校长,地点)

系(系号,系名,主任名,学校名) 教研室(室号,名称,负责人,系号) 教师(教师号,教师名,职称,室号) 班级(班号,班长,系号)

学生(学号,姓名,系号,班号) 课程(课程号,课程名,学分) 教授(教师号,人数)

研究生(学号,专业方向,教师号) 选修(学号,课程号,成绩)

仓库(仓库号,面积,管理员)

零件(零件号,名称,仓库号,数量) 材料(材料号,材料名,类别)

产品(产品号,产品名,规格型号,单价) 存放(仓库号,材料号,数量) 组成(产品号,零件号,数量) 制造(零件号,材料号,数量)

第九章习题2

2 .对学生一课程数据库有如下的查询: SEI 王 CT Cn 即 ne FROM Student , Cou 拐 e , SC WHERE Student . Sno = SC . Sno AND SC . Cllo = Coll 拐 e . Cllo AND Stu 击 nt . Sdept = ! 15 ! ; 此查询要求信息系学生选修了的所有课程名称。试画出用关系代数表示的语法树,并用关系代数表达式优化算法对原始的语法树进行优化处理,画出优化后的标准语法树。

答:

лCname(δStudent.Sno=SC.Sno ∧ SC.Cno=Course.Cno ∧ Student.Sdept=’IS’( Student×SC×Sourse ))

第十章习题6、7、8

6 .数据库转储的意义是什么?试比较各种数据转储方法。 答:数据转储是数据库恢复中采用的基本技术。所谓转储即DBA 定期地将数据库复制到磁带或另一个磁盘上保存起来的过程。当数据库遭到破坏后可以将后备副本重新装入,将数据库恢复到转储时的状态。静态转储:在系统中无运行事务时进行的转储操作,如上图所示。静态转储简单,但必须等待正运行的用户事务结束才能进行。同样,新的事务必须等_______待转储结束才能执行。显然,这会降低数据库的可用性。 动态转储:指转储期间允许对数据库进行存取或修改。动态转储可克服静态转储的缺点,它不用等待正在运行的用户事务结束,也不会影响新事务的运行。但是,转储结束时后援副本上的数据并不能保证正确有效。因为转储期间运行的事务可能修改了某些数据,使得后援副本上的数据不是数据库的一致版本。为此,必须把转储期间各事务对数据库的修改活动登记下来,建立日志文件( 109 file )。这样,后援副本加上日志文件就能得到数据库某一时刻的正确状态。转储还可以分为海量转储和增量转储两种方式。 海量转储是指每次转储全部数据库。增量转储则指每次只转储上一次转储后更新过的数据。从恢复角度看,使用海量转储得到的后备副本进行恢复一般说来更简单些。但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效。

7. 什么是日志文件?为什么要设立日志文件? 答:(1)日志文件是用来记录事务对数据库的更新操作的文件。

(2)设立日志文件的目的是: 进行事务故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复。

8 .登记日志文件时为什么必须先写日志文件,后写数据库? 答:把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次UNDO 操作,并不会影响数据库的正确性。所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。

第十一章习题4、7、9、10

4 .如何用封锁机制保证数据的一致性?

答: DBMS 在对数据进行读、写操作之前首先对该数据执行封锁操作,例如下图中事务Tl 在对 A 进行修改之前先对 A 执行 xock ( A ) ,即对 A 加 x 锁。这样,当几请求对 A 加x 锁时就被拒绝,几只能等待 Tl 释放 A 上的锁后才能获得对 A 的 x 锁,这时它读到的A 是 Tl 更新后的值,再按此新的 A 值进行运算。这样就不会丢失 Tl 的更新。DBMS 按照一定的封锁协议,对并发操作进行控制,使得多个并发操作有序地执行,就可以避免丢失修改、不可重复读和读“脏’夕数据等数据不一致性。

7. 请给出检测死锁发生的一种方法,当发生死锁后如何解除死锁?

答:数据库系统一般采用允许死锁发生, DBMS检测到死锁后加以解除的方法。

DBMS中诊断死锁的方法与操作系统类似,一般使用超时法或事务等待图法。 超时法是:如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。超时法实现简单,但有可能误判死锁,事务因其他原因长时间等待超过时限时,系统会误认为发生了死锁。若时限设置得太长,又不能及时发现死锁发生。

DBMS并发控制子系统检测到死锁后,就要设法解除。通常采用的方法是选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有锁,使其他事务得以继续运行下去。当然,对撤销的事务所执行的数据修改操作必须加以恢复。

9. 设T1、T2、T3是如下的三个事务,设A的初始值为0; T1:A:=A+2; T2:A:=A*2; T3:A:=A**2;

若这3个事务允许并发执行,则有多少种可能的正确结果,请一一列出来; 请给出一个可串行化的调度,并给出执行结果;

请给出一个非串行化的调度,并给出执行结果;

若这三个事务遵守两段锁协议,请给出一个不产生死锁的可串行化调度; 若这三个事务遵守两段锁协议,请给出一个产生死锁的调度; 答:有六种正确的结果: 1. T1—T2—T3 16 2. T1—T3—T2 8 3. T2—T1—T3 4 4. T2—T3—T1 2 5. T3—T1—T2 4 6. T3—T2—T1 2

10、如今有三个事务的一个调度

r3(B),r1(A),w3(B),r2(B),r2(A),w2(B),r1(B),w1(A),该调度是冲突可串行化调度吗?为什么? 答:是,因为:r3(B),r1(A),w3(B),r2(B),r2(A),w2(B),r1(B),w1(A)等价:r3(B), w3(B),r2(B), r2(A),w2(B), r1(B), r1(A),w1(A),