数据库系统概论模拟试卷及参考答案
————————————————————————————————作者:————————————————————————————————日期:
《数据库系统概论》模拟试卷(一)
参考答案
一、单项选择题(每小题2分,共30分)
1、( B )是按照一定的数据模型组织的,长期储存在计算机内,可
为多个用户共享的数据的集合。
(A)、数据库系统(B)、数据库
(C)、关系数据库(D)、数据库管理系统
2、下列关于索引的叙述,正确的是(A)。
(A)、可以根据需要在基本表上建立一个或多个索引,从而提高
系统的查询效率。
(B)、一个基本表最多只能有一个索引。
(C)、建立索引的目的是为了给数据表中的元素指定别名,从而
使别的表也可以引用这个元素。
(D)、一个基本表至少要存在一个索引。
3、设有两个关系R(A,B)和S(A,C),下列等式成立的是(A)。
(A)、
(B)、
(C)、
(D)、
4、在数据库的物理结构中,将具有相同值的元组集中存放在连续的物理块
的存储方法称为( C )。
(A)、HASH (B)、B树索引
(C)、聚簇(D)、其它
5、设有两个事务T1、T2,其并发操作如图所示,下面评价正确的是
( D )
(A)、该操作不存在任何问题
(B)、该操作丢失修改
(C)、该操作不能重复读
(D )、该操作读“脏”数据
6、 关系模式规范化理论主要解决的问题是( B )
(A )、提高查询速度
(B )、消除操作异常和数据冗余 (C )、减少数据操作的复杂性 (D )、保证数据的安全性和完整性
7、 层次型、网状型和关系型数据模型划分原则是( D )。 (A )、 记录长度
(B )、 文件的大小
(C )、 联系的复杂程度 (D )、数据之间的联系
8、 有关系:R (A ,B ,C )(主码为A )和S (D ,A )(主码为D ,外码为
A ),外码A 参照于关系R 的主码A 。关系R 和S 的元组如图所示,指出关系S 中必定违反完整性规则的元组是( C )。
(A )、(1,2) (B )、(2,null ) (C )、(3,3) (D )、(4,1)
关系R
A B C 1 2 3 2
1
3
关系S
D A 1 2 2 NULL 3 3 4
1
9、 设有两个关系R (A ,B )和S (B ,C ),与下列SELECT 语句
SELECT A ,B
Read A A=1A=1
A=1
Read A
A=A+500
Write A
Rollback
使用A 值
事务事务
FROM R
WHERE B NOT IN(SELECT B
FROM S
WHERE C='C56');
等价的关系代数表达式是(C)。
(A)、πA,B(σC≠'C56'(R S))
(B)、πA,B(R S)
(C)、R-πA,B(σC= 'C56'(R S))
(D)、R-πA,B(σC≠'C56'(R S))
10、定义基本表时,若要求年龄属性的取值必须大于0,则可以使用
( D )约束。
(A)、NULL (B)、PRIMARY KEY
(C)、DISTINCT (D)、CHECK
11、已知关系模式R(A,B,C,D,E)及其上的函数依赖集合F={A→B,
E→A,CE→D},则该关系模式的候选键是( C )。
(A)、AE (B)、BE (C)、CE (D)、DE
12、下列叙述正确的是(C)。
(A)、关系中元组没有先后顺序,属性有先后顺序
(B)、关系中元组有先后顺序,属性没有先后顺序
(C)、关系中元组没有先后顺序,属性也没有先后顺序
(D)、关系中元组有先后顺序,属性也有先后顺序
13、“一个事务中的诸操作要么都做,要么都不做”,这是事务的( A )
特性。
(A)、原子性(B)、一致性
(C)、隔离性(D)、持久性
14、关于事务的故障与恢复,下列说法正确的是( D )。
(A)、事务日志用来记录事务执行的频度
(B)、任何故障的恢复都由系统自动完成
(C)、系统故障的恢复只需进行REDO操作
(D)、对日志文件设置检查点是为了提高故障恢复的效率
15、若事务T1已经给数据对象A加了排它锁,则事务T2(D)。
(A)、只能再对A加共享锁
(B)、只能再对A加排它锁
(C)、可以对A加共享锁,也可以对A加排它锁
(D)、不能再给A加任何锁
二、简答题(每小题5份,共10分)
1、什么是日志文件?登记日志文件时为什么必须要先写日志文件,后写数
据库?
答:
(1)日志文件是用来记录事务对数据库的更新操作的文件。
(2)把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。如果先写了数据库修改,而在日志文件中没有登记这个修改,则以后就无法恢复这个修改了。如果先写日志文件,但没有修改数据库,在恢复时只不过是多执行一次UNDO操作,并不会影响数据库的正确性。所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。
2、什么是数据独立性?数据库系统如何实现数据独立性?
答:
数据独立性是指应用程序和数据之间相互独立,不受影响,数据独立性包括物理数据独立性和逻辑数据独立性。物理数据独立性是指数据库物理结构改变时,不需要修改现有的应用程序,逻辑独立性是指数据库逻辑结构发生改变时,不需要修改现有的应用程序。
数据独立性是由DBMS的二级映像功能来实现的。数据库系统采用外模式、模式和内模式三级模式结构,DBMS在这三级模式之间提供了外模式/模式和模式/内模式两层映像。当整个系统要求改变模式时,由DBMS对外模式/模式的映像作相应的修改,而外模式保持不变,应用程序是依据数据库的外模式编写的,所以应用程序不必修改,从而保证数据的逻辑独立性;当数据库的存储结构发生,由DBMS对模式/内模式的映像作相应的修改,可以使模式保持不变,从而外模式不变,因此应用程序不必修改,从而保证数据的物理独立性。
三、综合应用题(60分)
1、(21分)
设有一个Student数据库,包括学生,课程,选修三个关系:
学生:S ( Sno,Sname,Ssex,Sage,Sdept )
课程:C ( Cno,Cname,Term,Credit )
选修:SC ( Sno,Cno,Score )
其中:学生关系S的属性分别表示:学号、姓名、性别、年龄、专业课程关系C的属性分别表示:课程号、课程名、开课学期、学分
选修关系SC的属性分别表示:学号、课程号、分数
请用关系代数表达式完成如下查询:
(1)、查询选修了课程名为“数据库系统”课程的学生学号、姓名和成绩
(2)、查询选修了全部课程的学生姓名和所在的专业
(3)、查询没有选修课程号为“C02”课程的学生姓名和所在的专业
(1) π
Sno,Sname,Score(бcname=’数据库系统’(S SC C)
(2) π
Sname,Sdept(S
(πSno,Cno(SC)÷πcno(C)))
(3)πSname,Sdept(s)-πSname,Sdept(бcno=’C02’ (S SC))
请用SQL语句完成下面的操作:
(4)、检索所有比“王华”年龄大的学生姓名、年龄和性别
Select sname,sage,ssex
From S
Where sage>(select sage from S where sname=’王华’)
(5)、检索选修了课程号为’C02’课程的学生中成绩最高的学生的学号
Select sno from sc
where cno=’c02’
a nd grade>=ALL(select grade from sc where cno=’c02’)
(6)、检索选修了4门以上课程的学生学号和总成绩(不统计不及格的课程),并要求按照总成绩的降序排列。
Select sno,sum(grade) from sc
Where grade>=60
Group by sno having count(*)>=4
Order by 2 desc
(7)、检索张力同学没有选修的课程的课程号
Select cno from c
Where not exists
(select * from s,sc
where s.sno=sc.sno and https://www.doczj.com/doc/c614278565.html,o=https://www.doczj.com/doc/c614278565.html,o and sname=’张力’)
2、(6分)设有如下图所示的关系R和T,计算下列代数表达式的结果:
(1)、R1 = R T
(2)、R2 =бR.B=T.B(R×T)
(3)、R3 = R÷T
关系R
A B C
2 b c 2 b e 9 a f 7 b c 7 a e 关系T
B C E b c d a e f
(1)R1=R T
关系R1
A B C E
2 b c d
7 b c d
7 a e f
(2)、R2 =бR.B=T.B(R×T)
关系R2
A R.
B R.
C T.B T.C E
2 b c b c d
2 b e b c d
9 a f a e f
7 b c b c d
7 a e a e f
(3)、R3=R÷T
关系R3
A
7
3、(4分)今有两个关系模式:
(1)职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门号为外码;
(2)部门(部门号,名称,经理名,地址,电话),其中部门号是主码;
请用SQL语言的GRANT语句(加上视图机制)完成以下授权定义:用户杨兰具有SELECT每个部门的职工最高工资,最低工资,平均工资的权力,但他不能查看每个人的工资。
CREATE VIEW 部门工资统计(部门号,最高工资,最低工资,平均工资)AS
SELECT部门号,MAX(工资),MIN(工资),AVG(工资)
FROM职工
GROUP BY部门号;
GRANT SELECT ON TABLE 部门工资统计TO 杨兰;
4、(6分)在数据库系统中有如下一个调度S,它涉及到5个不同的事务T1、T2、T3、T4和T5。请问调度S是冲突可串行化的吗?为什么?如果调度S是冲突可串行化的,就请给出与之等价的一个串行调度序列。
答:
通过交换调度S中的不冲突操作,可以得到一个新的调度S’(T1→T2→T3→T4→T5),因为调度S’是串行调度,因此该调度S是冲突可串行化的。与之等价的串行调度顺序是T1、T2、T3、T4、T5;或T1、T2、T4、T3、T5。