1、第 1 页数据库原理与应用复习题资料一、单项选择题1. 关系数据模型的基本数据结构是( D ) 。A树 B图 C索引 D关系2 提供数据库定义、数据操纵、数据控制和数据库维护功能的软件称为( C ) 。AOS BDS CDBMS DDBS3 下面对关系中属性的描述,错误的是( B ) 。A.属性的次序可以任意交换 B.允许多值属性C.属性名唯一 D.每个属性中所有数据来自同一属性域4. 超码、候选码和主码之间的关系是( C ) 。A.超码候选码主码 B.超码主码候选码C.主码候选码超码 D.主码超码候选码5. 在图书借阅关系中,能够成为主关键字(或称主码)的属性是( C ) 。A.图书名 B.
2、图书作者 C.图书编号 D.图书价格6. 在第一个关系中出现,同时在第二个关系也出现的记录组成的新关系称为( C ) 。A.两个关系的和 B.两个关系的并 C.两个关系的交 D.两个关系的差7. 如果要设计一个用于记录“真/假” 、 “开/关”等状态信息的数值,最佳的数据类型是( B )A.char B.bit C.datetime D.money8. 关系笛卡尔积运算记号 RS,( D )A. R 为关系名,S 为属性名 B. R 和 S 均为属性名 C. R 为属性名,S 为关系名 D. R 和 S 均为关系名9. 设一个关系为 R(A,B,C,D,E),它的最小函数依赖集为 FD=AB,
3、CD,CE,该关系只满足第一范式,若要规范化为第二范式,则将被分解为( C )个关系。A. 1 B. 2 C. 3 D. 410. 数据库设计阶段分为( D )A.物理设计阶段、逻辑设计阶段、编程和调试阶段B.模型设计阶段、程序设计阶段和运行阶段C. 方案设计阶段、总体设计阶段、个别设计和编程阶段D. 概念设计阶段、逻辑设计阶段、物理设计阶段、实施和调试阶段11. 元组关系演算表达式t| R(t) S(t)表达的是( D )A. RS B. RS C. R-S D. S-R12. 设有关系模式 R(A, B,C,D) ,F 是 R 上成立的函数依赖集,F=BC,CD,第 2 页则属性 C 的闭
4、包 C+为( C )A.BCD B.BD C.CD D.BC13. 关系运算中花费时间可能最长的运算是( C )。A投影 B选择 C笛卡尔积 D除14. 下列 SQL 语句中,实现唯一约束的是( A ) 。A.学号 char(8) not null constraint un_no uniqueB.学号 char(8) not null pk_学生表C.性别 char(2) not null check(性别=男 or 性别=女)D.学号 char(8) not null15. 设关系模式 R(A,B,C,D),F 是 R 上成立的 FD 集,F= ABC,DB ,那么 = ACD,BD 相对
5、于 F ( B )A是无损联接分解,也是保持 FD 的分解B是无损联接分解,但不保持 FD 的分解C不是无损联接分解,但保持 FD 的分解D既不是无损联接分解,也不保持 FD 的分解16. 当局部 E-R 图合并成全局 E-R 图时可能出现冲突,不属于合并冲突的是( B )。A属性冲突 B语法冲突 C结构冲突 D命名冲突17. SQL 中的“断言”机制属于 DBS 的( A )A完整性措施 B安全性措施 C物理安全措施 D恢复措施18. 事务是数据库进行的基本工作单位。如果一个事务执行成功,则全部更新提交;如果一个事务执行失败,则已做过的更新被恢复原状,好像整个事务从未有过这些更新,这样保持了
6、数据库处于( B )状态。A安全性 B一致性 C完整性 D可靠性19. 事务的原子性是指( A ) 。A事务中包括的所有操作要么都做,要么都不做B事务一旦提交,对数据库的改变是永久的C一个事务内部的操作及使用的数据对并发的其他事务是隔离的D事务必须是使数据库从一个一致性状态变到另一个一致性状态20. 用于数据库恢复的重要文件是( C ) 。A数据库文件 B索引文件 C日志文件 D备注文件21. 在文件系统中,所具有的数据独立性是( D )A系统独立性 B物理独立性 C逻辑独立性 D设备独立性22 数据库系统中存放三级结构定义的 DB 称为( A ) 。ADBS BDD CDDL DDBMS23
7、 域是实体中相应属性的( A ) 。第 3 页A.取值范围 B.值 C.名称 D.描述24. 设 D1、D2 和 D3 域的基数分别为 2、3 和 4,则 D1D2D3 的元组数为( B )。A. 9 B. 24 C.10 D.2025. 若一个关系为 R(学生号,姓名,性别,年龄) ,则( A )适合作为该关系色主码。A.学生号 B.姓名 C.性别 D.年龄26. 设一个集合 A=3,4,5,6,7,集合 B=1,3,5,7,9,则 A 和 B 的并集中包含有( C )个元素。A.10 B.8 C.7 D.627. 在一个关系 R 中,若存在 X(Y,Z),则也隐含存在 XY 和 XZ,称此
8、为函数依赖的( B )规则。A.传递性 B.分解性 C.合并性 D.增广性28. 若一个关系的任何非主属性都不部分依赖于任何候选码,则称该关系最高达到了( B )范式。A.第一 B.第二 C.第三 D.BC29. 设一个关系为 R(A,B,C,D,E),它的最小函数依赖集为 FD=AB,CD,CE,该关系只满足第一范式,若要规范化为第二范式,则将被分解为( C )个关系。A. 1 B. 2 C. 3 D. 430. 由概念设计进入逻辑设计时,原来的( C )联系通常都需要转换成对应的基本表。A. 一对一 B.一对多 C.多对多 D.多对一31. 设有关系 R(A,B,C)和关系 S(B,C,D
9、),那么与 SR 等价的关系代数表达式( B )A 1=5(S R) B 1=5(SR ) C 1=2(S R) D 1=2(SR)32. 查询优化策略中,正确的策略是( D )A尽可能早地执行笛卡尔积操作 B尽可能早地执行并操作C尽可能早地执行差操作 D尽可能早地执行选择操作33. SQL 中, “DELETE FROM 表名”表示( A )A从基本表中删除所有元组 B从基本表中删除所有属性C从数据库中撤消这个基本表 D从基本表中删除重复元组34. 设关系模式 R(A,B,C) ,F 是 R 上成立的 FD 集,F=AB,CB,=AB,AC是 R 的一个分解,那么分解 ( C ) 。A保持函
10、数依赖集 F B丢失了 AB C丢失了 CB D丢失了 BC35. 在 DB 技术,未提交的随后被撤消了的数据,称为( D )第 4 页A报废的数据 B过时的数据 C撤消的数据 D脏数据36. SQL 中的“断言”机制属于 DBS 的( A )A完整性措施 B安全性措施 C物理安全措施 D恢复措施37. DBMS 的并发控制子系统,保证了事务( C )的实现。A原子性 B一致性 C隔离性 D持久性38. SQL 中不一定能保证完整性约束彻底实现的是( D )A主键约束 B外键约束 C局部约束 D检查子句39. 事务日志的用途是( C )A. 事务处理 B. 完整性约束 C. 数据恢复 D. 安
11、全性控制二、填空题1数据库系统的三级模式结构和两级数据映象确保了数据的 逻辑 _独立性和_物理_独立性。2设一个集合 A=3,4,5,6,7,集合 B=1,3,5,7,9,则 A 和 B 的交集中包含有_3_个元素,A 和 B 的差集中包含有_2_个元素。3在一个关系 R 中, “职工号”函数决定“姓名”既是_非平凡 函数依赖,又是_完全_函数依赖。4在一个关系 R 中,若存在“学号系号,系号系主任” ,则隐含存在着_学号_函数决定_系主任_。5在 SQL 中,主码约束的关键字为_PRIMARY KEY_,外码约束的关键字为_FOREIGN KEY_。6一个关系若存在部分函数依赖和传递函数依赖
12、,则必然会造成_数据冗余_和_操作异常_。7. SQL 中将完整性约束分为基本表完整性约束、 域完整性 和 断言完整性 三种类型。8. 并发操作带来的数据不一致性通常表现为三类:丢失修改、 不可重复读 和 读“脏”数据 。9. 概念设计阶段的主要任务是根据_需求分析_的结果找出所有数据实体,画出相应的_ER 图_。10. 对于较复杂的系统,概念设计阶段的主要任务是:首先根据系统的各个局部应用画出各自对应的_局部 ER 图_,然后再进行综合和整体设计,画出_整体ER 图_。11.改善数据库性能的主要措施有: 减少连接运算 、减小关系的大小和数据量、第 5 页尽可能使用快照 。12. 数据库管理系
13、统的主要功能有 数据定义 、 数据操纵 、数据库的运行管理和数据库的建立以及维护等 4 个方面。13数据库系统的三级模式结构和两级数据映象确保了数据的 逻辑 _独立性和_物理_独立性。14关系数据库系统具有 数据结构 单一、采用 集合运算 、数据完全独立、数学理论支持等优点。15在数据库体系结构中,两级数据映像分别是指 外模式 和 模式 之间的数据映像以及模式和内模式之间的数据映像。16设一个关系为 R(A,B,C,D,E) ,它的最小函数依赖集为FD=AB,CD,BE,则关系的候选码为 (A,C ) ,该候选码含有 2 属性。17在 SQL 中, 主码 约束的关键字为 primary key
14、, 外码 约束的关键字为foreign key。18在 SQL 中,Create View 和 drop view 命令分别为 建立 和 删除 视图的命令。19.R 的属性集合为A,B,C,其函数依赖集合为 F=BA,CB,AB。R 的候选键是 C ,属于第 2 范式。20.改善数据库性能的主要措施有: 减少连接运算 、减小关系的大小和数据量、尽可能使用快照 。21. 在关系数据库的规范化理论中,在执行” 分解”时,必须遵守规范化原则:既要保持_函数依赖 _关系,又要具有 _无损_连接性。22. 在 SQL 语言中,为了数据库的安全性,设置了对数据的存取进行控制的语句,对用户授权使用 GRAN
15、T 语句,收回所授的权限使用 REVOKE 语句。23. 实体完整性是指在基本表中,主属性不能 取空值 ;参照完整性是指在基本表中,外码可以是 空值或者另一个关系主码的有效值 。24. 若事务 T 对数据对象 A 加了 S 锁,则其他事务只能对数据 A 再加 S 锁 ,不能加 X 锁 ,直到事务 T 释放 A 上的锁。25. 制作后援副本的过程称为转储。它又分为 和 。26. 事务故障、系统故障的恢复是由 系统自动 完成的,介质故障是由 DBA 执行恢复操作过程 完成的。27. E-R 图向关系模型转化要解决的问题是如何将实体和实体之间的联系转换成关系模式,如何确定这些关系模式的 属性 和 码
16、 。三、简答题对给定的三个关系模式:第 6 页学生 S(sno,sname,sex,age,nation,clname,place),其中 sno:学号,sname:学生姓名,sex:性别,age:年龄,nation:民族,clname:班级名称,place:地址。课程 C(cno,cname,term,period,credit),其中 cno:课程号,cname:课程名,term:学时,period:学期,credit:学分。选课 SC(sno,cno,grade),其中 grade 为成绩。按要求完成下列各题。1.检索年龄大于 20 岁的男学生。(1)写出关系代数表达式sex=男age2
17、0(S)(2)写出元组关系演算表达式t|S(t)t4 20t3= 男)(3)写出域表达式t1t2t3t4t5t6t7|S(t1t2t3t4t5t6t7)t 420t 3=男2.检索选修全部课程的学生的姓名(1)写出关系代数表达式sname(sno,cno(SC)cno(C) S)(2)写出元组关系演算表达式t|(u)(v)(w)(S(u)C(v)SC(w)u1=w1w2=v1t1=u2)(3)写出域表达式t1|(u1u2u3u4u5u6u7)(v1v2v3v4v5)(w1w2w3)(S(u1u2u3u4u5u6u7)C(v1v2v3v4v5)SC(w1w2w3)u1=w1w2=v1t1=u2)
18、3.检索英语班的全体学生。(1)写出关系代数表达式clname=英语(S)(2)写出元组关系演算表达式t|S(t)t6 = 英语)(3)写出域表达式t1t2t3t4t5t6t7|S(t1t2t3t4t5t6t7)t 6=英语4.检索同时选修课程号为 C01 和 C03 的学生的姓名(1)写出关系代数表达式sname(1(2=C015=C031=4(SC SC) S)(2)写出元组关系演算表达式t|(u)( v)(w)(SC(u)SC(v)S(w)u2= C01v2=C03u1=v1 u1=w1 t1=u2)(3)写出域表达式第 7 页t1|(u1u2u3)( v1v2v3)(w1w2w3w4w
19、5w6w7)(SC(u1u2u3)SC(v1v2v3)S(w1w2w3w4w5w6w7)u2=C01v2=C03u1=v1u1=w1t1=w2)5.用 SQL 语句写出下列查询操作(1)查询选修了课程号为 c01 和 c02 两门课程的学生的学号Select sc1.sno From sc as sc1,sc as sc2 Where sc1.sno=sc2.sno and o=c01 and o=c02 (2) 检索“英语”专业学生所学课程的信息,包括学号、姓名、课程名和分数;Select sc.sno,sname,cname,grade from S,SC,C where S.sno=SC
20、.sno AND SC.cno=C.cno AND S.clname=英语 (3) 查询学生表中所有不姓李的学生;Select * from S where sname NOT LIKE 李% (4)查询每个学生考试的平均成绩,并列出学生的学号、姓名和平均成绩Select S.sno as 学号,sname as 姓名,avg(grade) as 平均成绩 From S,SC (1 分)Where S.sno=SC.sno group by S.sno,sname (5)查询选修课程号为 c03 课程的学生学号、姓名和成绩。select S.sno,sname, grade from S,SC
21、 where S.sno=SC.sno AND SC.cno=C03 6.用 SQL 语句写出下列更新操作(1)插入一条课程 C(c18,创造学,5,36,2)Insert into C(cno,cname,term,period,credit) values(c18,创造学,5,36,2) (2)将非英语班的学生的英语(课程号为 c01)分数提高 2%Update SC set grade=grade*1.02 where sno in(select sno from S where clname英语) and cno=C01(1 分)(3)删除成绩为空的修课记录Delete from SC
22、 where grade IS NULL (4)将李小林同学的性别修改为男Update S set sex=男 where sname=李小林7. 检索英语 1302班选修的课程名称,关系查询表达式为cname 第 8 页(s.sno=o=os.clname=英语 1302(SSCC),画出表达式对应的语法树并进行优化。8. 设某航班某日尚有余票 100 张,甲预订 15 张,乙预订 25 张,若按如下顺序执行有何问题?如何实现并发控制?甲 乙( 1) 读余票 A( 2) 读余票 A( 3) A=A-15( 4) 写回 A( 5) A=A-25( 6) 写回 A答:若按上述顺序执行,则最后的余
23、票为 75,显然不对,因为正确结果应为60。这种错误属于“丢失修改” ,即把甲写回的数据丢失了。应采用封锁机制实现并发控制,具体修改如下:甲 乙( 1) XLOCK A( 2) 读 A=100( 3) XLOCK A( 4) A=A-15 等待( 5) 写回 A=85 等待( 6) COMMIT(提交) 等待( 7) UNLOCK A 等待第 9 页( 8) 获得 XLOCK A( 9) 读 A=85(10) A=A-25(11) 写回 A=60(12) COMMIT(提交)(13) UNLOCK(A)8. T1,T2 两个事务并发操作,顺序如下表所示,T1 T2(1)读 A=20(2)A=A
24、-10(3)写回 A=10(4) 读 A=10(5)ROLLBACK(6)恢复 A=20(1)该操作序列是否存在问题,属于什么问题? 答:存在问题,属于读“脏”数据。(2)如有问题,请采用封锁机制进行修改。答:应修改为:T1 T2(1)XLock A(2)读 A=20(3)A=A-10(4)写回 A=10(5) SLock A(6)ROLLBACK 等待(7)恢复 A=20 等待(8)Unlock A 等待(9) Slock A(10) 读 A=20(11) Unlock A四应用题1. 请为洗衣机经销商设计一个数据库,要求包括生产厂商和产品的信息。生产厂商的信息包括名称、地址、电话;产品的信
25、息包括品牌、型号、价格;生产第 10 页信息包括生产某产品的数量和日期。要求:(1)将数据库用 E/R 图来描述;(2)转换成关系模型并注明函数依赖。生产厂商(名称,地址,电话) 名称地址,电话 产品(品牌,型号,价格) 品牌,型号价格 生产(厂商名称,产品品牌,型号,数量,日期) 厂商名称,产品品牌,型号日期,数量 2. 设有一教学管理数据库,其属性为:学号(S#),课程号(C#),成绩(G),任课教师(TN) ,教师所在的系(D)。这些数据有下列语义:(1)学号和课程号分别与其代表的学生和课程一一对应;(2)一个学生所修的每门课程都有一个成绩;(3)每门课程只有一位任课教师,但每位教师可以有多门课程;(4)教师中没有重名,每个教师只属于一个系。(1)试根据上述语义确定函数依赖集和候选键。(2)如果用上面所有属性组成一个关系模式,那么该关系模式为第几范式? (3)将其分解为第 3 范式。答:(1)函数依赖集:F (S# ,C#)G,C#TN,TND ;候选键为(S#,C#) 。(2)存在非主属性对候选键的部分依赖(S#,C#)TN,该关系模式为第 1范式。(3)将该关系模式分解为下列 3 个关系可满足第 3 范式。