2015年三峡大学硕士研究生招生复试
《数据库原理与应用》课程考试试卷(A卷) 参考答案及评分标准
命题教师 韩芳 审题教师
一、选择题 (每小题 1分,共20分)
BDBBA BBCCC ABBBB DAADC
二、填空题 (每小题 1分,共10分)
1. 【1】DBMS 2. 【2】完整性
3. 【3】结构 【4】行为 4. 【5】概念 【6】ER
5. 【7】无损分解 【8】保持函数依赖 6. 【9】封锁
7. 【10】日志文件
此处理下去,直至读到此事务的开始标记,该事务故障的恢复就完成了。
系统故障的恢复:系统故障可能会造成数据库处于不一致状态:一是未完成事务对数据库的更新可能已写入数据库;二是已提交事务对数据库的更新可能还留在缓冲区,没来得及写入数据库。因此恢复操作就是要撤销(UNDO)故障发生时未完成的事务,重做(REDO)已完成的事务。系统的恢复步骤是:(1)正向扫描日志文件,找出在故障发生前已经提交的事务队列(REDO队列)和未完成的事务队列(UNDO队列)。(2)对撤销队列中的各个事务进行UNDO处理。进行UNDO处理的方法是,反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作,即将日志记录中“更新前的值”(Before Image)写入数据库。(3)对重做队列中的各个事务进行REDO处理。进行REDO处理的方法是:正向扫描日志文件,对每个REDO事务重新执行日志文件登记的操作。即将日志记录中“更新后的值”(After Image)写入数据库。 *解析:在第(1)步中如何找出REDO队列和UNDO队列?请大家思考一下。下面给出一个算法: 1) 建立两个事务队列: ? UNDO-LIST: 需要执行undo操作的事务集合; ? REDO-LIST: 需要执行redo操作的事务集合;两个事务队列初始均为空。 2) 从日志文件头开始,正向扫描日志文件 ? 如有新开始(遇到Begin Transaction)的事务Ti,把Ti暂时放入UNDO-LIST队列; ? 如有提交的事务(遇到End Transaction)Tj,把Tj从UNDO-LIST队列移到REDO-LIST队列;直到日志文件结束
介质故障的恢复:介质故障是最严重的一种故障。恢复方法是重装数据库,然后重做已完成的事务。具体过程是:(1) DBA装入最新的数据库后备副本(离故障发生时刻最近的转储副本),使数据库恢复到转储时的一致性状态。(2) DBA装入转储结束时刻的日志文件副本(3) DBA启动系统恢复命令,由DBMS完成恢复功能,即重做已完成的事务。 *解析 1)我们假定采用的是静态转储,因此第(1)步装入数据库后备副本便可以了。 2)如果采用的是动态转储,第(1)步装入数据库后备副本还不够,还需同时装入转储开始时刻的日志文件副本,经过处理后才能得到正确的数据库后备副本。 3)第(2)步重做已完成的事务的算法是: a. 正向扫描日志文件,找出故障发生前已提交的事务的标识,将其记入重做队列 b. 再一次正向扫描日志文件,对重做队列中的所有事务进行重做处理。即将日志记录中“更新后的值”写入数据库。
四、设计题(本题 20分)
某医院内部病房计算机管理中需要如下信息:
医院内有若干科室,科室主要有科室名,科室地址,科电话,每个科室下有若干医生,一个医生只属于一个科室,但可负责多个病人的诊治,每名医生主要有工作证号、姓名,职称,年龄等信息;每个科室下管理若干病房的床位,每个病房只属于一个科室管理,病房主要有病房号,床位号等信息,每名病人拥有一个病人病历,病人的主管医生只有一个。 根据如上需求,请完成如下设计:
三、简答题(每小题5分,共10分)
1.简答数据库有哪些主要的安全控制技术?
实现数据库安全性控制的常用方法和技术有:
1) 用户标识和鉴别: 2) 存取控制:确保只有合法权限的用户访问数据库。例如C2级中的自主存取控制(DAC),B1级中的强制存取控制(MAC); 3) 视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。 4) 审计:建立审计日志, DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。 5) 数据加密:对存储和传输的数据进行加密处理。
1.设计该医院病房管理系统的E-R图。(本小题10分)
评分标准:每答对1个,可以得1分
2. 简述数据库运行中可能产生的故障有哪几类? 任选一种介绍其恢复策 (1) 事务内部的故障;(2) 系统故障;(3) 介质故障; (2分),以下策略任意概括其中一个意思可得3分
事务故障的恢复:事务故障的恢复是由DBMS自动完成的,对用户是透明的。 DBMS执行恢复步骤是:(1)反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。(2)对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”写入数据库。(3)继续反向扫描日志文件,做同样处理。(4)如
《数据库原理与应用》课程A卷答案第 1 页