xx四级数据库工程师课后习题参考答案内容摘要:

iods smallint check (Periods0), Property char(4) check (Property in (39。 必修 39。 , 39。 选修 39。 )) ) 创建 SC 表的 SQL 语句为: CREATE TABLE SC ( Sno char(7) , Cno char(10) , Grade smalldate check(Grade between 0 and 100), Primary key(Sno, Cno), Foreign key (Sno) references Student(Sno), Foreign key(Cno) references Course(Cno) ) 答案 ( 1) Alter Table SC add XKLB char(4) ( 2) Alter Table Course Alter Column Periods tinyint ( 3) Alter Table Course Drop Column Property 答案 ( 1) select sno, sum(grade) 总成绩 , avg(grade) 平均成绩 , count(*) 选课门数 from sc group by sno having count(*) 2 ( 2) select sno, sum(grade) 总成绩 from sc group by sno having sum(grade) 200 ( 3) select sname, sdept from Student join SC on = where o = C0239。 ( 4) select sname, o, grade from student s join sc on = where grade 80 Order by grade desc ( 5) select sname, ssex, grade from student s join sc on = join course c on = where sdept = 39。 计算机系 39。 and ssex = 39。 男 39。 and ame = 39。 数据库基础 39。 ( 6) select , sname, o, grade from Student s left join SC on = ( 7) select top 3 , sname, sdept, grade from Student s join SC on = join Course c on = where ame = 39。 数据库基础 39。 order by grade desc ( 8) select , , from sc as t1 join sc as t2 on = where ( 9) select , ame from course c left join sc on = where is null ( 10) select sname,ame, grade from student s join sc on = join course c on = where sdept = 39。 计算机系 39。 and grade ( select avg(grade) from sc) ( 11) select sname,sdept,grade from student s join sc on = join course c on = where grade = ( select min(grade) from sc where o in ( select o from course where ame = 39。 vb39。 )) and ame = 39。 vb39。 ( 12) select 学号 ,sname 姓名 , case sdept when 39。 计算机系 39。 then 39。 CS39。 when 39。 信息系 39。 then 39。 IS39。 when 39。 数学系 39。 then 39。 MA39。 else 39。 OTHER39。 end as 所在系 ,grade 成绩 from student s join sc on = join course c on = where ame = 39。 vb39。 ( 13) select , case when count() 100 then 39。 人多 39。 when count() between 40 and 100 then 39。 一般 39。 when count() 40 then 39。 较少 39。 when count() =0 then 39。 无人选 39。 end as 选课人数 from sc right join course c on = group by ( 14) insert into Course values(39。 C10039。 , 39。 Java39。 , 32, „选修 ‟) ( 15) delete from sc where grade 50 ( 16)( a)用连接查询实现 delete from sc from sc join student s on = where sdept = 39。 信息系 39。 and grade 50 ( b)用子查询实现 delete from sc where sno in ( select sno from student where sdept = 39。 信息系 39。 ) and grade 50 ( 17) update sc set grade = grade + 10 where o = 39。 c0139。 ( 18) ( a) 用子查询实现 update sc set grade = grade + 10 where sno in ( select sno from student where sdept = 39。 计算机系 39。 ) and o in ( select o from course where ame = 39。 计算机文化学 39。 ) ( b)用连接实现 update sc set grade = grade 10 from student s join sc on = join course c on = where sdept = 39。 计算机系 39。 and ame = 39。 计算机文化学 39。 答案 :索引的作用是加快数据的查询速度。 一般分为聚集索引和非聚集索引两种。 答案 不对,聚集索引也可以不是唯一性索引。 反过来,唯一性索引也不一定是聚集索引。 答案 :对。 如果是非聚集索引,则系统不调整数据的物理存放顺序。 答案 ( 1) CREATE INDEX NonCluIdx_Sname on Student(Sname) ( 2) CREATE UNIQUE CLUSTERED INDEX CluUni_Idx on SC(Sno) 答案 视图的作用包括 :封装了复杂的查询语句,使用户能从多角度看到同一数据,提高了数据的安全性以及提供了一定程度的逻辑独立性。 答案 ( 1) CREATE VIEW V1 AS select Sno, Sname, Sdept, Cno, Cname, Periods from Student s join SC on = join Course c on = ( 2) CREATE VIEW V2 AS select Sno as 学号 , avg(grade) as 平均成绩 group by Sno 第 9章习题参考答案 答案 ( 1) 事务是构成数据库应用中一个独立逻辑工作单元的操作的集合,也是访问并可能更新数据库中各种数据项的一个程序执行单元。 ( 2) 定义在多个事务上的调度是这些事务的所有操作的一个执行序列,代表了这些操作的执行顺序。 ( 3) 事务 Ti 的操作 Ii与事务 Tj的操作 Ij是冲突的,当且仅当 Ii 和 Ij访问数据库中同一个数据项 Q,并且 Ii 和 Ij中至少有一个是写操作 write(Q)。 ( 4) 如果一个并发调度冲突等价于某个串行调度,则称该并发调度是冲突可串行的。 ( 5) 死锁是指数据库系统中部分或全部事务由于无法获得对需要访问的数据项的控制权而处于等待状态,并且将一直等待下去的一种系统状态。 答案 原子性指事务对数据库的所有操作是一个不可分割的工作单元。 这些操作要么全部执行,要么一个也不执行。 一致性 指当事务独立执行时,其执行结果应维护数据库的一致性,即数据库不会因事务执行而遭受破坏。 事务应使数据库从一个一致性状态转到另外一个一致性状态。 隔离性指当多个事务并发执行时 ,系统应保证一个事务的执行结果不受其它事务的干扰,事务并发执行结果与这些事务串行执行时的结果是一样的。 持久性指一个事务一旦 成功 完成全部操作,则它对数据库的所有更新就永久地反映在数据库中。 即使以后系统发生了故障。 答案 1 级加锁协议要求事务 T 在修改数据项 Q之前必须先对 Q 加 X锁,直到事务结束才释放该锁。 事务结束包括正常结束( mit)和非正常结束( rollback)。 但事务如果只是读 Q 而不对其进行修改,是不需要对 Q 加锁的。 2级加锁协议是在 1级加锁协议基础上,要求事务 T在读取数据项 Q之前必须先对 其加 S锁,读完 Q后可以立即释放 S锁。 3 级加锁协议则是在 1 级加锁协议基础上,要求事务 T 在读取数据项 Q 之前必须先对其加 S 锁,但是需要等到事务结束时才释放该 S 锁。 答案 2 阶段锁协议将每个事务的执行过程分为加锁阶段和解锁阶段。 在加锁阶段,事务可以申请获得数据项上的任何类型的锁,但不允许释放任何锁。 在解锁阶段,事务可以释放任何数据项上的任何类型的锁,但不能再申请任何锁。 每个事务开始执行后就进入了加锁阶段。 当第一次释放锁后,即转入解锁阶段。 答案 解决死锁主要采用死锁预防和死锁检测与恢复两类方法。 死锁预防利用死锁预防协议,通过破坏死锁产生的必要条件来避免系统进入死锁状态,防止死锁发生。 死锁检测与恢复则是允许系统进入死锁状态,并且 定期检查系统是否发生死锁。 当发现系统 发生死锁后,采取相应的恢复机制使系统摆脱死锁状态。 答案 活锁产生的原因是在系统非死锁状态下,某些事务由于始终无法获得对所需访问的数据项的控制权而长期等待下去,无法继续执行。 答案 Ti Tj LockX(C) read(C) C:=C+1 write(C) LockX(A) unlock(C) read(A) A:=A*2 write(A) unlock(A) LockX(A) read(A) A:=A+1 write(A) LockX(B) read(B) B:=B+1 write(B) unlock(A) unlock(B) 答案 并发调度 S9 不等价于串行调度 T1。 T2。 T3。 T4。 因为 T1中的 write(Q)和 T2 中的read(Q)是冲突操作,操作 write(Q)在操作 read(Q)后面执行,无法交换这 2 个操作的执行顺序,使 T1和 T2 依 次顺序串行执行。 第 10章习题参考答案 答案 ( 1) A ( 2) C ( 3) C ( 4) BC ( 5) ABC ( 6) D 答案 ( 1)数据库的试运行 ( 2) 管理员手动实现的监控 ( 3)答案有多种组合,可在 合理使用索引、 避免或简化排序、 消除对大型表行数据的顺序存取、避免相关子查询、避免困难的正规表达式、使用临时表加速查询、用排序来取代非顺序磁盘存取、 不充分的连接条件、存储过程、不要随意使用游标、事务处理中任选三个作答。 第 11 章习题参考答案 答案 ( 1) C ( 2) D ( 3) D ( 4) C 答案 ( 1) 事务内部的故障、系统故障、介质故障以及计算机病毒故障 ( 2)冗余数据。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。