当前位置:问答库>考研试题

2017年苏州科技学院电子与信息工程学院825数据库原理考研仿真模拟题

  摘要

一、简答题

1. 建立一个关于系、学生、班级、学会等诸信息的关系数据库。

描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区;

描述班级的属性有:班号、专业名、系名、人数、入校年份;

描述系的属性有:系名、系号、系办公室地点、人数:

描述学会的属性有:学会名、成立年份、地点、人数。

有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。

请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况,讨论函数依赖是完全函数依赖还是部分函数依赖。指出各关系的候选码、外部码,并说明是否全码存在。

【答案】(1)关系模式如下:

学生:S

班级:C

系:D

学会:M

(2)每个关系模式的最小函数依赖集如下:

①学生S (Sno , Sname ,Sbirth , Dept , Class ,Rno )的最小函数依赖集如下

传递依赖如下: 由于而,(宿舍区)所以Sno 与Rno 之间存在着传递函数依赖;

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

②班级C (Class ,Pname ,Dept ,Cnum ,Cyear )的最小函数依赖集如下:

由于所以Class 与Dept 之间存在着传递函数依赖。 ③系D (Dept , Dno ,Office ,Dnum )的最小函数依赖集如下:

Dept 与Office ,Dept 与Dnum 之间不存在传递依赖。

④学会M (Mname ,Myear ,Maddr ,Mnum )的最小函数依赖集如下:

该模式不存在传递依赖。

第 2 页,共 41 页 由于Class →Dept , Dept →Class ,Dept →Rno , 所以Class 与Rno 之间存在着传递函数依赖;

由于

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

①学生S 候选码:Sno ; 外部码:Dept 、Class ; 无全码。

②班级C 候选码:Class ; 外部码:Dept ; 无全码。

③系D 候选码:Dept 或Dno ; 无外部码;无全码。

④学会M 候选码:Mname ; 无外部码;无全码。

2. 针对不同的故障,试给出恢复的策略和方法。(即如何进行事务故障的恢复,如何进行系统故障的恢复,以及如何进行介质故障的恢复。)

【答案】(1)事务故障的恢复是由DBMS 执行的。恢复步骤是自动完成的,对用户是透明的。具体过程是:

,查找该事务的更新操作; ①反向扫描文件日志(即从后向前扫描日志文件)

②对该事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库;

③继续反向扫描日志文件,做同样处理;

④如此处理下去,直至读到此事务的开始标记,该事务故障的恢复就完成了。

(2)系统故障的恢复操作是指撤销(UNDO )故障发生时未完成的事务,重做(REDO )已完成的事务。系统的恢复步骤是:

①正向扫描日志文件,找出在故障发生前已经提交的事务队列(REDO 队列)和未完成的事

; 务队列(UNDO 队列)

②对撤销队列中的各个事务进行UNDO 处理;

③对重做队列中的各个事务进行REDO 处理。

(3)介质故障是最严重的一种故障。恢复方法是重装数据库,重做已完成的事务。具体过程是:

,使数据库恢复到转①DBA 装入最新的数据库后备副本(离故障发生时刻最近的转储副本)

储时的一致性状态;

②DBA 装入转储结束时刻的日志文件副本;

③DBA 启动系统恢复命令,由DBMS 完成恢复功能,即重做已完成的事务。

3. 内存数据库和磁盘数据库有什么区别?

【答案】内存数据库与磁盘数据库的区别如图所示。

第 3 页,共 41 页

图 内存数据库和磁盘数据库对比示意图

4. 什么是数据冗余?数据库系统与文件系统相比怎样减少冗余?

【答案】(1)数据冗余

数据冗余是指各个数据文件中存在重复的数据。在文件管理系统中,数据被组织在一个个独立的数据文件中,每个文件都有完整的体系结构,对数据的操作是按文件名访问。数据文件之间没有联系,数据文件是面向应用程序的。每个应用都拥有并使用自己的数据文件,各数据文件中难免有许多数据相互重复,数据的冗余度比较大。

(2)数据库系统以数据库方式管理大量共享的数据。数据库系统由许多单独文件组成,文件内部具有完整的结构,但它更注重文件之间的联系。数据库系统中的数据具有共享性。数据库系统是面向整个系统的数据共享而建立的,各个应用的数据集中存储,共同使用,数据库文件之间联系密切,因而尽可能地避免了数据的重复存储,减少和控制了数据的冗余。

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

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

中诊断死锁的方法与操作系统类似,一般使用超时法或事务等待图法。

①超时法是如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。超时法实现简单,但有可能误判死锁,事务因其他原因长时间等待超过时限时,系统会误认为发生了死锁。若时限设置得太长,又不能及时发现死锁。

②事务等待图是一个有向图G=(T ,U )。T 为结点的集合,每个结点表示正运行的事务;U 为边的集合,每条边表示事务等待的情况。若等待则之间划一条有向边,从指向事务等待图动态地反映了所有事务的等待情况。并发控制子系统周期性地生成事务等待图,并进行检测。如果发现图中存在回路,则表示系统中出现了死锁。

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

第 4 页,共 41 页