试卷
一、填空题(每空1分,共10分)
1.数据库管理系统在外模式、模式和内模式这三级模式之间提供了两层映象,其中 映象保证了数据的逻辑独立性。
2. 数据模型通常由 、数据操作和完整性约束三部分组成。
3. 事务的ACID特性包括原子性、一致性、隔离性和 。
4. 有10个实体型,它们之间存在12个不同的二元联系,其中3个是1:1联系类型,3个是1:n联系类型,6个m:n联系类型,那么根据转换规则,这个E-R结构转换成的关系模式个数N的取值范围是 。
5. 设关系R中有15个元组,关系S中有10个元组,则R与S的笛卡尔积中元组个数是 个。
6. 如果在一个系统中同时支持多种封锁粒度供不同的事务选择,则这种封锁方法称为 。
7.长期存储在计算机内、有组织的、可共享的大量数据的集合称为 。
8.多个事务并发执行时可能出现的数据不一致性问题有:丢失修改,不可重复读和 。
9. 数据库系统中基本的封锁类型有共享锁和 。
10. 若属性A是基本关系R的主属性,则A不能取空值,这是关系数据库完整性约束中的 规则。
二、选择题(每题2分,共20分)
1. 以下关于视图的描述中,错误的是( )。
A.视图不是真实存在的基本表,而是一张虚表。
B.当对通过视图看到的数据进行修改时,相应的基本表的数据也要发生变化。
C.在创建视图时,若其中某个目标列是聚合函数时,必须指明视图的全部列名。
D.对视图修改时,相应基本表中的数据不会被修改。
2.关于FOREIGN KEY约束的描述不正确的是( )。
A.体现数据库中表之间的关系。
B.实现参照完整性。
C.可以在创建好相应的表后,再添加FOREIGN KEY约束。
D.每个表中都必须定义。
3.设R是一个关系模式,如果R中的每个属性都是不可分解的,则称R属于( )。
A.第1范式 B.第2范式 C. 第3范式 D.BC范式
则函数依赖( )在上述关系中成立。
A. BC→A B. A→BC C. A→B D. B→A
5.数据库(DB)、数据库管理系统(DBMS)和数据库系统(DBS)三者之间的关系是( )。
A. DB包括DBMS和DBS B.DBS包括DB和DBMS
C. DBMS包括DB和DBS D.不能相互包括
6.关于多个事务的并发调度,以下说法错误的是( )。
A 所有遵守两段锁协议的事务,其并行执行结果一定是正确的。
B若对并发事务的一个调度是可串行化的,则所有事务都必定遵循两段锁协议。
C遵守两段锁协议的事务并发执行时可能发生死锁。
D满足冲突可串行化的并发调度其结果一定是正确的。
7.下列关于数据库恢复策略描述中,错误的是( )。
A 对于事务故障,应利用日志文件撤销该事务对数据库所做的操作。
B 对于系统故障,恢复程序要强行撤消所有未完成事务,重做已经提交的事务。
C 系统故障的恢复需要使用数据副本。
D对于介质故障,必须重装数据副本。
8.概念结构设计阶段得到的结果是( )。
A. 数据字典描述的数据需求 B.某个DBMS所支持的数据模型
C. E-R图表示的概念模型 D.包括存储结构和存取方法的物理结构
9.下列关于死锁和活锁问题的描述,错误的是( )。
A.数据库系统中避免活锁常用的方法是先来先服务的策略。
B.数据库系统中预防死锁的常用方法有一次封锁法和顺序封锁法。
C.数据库系统中诊断死锁的常用方法有超时法和事务等待图法。
D.数据库系统中解决死锁的常用方法是预防死锁的发生。
10.下列关于数据转储和日志文件的描述,错误的是( )。
A.动态转储期间可以有事务在运行。
B.静态转储过程中不允许有事务在运行。
C.动态转储方式中,不需要建立日志文件。
D.静态转储方式中,日志文件可有可无。
三、分析解答题(共20分)
1.(4分)事务T1和T2的一个并发调度序列如下:S=r1(A)w1(A)r2(A)w2(A)r1(B)w1(B)r2(B)w2(B)。
(1)该调度是否可串行化?(1分)
(2)如果是可串行化调度,请给出一个与其等价的串行调度序列。(3分)
2.(8分)设关系R和S分别如下图所示,要求:①(5分)分别求出a1、a2、a3和a4的象集;②(2分)S在(B,C)上的投影;③(1分)计算R ÷ S的结果。
A | B | C | B | C | D | |
a1 | b1 | c2 | b1 | c2 | d1 | |
a2 | b3 | c7 | b2 | c1 | d1 | |
a3 | b4 | c6 | b2 | c3 | d2 | |
a1 | b2 | c3 | 关系S | |||
a4 | b6 | c6 | ||||
a2 | b2 | c3 | ||||
a1 | b2 | c1 | ||||
3.(8分)已知关系模式R<U,F>,其中U={A,B,C,D,E },F = { AB→C, B→D, C→E, EC→B, AC→B },求(AB)F+ 。(要求写出求解步骤)
四、综合设计题(共50分)
1.(共26分)有一学生-课程数据库,包括三张表,学生表包括属性有:学号(CHAR(4) )、姓名(CHAR(10) )、性别(CHAR(2) )、年龄(SMALLINT)和系(CHAR(20) ),学号为码;课程表包括属性有:课程号(CHAR(5) )、课程名(CHAR(20) )、先行课(CHAR(5) )和学分(INT),课程号为码;学生选课表包括属性有:学号、课程号和成绩(INT),学号和课程号的组合为码。三张表的关系模式表示如下: student(sno,sname,ssex,sage,sdept),course(cno,cname,cpno,ccredit),sc(sno,cno,grade)。
请根据下列题目要求写出相应的SQL语句。
(1)(6分)建立“学生”表student,学号是主码,姓名取值唯一,性别只能取“男”或“女”。
(2)(4分)查询分数不及格的学生姓名和分数。
(3)(3分)插入一条课程记录:课程名称是'数据库' ,课程编号是'10011',学分是4。
(4)(3分)将软件工程系所有学生的年龄增加1岁。
(5)(4分)建立“软件工程”系学生的视图rjgc_view,视图属性包括sno、sname、sage。
(6)(3分)删除课程编号为“10011”的所有选课信息。
(7)(3分)把对表course的SELECT权限授予用户“刘星”。
2.(10分)针对上题的学生-课程数据库有如下查询:
select sname, cname from student, sc, course
where grade>85 and sdept =‘软件工程’and
course.cno = sc.cno and student.sno = sc.sno
(1)(4分)请写出其对应的关系代数表达式。
(2)(6分)下图1为用关系代数表达式优化算法优化处理后的标准语法树,请将其补充完整。
3.(14分)学生学籍管理系统中主要涉及的对象包括学生、宿舍、班级、班主任。其中,学生由学号、姓名、性别、所在系等属性来描述;宿舍由宿舍编号、地址、人数等属性来描述;班级由班级名称、学生人数等属性来描述;班主任由职工号、姓名、性别、是否为优秀班主任等属性来描述。其中,一个班级一般有若干名学生,而一个学生只能属于一个班级。一名班主任只能负责一个班级,班主任同时可以给该班级的学生教课。一个宿舍可以住多个学生,而一个学生只能住在某一个指定宿舍。
(1)(8分)下面的图2为本系统的E-R模型图,但是不完整,请将其补充完整。(备注:不需要画出每个实体的属性)
(2)(6分)将以上E-R图转换成相应的关系模式后如下所示,请将其补充完整,并用下划线指出每个关系模式的码。
宿舍( ,地址,人数)
班级( ,学生人数)
学生( ,姓名,性别,所在系, , , )
班主任( ,姓名,性别,是否为优秀班主任, )
答案
一、填空题(每空1分,共10分)
1.数据库管理系统在外模式、模式和内模式这三级模式之间提供了两层映象,其中(1 外模式/模式 )映象保证了数据的逻辑独立性。
2. 数据模型通常由(2 数据结构 )、数据操作和完整性约束三部分组成。
3. 事务的ACID特性包括原子性、一致性、隔离性和(3 持续性 )。
4. 有10个实体型,它们之间存在12个不同的二元联系,其中3个是1:1联系类型,3个是1:n联系类型,6个m:n联系类型,那么根据转换规则,这个E-R结构转换成的关系模式个数N的取值范围是(4 16≤N ≤22 )。
5. 设关系R中有15个元组,关系S中有10个元组,则R与S的笛卡尔积中元组个数是(5 150 )个。
6. 如果在一个系统中同时支持多种封锁粒度供不同的事务选择,则这种封锁方法称为(6 多粒度封锁 )。
7.长期存储在计算机内、有组织的、可共享的大量数据的集合称为(7 数据库 )。
8.多个事务并发执行时可能出现的数据不一致性问题有:丢失修改,不可重复读和(8 读脏数据 )。
9. 数据库系统中基本的封锁类型有共享锁和(9 排他锁 / X锁)。
10. 若属性A是基本关系R的主属性,则A不能取空值,这是关系数据库完整性约束中的(10 实体完整性 )规则。
二、选择题(每题2分,共20分)
1. 以下关于视图的描述中,错误的是( D )。
A.视图不是真实存在的基本表,而是一张虚表。
B.当对通过视图看到的数据进行修改时,相应的基本表的数据也要发生变化。
C.在创建视图时,若其中某个目标列是聚合函数时,必须指明视图的全部列名。
D.对视图修改时,相应基本表中的数据不会被修改。
2.关于FOREIGN KEY约束的描述不正确的是( D )。
A.体现数据库中表之间的关系。
B.实现参照完整性。
C.可以在创建好相应的表后,再添加FOREIGN KEY约束。
D.每个表中都必须定义。
3.设R是一个关系模式,如果R中的每个属性都是不可分解的,则称R属于( A )。
A.第1范式 B.第2范式 C. 第3范式 D.BC范式
5.数据库(DB)、数据库管理系统(DBMS)和数据库系统(DBS)三者之间的关系是( B )。
A. DB包括DBMS和DBS B.DBS包括DB和DBMS
C. DBMS包括DB和DBS D.不能相互包括
6.关于多个事务的并发调度,以下说法错误的是( B )。
A 所有遵守两段锁协议的事务,其并行执行结果一定是正确的。
B若对并发事务的一个调度是可串行化的,则所有事务都必定遵循两段锁协议。
C遵守两段锁协议的事务并发执行时可能发生死锁。
D满足冲突可串行化的并发调度其结果一定是正确的。
7.下列关于数据库恢复策略描述中,错误的是( C )。
A 对于事务故障,应利用日志文件撤销该事务对数据库所做的操作。
B 对于系统故障,恢复程序要强行撤消所有未完成事务,重做已经提交的事务。
C 系统故障的恢复需要使用数据副本。
D对于介质故障,必须重装数据副本。
8.概念结构设计阶段得到的结果是( C )。
A. 数据字典描述的数据需求 B.某个DBMS所支持的数据模型
C. E-R图表示的概念模型 D.包括存储结构和存取方法的物理结构
9.下列关于死锁和活锁问题的描述,错误的是( D )。
A.数据库系统中避免活锁常用的方法是先来先服务的策略。
B.数据库系统中预防死锁的常用方法有一次封锁法和顺序封锁法。
C.数据库系统中诊断死锁的常用方法有超时法和事务等待图法。
D.数据库系统中解决死锁的常用方法是预防死锁的发生。
10.下列关于数据转储和日志文件的描述,错误的是( C )。
A.动态转储期间可以有事务在运行。
B.静态转储过程中不允许有事务在运行。
C.动态转储方式中,不需要建立日志文件。
D.静态转储方式中,日志文件可有可无。
三、分析解答题(共20分)
1.(4分)事务T1和T2的一个并发调度序列如下:S=r1(A)w1(A)r2(A)w2(A)r1(B)w1(B)r2(B)w2(B)。
(1)该调度是否可串行化?(1分)
(2)如果是可串行化调度,请给出一个与其等价的串行调度序列。(3分)
答:(1)(1分)该调度是可串行化调度。
(2)(3分)通过交换不冲突操作,可以转换为:
S1= r1(A)w1(A)r1(B)w1(B)r2(A)w2(A)r2(B)w2(B)
2.(8分)设关系R和S分别如下图所示,要求:①(5分)分别求出a1、a2、a3和a4的象集;②(2分)S在(B,C)上的投影;③(1分)计算R ÷ S的结果。
答:
3.(8分)已知关系模式R<U,F>,其中U={A,B,C,D,E },F = { AB→C, B→D, C→E, EC→B, AC→B },求(AB)F+ 。(要求写出求解步骤)
解:设X(0)=AB;
(1) 逐一的扫描 F 集合中各个函数依赖,找左部为A,B或AB的函数依赖。得到两个: AB→C,B→D。于是X(1)= AB∪CD = ABCD。
(2)因为X(0)≠ X(1) ,所以再找出左部为ABCD子集的那些函数依赖,又得到:
AB→C,B→D, C→E,AC→B,于是X(2)=X(1)∪BCDE = ABCDE。
(3)因为X(2)= U,算法终止。
所以(AB)F+ = ABCDE。
四、综合设计题(共50分)
1.(共26分)有一学生-课程数据库,包括三张表,学生表包括属性有:学号(CHAR(4) )、姓名(CHAR(10) )、性别(CHAR(2) )、年龄(SMALLINT)和系(CHAR(20) ),学号为码;课程表包括属性有:课程号(CHAR(5) )、课程名(CHAR(20) )、先行课(CHAR(5) )和学分(INT),课程号为码;学生选课表包括属性有:学号、课程号和成绩(INT),学号和课程号的组合为码。三张表的关系模式表示如下: student(sno,sname,ssex,sage,sdept),course(cno,cname,cpno,ccredit),sc(sno,cno,grade)。
请根据下列题目要求写出相应的SQL语句。
(1)(6分)建立“学生”表student,学号是主码,姓名取值唯一,性别只能取“男”或“女”。
CREATE TABLE student
( sno CHAR(4) PRIMARY KEY,
sname CHAR(10) UNIQUE,
ssex CHAR(2) CHECK ( ssex IN (‘男’,‘女’) ) ,
sage SMALLINT,
sdept CHAR(20)
)
(2)(4分)查询分数不及格的学生姓名和分数。
SELECT sname,grade FROM student,sc
WHERE student.sno=sc.sno AND grade<60
(3)(3分)插入一条课程记录:课程名称是'数据库' ,课程编号是'10011',学分是4。
INSERT INTO course(cno,cname,cpno,ccredit)
VALUES ('10011','数据库' ,NULL,4);
注意:该题答案不唯一,只要符合要求都对。
(4)(3分)将软件工程系所有学生的年龄增加1岁。
UPDATE student SET sage=sage+1
Where sdept=“软件工程”
(5)(4分)建立“软件工程”系学生的视图rjgc_view,视图属性包括sno、sname、sage。
CREATE VIEW rjgc_view
AS
SELECT sno,sname,sage FROM student
WHERE sdept= '软件工程'
(6)(3分)删除课程编号为“10011”的所有选课信息。
DELETE FROM sc WHERE cno='10011'
(7)(3分)把对表course的SELECT权限授予用户“刘星”。
GRANT SELECT ON TABLE sc TO 刘星
2.(10分)针对上题的学生-课程数据库有如下查询:
select sname, cname from student, sc, course
where grade>85 and sdept =‘软件工程’and
course.cno = sc.cno and student.sno = sc.sno
(1)(4分)请写出其对应的关系代数表达式。
答:πsname,cname(σgrade>85(σsdept='软件工程'(student ∞sc ∞ course))) (若写出其他等价的表示形式也对)
(2)(6分)下图1为用关系代数表达式优化算法优化处理后的标准语法树,请将其补充完整。
图1 优化后的标准语法树
3.(14分)学生学籍管理系统中主要涉及的对象包括学生、宿舍、班级、班主任。其中,学生由学号、姓名、性别、所在系等属性来描述;宿舍由宿舍编号、地址、人数等属性来描述;班级由班级名称、学生人数等属性来描述;班主任由职工号、姓名、性别、是否为优秀班主任等属性来描述。其中,一个班级一般有若干名学生,而一个学生只能属于一个班级。一名班主任只能负责一个班级,班主任同时可以给该班级的学生教课。一个宿舍可以住多个学生,而一个学生只能住在某一个指定宿舍。
(1)(8分)下面的图2为本系统的E-R模型图,但是不完整,请将其补充完整。(备注:不需要画出每个实体的属性)
图2 本系统E-R图模型
(2)(6分)将以上E-R图转换成相应的关系模式后如下所示,请将其补充完整,并用下划线指出每个关系模式的码。
宿舍( 宿舍编号 ,地址,人数)
班级(班级名称 ,学生人数)
学生(学号,姓名,性别,所在系,职工号,宿舍号,班级名称)
班主任(职工号,姓名,性别,是否为优秀班主任,班级名称 )