1、天津大学试卷专用纸学院 计算机学院 专业 班 年级 学号 姓名 A 卷共 7 页 第 1 页2006 2007 学年第 2 学期本科生期末考试试卷 数据库原理 ( A 卷 共 页)(考试时间:2007 年 7 月 3 日)题号 一 二 三 成绩 核分人签字得分请将选择题的答案填写在下面的表格中1 C 2 D 3 D 4 A 5 B6 D 7 B 8 D 9 B 10 B11 B 12 C 13 B 14 B 15 D16 C 17 C 18 B 19 B 20 C21 A 22 D 23 D 24 C 25 D26 B 27 B 28 D 29 B 30 B31 C 32 C 33 D 34
2、D 35 A36 D 37 C 38 C 39 B 40 C41 A 42 B 43 BC 44 BD 45 AB46 D 47 CD 48 CD 49 A 50 ABD一、单项选择题(40 题,每题 1 分)1. 关于数据库管理系统下面哪个描述是最正确的 CA.数据库管理系统是数据的集合 . B.数据库管理系统是数据的集合,并且存储着数据与数据之间的关系.C.数据库管理系统是由一个互相关联的数据的集合和一组用以访问这些数据的程序组成.D.数据库管理系统是由数据的集合和一组用以访问这些数据的程序组成2. 下面那项不是数据库管理系统组成部分: DA. 事务管理器 B.查询处理器.C. 存储管理器
3、 D.进程控制器.3.如果有两个关系 T1,T2.客户要求每当给 T2 删除一条记录时,T1 中特定记录就需要被改变,我们需要定义什么来满足该要求. DA.在 T1 上定义视图 B.在 T2 上定义视图C.在 T1 和 T2 上定义约束 D.定义 trigger4. 关于数据库事务描述不正确的是 AA. 一个事务中的所有对数据库的改变可以部分完成和部分不完成.B. 一个事务中的所有对数据库的改变必须全部完成或全部不完成. C. 数据库的事务是不可以再次划分的.D. 如果事务在完成前被中断,数据库管理系统能把那些由未完成事务所产生的数据变化从数据库中恢复5. 某个企业的数据库包含以下信息:员工(
4、由员工编号唯一确定,记为 ssn),部门(由部门编号唯一确定记为 did)员工工作在部门中,每个部门最多有一个管理者.下面哪个 ER 图能够正确的反映管理关系. B6.关于视图的描述下面说法哪些是正确的: DA. 数据库即存储视图的定义也存视图的数据 .B. 用带有聚集运算的 SQL 创建的视图是可更新视图C. 用带有 group by 字句的 SQL 创建的视图是可更新视图D. 视图可以能在多个关系上创建天津大学试卷专用纸学院 计算机学院 专业 班 年级 学号 姓名 A 卷共 7 页 第 2 页7. 某个企业的数据库包含以下信息.员工(由员工编号唯一确定,记为 ssn),员工的子女(属性为
5、name,age),在双亲给定的情况下,每个孩子能由他的姓名唯一确定(假设他们的双亲中只有一个是公司的员工).一旦员工离开公司 ,那么企业不再对其子女信息感兴趣.下面哪个 ER 图能够正确的反映以上需求 B8.如果将下面的 ER 图转换成数据库中的关系 ,那么在数据库中需要定义. DA. 2 个关系 B. 3 个关系C. 3 个关系 ,1 个断言 D. 2 个关系,1 个断言9. 如果将下面的 ER 图转换成数据库中的关系(该 ER 图中要求员工的年龄在 18 到 55 岁之间),那么在数据库中至少需要定义. BA. 3 个关系,1 个断言 B.2 个关系,1 个约束C.3 个关系 D.2 个
6、关系10. 我们在一个关系中 BA.必须定义一个主关键字 B.只能创建一个聚集索引(cluster index)C.只能创建一个稠密索引 D.只能定义一个约束.11. 在 DBMS 的关系中 BA.关键字属性值可以为空 B.外关键字属性值可以为空C.任何属性值都可以为空 D.任何属性值都不可以为空.12. 下面关于外关键字描述不正确的是 CA.外关键字必须是所参考表的主关键字 . B.外关键字属性必须与参考的属性是相同的数据类型C.定义外关键字需要对所参考表拥有 select 权D.一个表中可以有多个外关键字 .13. 我们在 DBMS 中记录数据库员工和员工工作信息,要求当某个员工离职后,数
7、据库需要自动删除该员工的工作信息,在定义工作表时我们对于外关键字的删除规则应定义为 BA. ON DELETE ROLLBACK B. ON DELETE CASCADEC.ON DELETE SET NULL D.ON DELETE NO ACTION14. 在 DBMS 中执行 GRANT update(col1) ON TABLE t.t1 TO user7,对于该语句下面哪个描述是正确的: BA.user7 可以在 t1 上定义视图B.user7 可以更新 t1 中的 col1 属性的值C.user7 在创建其他表时可以定义参考于 t1 中 col1 属性的外关键字D.user7 可以
8、在 t1 中定义外关键字.天津大学试卷专用纸学院 计算机学院 专业 班 年级 学号 姓名 A 卷共 7 页 第 3 页15. 关系模式 R,R 的属性集是ABCDEG 有函数依赖集 F=ABC , CA, BEC, BCD , CGBD计算(AB) 的属性闭包 .DA. BDEG B. BDC C. ABCDEG D. ABCD16. staff 的定义如下 Cid INTEGER name CHAR(20) dept INTEGER job CHAR(20) years INTEGER salary DECIMAL(10,2) comm DECIMAL(10,2)下面哪个语句可以按照 job
9、 和 salary 的升序排序来返回所有员工的信息.A. SELECT id,name,salary,dept,job,years,comm FROM staff ORDER BY 4,6B. SELECT id,name,salary,dept,job,years,comm FROM staff GROUP BY 4,6C. SELECT id,name,salary,dept,job,years,comm FROM staff ORDER BY 5,3D. SELECT id,name,salary,dept,job,years,comm FROM staff GROUP BY 5,317
10、. 关系模式 Sailors(sid,lastname.firtname,age,ratring)其中 lastname 允许为空. 下面哪个语句能够查找出 lastname 属性值不为空的水手信息. CA. SELECT * FROM SAILORS WHERE LASTNAMENULLC. SELECT * FROM SAILORS WHERE LASTNAME IS not NULLD. SELECT * FROM SAILORS WHERE LASTNAME not LIKE NULL18. 关系模式 Sailors(sid,sname,age,ratring)下面哪个语句能够查找出
11、sname 属性值至少为四个字符长,并且开始和结束字符都是 B 的水手信息 . BA.SELECT * FROM SAILORS WHERE sname like B%_BB.SELECT * FROM SAILORS WHERE sname likeB_%BC. SELECT * FROM SAILORS WHERE sname like B?*BD. SELECT * FROM SAILORS WHERE sname likeB*?B19.有关系模式 R(A,B,C,D,E),R 的函数依赖集 F=A-BC,CB-E,B-D,E-A下面哪个分解具有无损连接性. BA. (A,D,C),(A
12、,B,C) B. (A,B,C),(B,C,D,E)C. (A,B,D),(C,D,E) D. (B,C,D),(A,D,E)20.有关系模式 R(A,B,C)和三个合法实例(6,4,6),(6,4,6),(7,4,8),下面哪个函数依赖在关系模式 R 上不成立 CA. A-B B. BC-A C. B-C D. C-A.21.设有关系模式 R(B,I,S,Q,D),其上函数依赖集 F=SD,IB,ISQ,BQ,BI下面那些是 R 的关键字. AA.IS B.IB C.IQ D.ISB22.下面哪个改变可以通过 alter table 实现 DA. 增加一个触发. B. 增加一个索引.C. 增
13、加一调记录 D. 定义一个候选关键字23.下面的语句按顺序成功执行后 CREATE TABLE tab1 (c1 CHAR(1)INSERT INTO tab1 VALUES (b)CREATE VIEW view1 AS SELECT c1 FROM tab1 WHERE c1 =aINSERT INTO view1 VALUES (a)INSERT INTO tab1 VALUES (b)执行 SELECT c1 FROM tab1 可以选择出多少条记录 DA.0 B.1 C.2 D.324.有一个关系模式 employee(name,department,phone_number),下面
14、哪句话允许 user1 可以修改phone_number 列的值 CA. GRANT MODIFY (phone_number) ON TABLE employee TO user1B. GRANT ALTER (phone_number) ON TABLE employee TO user1C. GRANT UPDATE (phone_number) ON TABLE employee TO user1D. GRANT REFERENCES (phone_number) ON TABLE employee TO user125.数据库中 SAILORS 表是由 joe 创建的.在 DBMS
15、完成下面的语句后 DGrant select on Sailors To Art With Grant optionJoe 执行Grant select,update on Sailors To Bob With Grant optionJoe 执行Grant select on Sailors To Bob With Grant optionArt 执行Revoke select on Sailors From Art CascadeJoe 执行Bob 对 Sailors 表拥有A. select 权 B. Update 权 C.没有任何权利 D.select 和 Update 权天津大学试
16、卷专用纸学院 计算机学院 专业 班 年级 学号 姓名 A 卷共 7 页 第 4 页26.在使用数据库中使用索引的目的是: BA.提高数据文件的存储率. B.可以更加有效的控制事务处理中的幻影问题.C.增加 DBMS 的安全性. D.提高增加记录的效率.27.下面哪种文件格式对不等值搜索的效率最高 BA.无序文件 B.排序文件 C.哈希文件 D.队列文件28.下面关于主关键字描述不正确的是: DA.在表中可以通过主关键字唯一的确定一条记录 .B.主关键字可以由多个属性组成.C.组成主关键字的属性值不能空. D.一个表中可以有多个主关键字29.关于第三范式描述正确的是 BA.一个关系属于第第一范式
17、, 它就属于第三范式B. 一个关系模式属于 BC 范式 ,它就属于第三范式C. 一个关系实例有数据冗余,它就是属于第三范式D.一个关系实例没有数据冗余 ,它就是属于第三范式30.下面哪个调度是串行调度: BA. T1:R(A),T2:R(B),T2:W(B),T1:W(A)B. T1:R(B),T1:W(B),T2:R(A), T2:W(A)C. T1:R(A),T2:R(B),.T1:W(A),T2:W(B)D. T2:R(A),T1:R(B),.T1:W(A),T2:W(B)31.下面关于数据库事务处理描述错误的是: CA. 原子性:表示的是事务的所有操作在数据库中要么全部正确反映出来要么
18、全部不反映.B. 一致性:事务在执行前如果数据库是一致性的那么执行后也是一致性的.C. 隔离性:事务在执行过程中可以感觉到系统中其他事务的执行D. 持久性:一个事务成功完成后,它对数据库的改变必须是永久的,即使是系统出现故障时也如此.32. 下面关于数据库事务处理描述正确的是: CA. 原子性和一致性是由数据库的并发控制保证的.B. 隔离性和持久性是由数据库的并发控制保证的.C. 原子性和持久性是由数据库的恢复系统保证的D. 一致性和隔离性是由数据库的恢复系统保证的33.数据库系统的 log 中检查点的作用是 : DA. 系统事务取消时数据库关系系统需要重检查点开始取消.B. 系统事务正确完成
19、时数据库系统会在 log 中设置检查点.C. 数据库重新启动时恢复系统中的重做阶段从检查点开始.D. 数据库重新启动时恢复系统中的分析阶段从检查点开始34. 下面哪个说法符合数据库系统 WAL(log 先写协议): DA. 数据库内存中被事务修改的页面在事务成功完成时被强制写到磁盘中B. 数据库内存中被事务修改的页面在事务撤销时被写到标记为非脏页C. 事务成功完成时不需要将与其相关的 log 页面强制写回磁盘D. 事务中被修改的内存数据页面在写回磁盘前必须将与其相关的 log 写回磁盘35.一个企业提供了一个查询数据库,该数据库的数据可以很容易的重新构造.为了提供数据库中磁盘数据的访问速度,下
20、面磁盘技术中采用哪种方法可以满足该要求: AA. RAID 0 B.RAID 1 C. RAID 0+1 D.RAID 536.一个企业有大量的数据需要存储在数据库中,企业要求数据的稳定性存储和数据开速访问,但不想使用太多的磁盘进行冗余存储,下面磁盘技术中采用哪种方法可以满足该要求: DA. RAID 0 B.RAID 1 C. RAID 0+1 D.RAID 537.在 JDBC 提供的数据库编程方法中提供了几种 JDBC 和数据库的连接方法: CA.5 B.2 C.4 D.138.下面哪些说法是正确的: CA在死锁预防中,等待- 死亡法是中止优先级高的事务B在死锁预防中,受伤-等待法是优先
21、级高的事务可能等待优先级低的事务释放锁C使用死锁预防的系统中不会出现死锁。D使用死锁判断的系统会不会出现死锁。39.下面那个说法正确的是 BA. 在嵌入式 SQL 编程中所有的查询都必须使用游标。B. 如果内存中的某一页的 pin_count=0,dirty=true,则该页在替换时该页的数据必须写会磁盘。C. Create table tab1( a int, b int ,c int ,primary key (a,b) create table tab2(a int , c int, d int, foreign key(a) reference tabl(a)语句可以在 DBMS 中执
22、行成功D. 如果关系模式 R 的每一个函数依赖 XA 都使得下面两个条件中的一个成立则该关系模式满足BC 范式。条件:1.X A 是平凡函数依赖 2.X 是一个关键字天津大学试卷专用纸学院 计算机学院 专业 班 年级 学号 姓名 A 卷共 7 页 第 5 页40.数据库系统管理员按照事务的方式执行下面的语句:CCreate table tab1 (a int,b int)insert into tabl values(1,2)insert into tab2 values(2,3)commit Insert into tab1 values(2,3)Insert into tab1 value
23、s(1,6)Commit Delete from tab1 where a=1Insert into tab1 values(1,7)Delete from tab1 where a=1Insert into tab1 values(1,8)数据库系统突然崩溃,系统重新启动后,该管理员执行 Select count(*) from tab1数据库系统的输出是多少:A. 6 B.3 C.4 D.5二.不定项选择题(10 题,每题 2 分)41下面关于索引说法正确的是: AA. 聚集索引必然是稠密索引B. 在数据库中只能创建一个稀松 C. 在数据库中只能创建一个聚集索引 D. 索引文件中一定不包括
24、记录的详细数据42.有关系模式 R(A,B,C,D,E),R 的函数依赖集 F=A-B,BC-E,ED-A,下面哪个说法是正确的: BA.R 是 BCNF B.R 是 1NFC.分解(ACD,BCE)是无损分解 D.分解(ABD,CDE)是无损分解43.有关系模式 R(A,B,C,D)下面哪个函数依赖集使得 R 索引不是 BCNF BCA. F=AB-CD,C-ABD B. F=ABC-D,D-AC. F=B-C,D-A D. F=AB-C,C-D,C-AB44.下面关于数据库事务并发调度正确的是 BDA. 冲突可串行化调度一定是观测可串行化调度B. 冲突可串行化调度一定与某种串行调度的结果一
25、样.C. 观测可串行化调度调度可以通过画图来判断D. 冲突可串行化调度可以通过画图来判断45.有两个关系 TAB1,TAB2TAB1 TAB2 C1 C2 CX CY - - - - A 11 A 21 B 12 C 22 C 13结果集如下C1 C2 CX CY - - - - A 11 A 21 C 13 C 22哪个 SQL 语句能够生成该结果 ABA. SELECT * FROM tab1 right OUTER JOIN tab2 ON c1=cxB. SELECT * FROM tab1 INNER JOIN tab2 ON c1=cxC. SELECT * FROM tab1 F
26、ULL OUTER JOIN tab2 ON c1=cxD. SELECT * FROM tab1 LEFT OUTER JOIN tab2 ON c1=cx46 下面视图定义是中哪个是可更新视图 DA. Create view V1 as select S.rating , max(S.age) as avgage from Sailors S group by S.ratingB. Create view V2 as select * from saliros S1 where S.age18 expect select * from sailors S2 where S2.name li
27、ke %TomC. Create view V3 as select S.name, B.bname from Sailor, Boats where S.sid=B.sidD. Create view V4 as select * from Bailors B where B.name is not null47 下面哪个 SQL 正确表示查找红色船被订船情况. CDA. Select * from Reserves R,Boat B where R.bid=B.bid and b.color=redB. Select * from Reserves R, inner join Boats
28、B on R.bid=B.bid where b.color=redC. Select * from Reserves R, right outer join Boats B on R.bid=B.bid and b.color=redD. Select * from Reserves R, full outer join Boats B on R.bid=B.bid and S.age1748.下面说法正确的是: CDA.在任何情况下严格的 2PL 锁能够保证调度的可串行化.B.在一个表作查询时需要先给符合条件的查询上记录加上 S 锁然后给表加上 IS 锁.C.在一个表作查询时需要先给表加上
29、 IS 锁然后给符合条件的查询上记录加上 S 锁D.在一个表上同时可以加上 IS 锁和 IX 锁天津大学试卷专用纸学院 计算机学院 专业 班 年级 学号 姓名 A 卷共 7 页 第 6页49.下面哪个调度会出现死锁: AA.T1:R(X),T2:W(X),T2:W(Y),T3:W(Y),T1:W(Y),T1:Commit, T2:Commit, T3:CommitB T1:R(X),T2:W(Y),T2:W(X),T3:W(Y),T1:W(Y), T1:Commit, T2:Commit, T3:CommitC T1:R(A),T2:W(B),T1:R(A),T3:R(C),T2:W(C),T
30、4:W(A),T3:W(B)D.T1:R(A),T2:W(B),T3:W(C),T1: Commit,T2:W(A), T2:Commit,T3:W(B), T3:Commit50.下面哪个调度是冲突可串行的调度 ABDA. T1:R(X),T1:R(Y),T1:W(X),T2:R(Y),T3:W(Y),T1:W(X),T2:R(Y)B. T1:R(X),T2:R(Y),T3:W(X),T2(R(X),T1:R(X)C. T1:R(X),T2:R(X),T1:W(X),T2:W(X)D. T1:W(X),T2:R(Y),T1:R(Y),T2:R(X)三简答题(40 分)有关系有关系模式 Sai
31、lors(sid:integer,sname:string,rating:integer),Boats(bid:interger,bname:string,color:string)Reserves(sid:integer,bid:integer,day:datetime)各关系模式的关键字用下划线表示,其中 Reserver 的关键字中 sid 来自 Sailors,bid 来自Boats,Reserver 的记录表示水手的订船记录。1.请用关系代数表达式写出下面的查询(4 分)查找只定过同一艘船的水手的 sid。 )()(Re Re),25,4,12,1( 211Tsidsvr srvsr
32、bibiidT bidiidsisid 2.用元组关系演算表达式写出下面的查询(2 分)查找定了红色船的水手的 sid .(,| sidRiPredcolBbidiRboatsBresvRP 3请用 SQL 语句写出下面的查询(16 分)1) 查找订过红色船或订过绿色船水手的姓名(3 分)Select s.sname from sailors s,reserves r,boats b Wherer s.sid=r.sid and r.bid=b.bid and (b.color=red or b.color=green)2)将水手按级别(rating)分组,查找平均年龄最小的级别组(6 分)S
33、elect temp.rating,temp.avg_ageFrom (select rating,avg(age) as avg_age from sailors Group by rating) as tempWhere temp.avg_age=select min(temp1.avg_age) from temp temp13) 查找定了所有红色船的水手的姓名(6 分)Select s.sname from sailors swhere not exists( select b.bid from boats b where b.color=red except Select r.bid
34、 from reserves r where r.sid=s.sid)天津大学试卷专用纸学院 计算机学院 专业 班 年级 学号 姓名 A 卷共 7 页 第 7 页4有关系模式 employees(ssn:char(10),name:char(20),age:int),其中 ssn 是 employees 的主关键字,departments(did:char(5),dname:char(20), 其中 did 是 departments 的主关键字.work_in( ssn:char(10),did:char(5),from:date,to:date), 其中(ssn,did,from,char
35、)是 work_in 的主关键字,did,ssn 分别是指向deparments,employess 的外关键字。表示员工在某段时间内工作与某个部门。另外还要求每个的员工都要工作与某个部门,每个部门都要有人工作。请用 SQL 语句创建 work_in 关系,并表达出每个的员工都要工作与某个部门,每个部门都要有人工作这个约束条件。 (5 分)Create table work_in(ssn char(10),did char(10),from date,to date,primary key(ssn,did,from,to),foreign key ssn reference employees
36、,foreign key did reference departments)create assert e_d( check(select count(*) from departments=select count(distinct did) from work_in) andcheck(select count(*) from employees=select count(distinct sid) from work_in)5请用 Armstrong 公理证明,若 XY,YZ.则 XZ(5 分)根据函数依赖的定义:因为 XY,YZ 成立所以对于关系模式 R 的任意一个实例中的任意两个元
37、组t1,t2.如果 t1.X=t2.X 那么 t1.Y=t2.Y.如果 t1.Y=t2.Y 那么 t1.Z=t2.Z.所以对于任意的两个元组 t1,t2 当 t1.X=t2.X 则 t1.Z=t2.Z所以 XZ6.设有关系模式 R,F=AC,CA,BAC,D AC,BDA是 R 的函数依赖集(8 分)1)请求出 R 的函数依赖最小集(5 分)先将函数依赖的右边变成单个属性F= AC,CA ,BA,BC,DA,DC,DBA出去函数依赖左边的多于属性因为 AC,CA ,BA,BC,DA,DC 左边都是单个属性不用检查对于 DBA,除去 D 后,B 的属性闭包 =BAC 包括 A 所以 D 是多余属
38、性则 DBA 变成,B A所以函数依赖集变为 F1= AC,CA ,BA,BC,DA,DC除去多余的函数依赖a. 去掉 AC 在 F1-AC中 A 的属性闭包=A 所以 AC 不是多于依赖b. 去掉 CA 在 F1-CA中 C 的属性闭包=C 所以 CA 不是多于依赖c. 去掉 BA 在 F1-BA中 B 的属性闭包=BCA 所以 BA 是多于依赖 F1= AC,CA , BC,DA,DCd. 去掉 BC 在 F1-BC中 B 的属性闭包=B 所以 BC 不是多于依赖e. 去掉 DA 在 F1-DA中 D 的属性闭包=DCA 所以 DA 是多于依赖 F1= AC,CA , BC,DCR 的函数依赖最小集是 F= AC,CA , BC,DC2)找出一个关键字,并证明其是关键字 (3 分)BD 是一个关键字.因为 BD 的属性闭包=BDCA 是 R 的属性全集B 的属性闭包是 BCA 不是 R 的属性全集D 的属性闭包是 DCA 不是 R 的属性全集这样不存在 BD 的真子集也能是的该真子集的属性闭包是 R 的属性全集所以 BD 是 R 的关键字