《数据库原理》期末考试模拟试卷【难度:中】
(考试时间120分钟,满分100分)
一、选择题(15分,每空1分):
1.数据库系统中,物理数据独立性(physical data independence)是指____。
A.数据库与数据库管理系统的相互独立 B.应用程序与DBMS的相互独立
C.应用程序与存储在磁盘上数据库的物理模式是相互独立的 D.应用程序与数据库中数据的逻辑结构相互独立
2.数据库系统的特点是____、数据独立、减少数据冗余、避免数据不一致和加强了数据保护。
A.数据共享 B.数据存储 C.数据应用 D.数据保密 3.数据库管理系统能实现对数据库中数据的查询、插入、修改和删除等操作的数据库语言称为____。
A.数据定义语言(DDL) B.数据管理语言 C.数据操纵语言(DML) D.数据控制语言
4.在关系代数的专门关系运算中,从表中取出满足条件的属性的操作称为①B;从表中选出满足某种条件的元组的操作称为②A;将两个关系中具有共同属性值的元组连接到一起构成新表的操作称为③ C。
A.选择 B.投影 C.连接 D.扫描 5.关系模型中,一个候选码____。
A.可由多个任意属性组成 B.至多由一个属性组成
C.可由一个或多个其值能唯一标识该关系模式中任何元组的属性组成 D.必须由多个属性组成 6.SQL语言是____语言。
A.层次数据库 B.网络数据库 C.关系数据库 D.非数据库 7.数据库中只存放视图的________。
A.操作 B.对应的数据 C.定义 D.限制 8.关系数据库规范化是为解决关系数据库中____问题而引入的。
A.数据冗余 B.提高查询速度 C.减少数据操作的复杂性 D.保证数据的安全性和完整性 9.数据库管理系统通常提供授权功能来控制不同用户访问数据的权限,这主要是为了实现数据库的________。
A.可靠性 B.一致性 C.完整性 D.安全性 10.若事务T对数据对象A加上S锁,则________。
A.事务T可以读A和修改A,其它事务只能再对A加S锁,而不能加X 锁。 B.事务T可以读A但不能修改A,其它事务能对A加S锁和X锁。
C.事务T可以读A但不能修改A,其它事务只能再对A加S锁,而不能加X 锁。 D.事务T可以读A和修改A,其它事务能对A加S锁和X锁。 11.事务的原子性是指________。
1
A.事务中包括的所有操作要么都做,要么都不做
B.事务一旦提交,对数据库的改变是永久的
C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的 D.事务必须是使数据库从一个一致性状态变到另一个一致性状态 12.数据库中的封锁机制(locks)是____的主要方法。 A.完整性 B.安全性 C.并发控制 D.恢复
13.对并发操作若不加以控制,可能会带来数据的____问题。 A.不安全 B.死锁 C.死机 D.不一致
二、填空题(15分,每空1分):
1.传统的集合“并、交、差”运算施加于两个关系时,这两个关系的①属性个数必须相等,②相对应的属性值必须取自同一个域。
2.指出下列缩写的含义:DBMS ①DBMS数据库管理系统、DBA ②DBA数据库管理员。 3.在关系A(S,SN,D)和B(D,CN,NM)中,A的主码是S,B的主码是D,则D在S中称为__外码__。
4.数据冗余可能导致的问题有①浪费存储空间及修改麻烦和② 5.数据库在运行过程中可能产生的故障有①Transaction failure ②System crash ③Disk failure
三、判断题(10分,每小题5分):判断下述结论是否正确,对正确的结论加以证明,对错误的结论说明原因(或举一反例进行说明)。
1.view可串行化的调度(schedule)一定也是冲突(conflict)可串行化的调度。
结论错误。例如581页Schedule 9 is a view serializable schedule but is not a conflict serializable schedule.
2.在确定关系的候选码时,如果属性X在函数依赖的左右都不出现,则候选码中必不包含X。 结论错误。在确定关系的候选码时,如果属性X在函数依赖的左右都不出现,则候选码中必包含X,因为只有X能够函数决定X。
四、简答题:
2.什么是关系的外码?并举例说明。
答:关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码,也称外码。学生数据库中有关系STUDENT(SNO,SNAME,SEX,AGE)、关系COURSE(CNO,CNAME)和关系SC(SNO,CNO,GRADE),SC关系中SNO是外码,其参照关系是STUDENT;CNO也是外码,其参照关系是COURSE。
3.如何通过定义视图和存取控制保证数据库的安全性?并用SQL语言举例说明。
视图能够对机密数据提供安全保护。有了视图机制,就可以在设计数据库应用系统时,对不同的用户定义不同的视图,使机密数据不出现在不应看到这些数据的用户视图上,这样就由视图的机制自动提供了对机密数据的安全保护功能。例如Student表涉及三个系的学生数据,可以在其上定义三个视图,每个视图只包含一个系的学生数据,并只允许每个系的学生查询自己所在系的学生视图。
例:建立信息系学生的视图。
2
CREATE VIEW IS_Student
AS
SELECT Sno, Sname, Sage FROM Student WHERE Sdept='IS';
数据库的安全性是指保护数据库,防止不合法的使用所造成的数据泄露和破坏。数据库系统中保证数据安全性的主要措施是进行存取控制,即规定不同用户对于不同数据对象所允许执行的操作,并控制各用户只能存取他有权存取的数据。不同的用户对不同的数据应具有何种操作权力,是由DBA和表的建立者(即表的属主)根据具体情况决定的,SQL语言则为DBA和表的属主定义和回收这种权力提供了手段。 例:把查询Student表权限授给用户U1。
GRANT SELECT ON TABLE Student TO U1;
五 应用题
1. 已知 R U={ A,B,C,D,E }
F={AB ?C, C ?D,D ?E}
R的一个分解?={ R1( A,B,C ),R2(C,D), R3(D,E) } 判断?是否为无损连接?
1.构造一个初始二维表如下图 2.运用函数依赖后,
A B C D E 二维表最终变为如下表所示 R1 a1 a2 a3 a4 a5 A B C D E R2 a3 a4 a5 R1 a1 a2 a3 R3 a4 a5 R2 a3 a4 R3 a4 a5 因此该分解是无损连接的。
2三个表即学生表S、课程表C和学生选课表SC,它们的结构如下: S(S#, SN, SEX, AGE, DEPT) C(C#, CN)
SC(S#, C#, GRADE)
其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE.为成绩。
(1) 检索所有比“王华”年龄大的学生姓名、年龄和性别
(1)SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=’王华’)
(2) 检索选修课程“C2”的学生中成绩最高的学生的学号
(2)SELECT S? FROM SC WHERE C?=’C2’AND GRADE=(SELECT MAX(GRADE) FROM SC WHERE C?=’C2’)
(3) 检索学生姓名及其所选修课程的课程号和成绩
(3)SELECT SN, C?,GRADE FROM S,SC WHERE S. S?=SC. S?
3