一、填空题(每空 1 分,共 10 分)
- 数据库管理系统的主要功能有数据定义功能 、 数据操作功能、数据库的运行管理和数据库的建立以及维护等 4 个方面。
- 数据独立性又可分为 逻辑数据独立性 和 物理数据独立性。
- 概念模型是对信息世界的建模,其表示方法我们常使用 E-R 图来描述。
- 实体之间的联系可抽象为三类,它们是 1∶1 、 1∶m 和 m:n 。
- 视图是一个虚表,它是从一个或几个基本表中导出的表。在数据库中,只存放视图的定义,不存放视图的 对应数据 。
- SQL 中创建数据库对象使用 create 关键字;删除数据库对象使用 Drop 关键字。
- 在基于日志的数据库数据恢复技术中, 对发生故障时没有完成的事务应执行UNDO 操作。
- 查询优化有多种方法,按照优化的层次可以分为代数优化和 物理优化 。
- 解决并发操作带来的数据不一致性总是普遍采用 封锁 。
- 在 1NF 的基础上,消除了部分函数依赖和传递函数依赖 以后的关系模式,属于 3NF。
二、单项选择题(每小题 2 分,共 40 分)
- 以下说法中错误的是 D 。
A、 数据库中的数据是长期存储的
B、 数据库中的数据是按照一定方式组织的
C、 数据库中的数据是可共享的
D、 数据库中的数据是没有冗余的
2.关于 E-R 方法中的联系,下列说法正确的是(A )
①联系必须有命名
②多个实体间也可以有联系
③单个实体间也可以有联系
④联系也可以有属性
A.①②③④ B. ①③④ C. ①②③ D. ②③④
3.在数据库物理设计阶段,建立索引的目的是为了提高数据的(C )
A.更改效率 B. 插入效率 C. 查询效率 D. 删除效率
4.在关系代数运算中,五种基本运算为 ( C )。
A.并、差、选择、投影、自然连接 B.并、差、交、选择、投影C.并、差、选择、投影、乘积【笛卡尔积】 D.并、差、交、选择、乘积
5.关系运算中花费时间可能最长的运算是 ( C)。
A.投影 B.选择 C.笛卡尔积 D.除
6.数据库的 是指数据的正确性和相容性。( B)
A.安全性 B.完整性 C.并发控制 D.恢复
7.在视图上不能完成的操作时( D)
A.在视图上定义新的视图 B. 查询操作
C.更新操作 D. 在视图上定义新的基本表
8.SQL 查询中 谓词后面只能引出子查询(B )
A.[NOT] IN B.[NOT] EXISTS
C.[NOT]BETWEEN AND D.比较运算符
9.若用如下的 SQL 语句创建一个 student 表:
CREATE TABLE student(NO Char(4) NOT NULL, NAME Char(8) NOT NULL,
SEX Char(2), AGE Number(2))
可以插入到 student 表中的是(B )
A.(‘1031’,‘曾华’,男,23) B.(‘1031’,‘曾华’,NULL,NULL) C.(NULL,‘曾华’,‘男’,‘23’) D.(‘1031’,NULL,‘男’,23)
解析:A选项少了引号,char类型必须要有引号,CD很明显,定义表的时候前两个字段是非空的。
10.违反参照完整性时的系统处理方法,不包括 ( C)
A. 拒绝执行 B. 级联操作 C. 系统自动修正 D. 设置为空
11.在数据库设计中,将 E-R 图转换成关系数据模型的过程属于(B )
A.需求分析阶段 B.逻辑设计阶段
C.概念设计阶段 D.物理设计阶段
12.E-R 图向关系模型转换原则中,一个 M:N 的联系( A)
A.转换为一个独立的关系模式 B. 与 M 端对应的实体关系模式合并C.与 N 端对应的实体关系模式合并 D. 与任意一端实体关系模式合并
解析:1)实体间的联系是1:1
可以在两个实体类型转换成两个关系模式中的任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。
2)如实体间的联系是1:N
则在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的属性。
3)如实体间的联系是M:N
则将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。
13.在 ARMSTRONG 公理系统中,下列结论错误的是(C )
A.若 A→B, B→C 则 A→C
B.若 A→B, A→C 则 A→(B,C)
C.若 B→A, C→A 则(B,C)→A
D.若(B,C)→A 则 B→A, C→A
14.任给关系 R<U>,X 和 Y 是 U 的子集,若 X 既不函数决定 Y,又不函数依赖于 Y,则 X 与Y 间的联系为( D)
A.1:1 B.1:N C.N:1 D.M:N
解析: X 既不函数决定 Y,排除1对1和1对多.又不函数依赖于 Y,说明两者没有说明必然的联系,但是又是都U的子集,只能是多对多关系。
15.以下关于数据库规范化理论的叙述,不正确的是 A 。
A、 数据库模式的范式越高越好
B、在函数依赖的范围内,BCNF 范式是规范化程度最高的范式
C、 一个二元模式一定属于 BCNF 范式
D、 一个全码的关系一定属于 BCNF 范式
解析:A.数据库模式的范式并不是越高越好,根据需求,有的时候也是需要一定的数据冗余。 C.一个二元关系模式一定属于1NF,最高为BCNF。
16.在关系 DB 中,任何二元关系模式的最高范式必定是( D)
A.1NF B.2NF C.3NF D.BCNF
17.若数据库中只包含成功事务提交的结果,则此数据库就称为处于 B 状态。
A.安全 B、.一致 C.不安全 D.不一致
18.对基于检查点的恢复技术,下列说法中错误的是( A)
A.无论事务在检查点之前还是之后提交,都需执行 REDO 操作
B.检查点技术可以提高恢复效率
C.检查点可以定期建立
D.能最大限度的减少恢复数据库时根据日志记录所需执行的恢复操作
19.设有两个事务 T1 和 T2,它们的并发操作如图所示。对于这个并发操作,下列评价正确的是( A)
| T1 | T2 |
① | 读 A=10 |
|
② |
| 读 A=10 |
③ | A=A-5 写回 |
|
④ |
| A=A-8 写回 |
A、该操作丢失了更新 B、该操作不能重复读C、该操作读脏数据 D、该操作不存在问题
20.用于数据库恢复的重要文件是 ( C)
A.数据库文件 B.索引文件 C.日志文件 D.备注文件
三、简答题(每小题 5 分,共 10 分)
1、简要描述查询处理中实现连接操作的合并排序算法(sort-merge)。
答:首先按连接属性对表1和表2排序
对表1的第一个元组,从头开始扫描表2,顺序查找满足连接条件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组。当遇到表2中第一条大于表1连接字段值的元组时,对表2的查询不再继续
找到表1的第二条元组,然后从刚才的中断点处继续顺序扫描表2,查找满足连接条件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组。直接遇到表2中大于表1连接字段值的元组时,对表2的查询不再继续
重复上述操作,直到表1或表2中的全部元组都处理完毕为止
2、什么是数据库的数据独立性?
数据独立性表示应用程序与数据库中存储的数据不存在依赖关系,包括逻辑数据独立性和物理数据独立性。【根据分值回答,关键的部分为第一句】 逻辑数据独立性是指局部逻辑数据结构(外视图即用户的逻辑文件)与全局逻辑数据结构(概念视图)之间的独立性。当数据库的全局逻辑数据结构(概念视图)发生变化(数据定义的修改、数据之间联系的变更或增加新的数据类型等)时,它不影响某些局部的逻辑结构的性质,应用程序不必修改。 物理数据独立性是指数据的存储结构与存取方法(内视图)改变时,对数据库的全局逻辑结构(概念视图)和应用程序不必作修改的一种特性,也就是说,数据库数据的存储结构与存取方法独立。
四、应用题(每小题 10 分,共 20 分)
设有如下图书借阅关系模式:
图书:Book(bno, bname, author, publisher, price, stocks)/*图书编号,图书名,作者,出版商,单价,库存*/
读者:Reader(rno, rname, address)/*读者编号,读者名,住址*/
借阅:Borrow(bno, rno, b_date , r_date, flag)/*图书编号,读者编号,借期,还期,还书标志{1.已还,0.未还}*/
- 用关系代数表达式实现以下题目:
- 检索借阅图书号为 ’B5’ 的所有读者姓名。(3 分)
- 检索读者 ’李林’ 所借图书的书名。(3 分)
- 检索读者’ 李林’ 所借图书中未还的书名。(2 分)
- 检索借阅了包含读者 ’李林’ 所有借阅图书的读者姓名。(2 分)
解:(1)bno=’B5’,查询读者姓名(rname).
πrname(σbno=’B5’(Borrow∞Reader∞Book))
(2) rname=’李林’,查询图书书名(bname)
需要读者表和借阅表联立通过rno字段。图书书名在Book表里面,需要根据bno和Borrow表联立。
πbname(σrname=’李林’ (Borrow∞Reader∞Book))
(3) πbname(σFlag=’0’∧rname=’李林’ (Borrow∞Reader∞Book))
(4) πrname,rno(Borrow∞Reader)÷ πrno(σrname=‘李林‘ (Reader))
2.使用 SQL 语言实现如下题目:
- 检索借阅图书号为 ’B5’ 的所有读者姓名。(3 分)
- 检索读者’ 李林’ 所借图书中未还的书名。(3 分)
- 将读者 ‘李林’ 所借图书的信息从借阅表中删除。(2 分)
- 建立有未还图书的读者姓名和地址的视图。(2 分)
解:(1)bno=’B5’(借阅表),查找的是rname(reader表)
Select rname from Reader,Borrow,Book where Book.bno=Borrow.bno and Reader.rno=Borrow.rno and Borrow.bno=’B5’;
(2)select bname from Book,Reader,Borrow where Book.bno=Borrow.bno and Reader.rno=Borrow.rno and rname=’李林’and flag=0 ;
(3)delete from Borrow Where rno in(select rno from Reader where rname=’李林’) and bno in(select bno from Book where Borrow.bno=Book.bno);
(4)create view view1 as select rname,address from Book,Reader,Borrow where Book.bno=Borrow.bno and Reader.rno=Borrow.rno and Borrow.flag=0 ;
五、综合题(每小题 10 分,共 10 分)
已知学生关系模式S(Sno,Sname,SD,Sdname,Course,Grade)
其中:Sno 学号、Sname 姓名、SD 系名、Sdname 系主任名、Course 课程、Grade 成绩。
- 写出关系模式 S 的基本函数依赖和主码。(2 分)
- 原关系模式 S 为几范式?为什么?分解成高一级范式,并说明为什么? (3 分)
- 将关系模式分解成 3NF,并说明为什么? (5 分)
解:(1)sno->sname,sd->sdname,sno->sd,(sno,course)->grade
关系模式的码为:(sno,course)
(2)原关系模式S是属于1nf的,码为(Sno,Course),非主属性中的成绩完全依赖于码,而其它非主属性的函数依赖为部分函数依赖,所以不属于2NF。
消除非主属性对码的函数依赖为部分函数依赖,将关系模式分解成2NF如下:
S1(sno,sname,sd,sdname)、S2(sno,course,grade)
(3) 将上述关系模式分解成3nf如下:
关系模式s1中存在sno->sd,sd->sdname,即非主属性sdname传递函数依赖于sno,所以s1不是3nf。进一步分解如下:s11(sno,sname,sd) s12(sd,sdname)分解后的关系模式s11,s12满足3nf。
对关系模式s2不存在非主属性对码的传递依赖,故属于3nf。所以,原模式S(sno,sname,sd,sdname,course,grade)按如下分解满足3nf。S11(sno,sname,sd) s12(sd,sdname),s2(sno,course,grade).
六、数据库设计题(每小题 10 分,共 10 分)
假设教学管理规定:
①一个学生可选修多门课,一门课有若干学生选修;
②一个教师可讲授多门课,一门课只有一个教师讲授;
③一个学生选修一门课,仅有一个成绩。
学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名;课程的属性有课程号、 课程名。
要求:
- 根据上述语义画出 ER 图,要求在图中画出实体的属性并注明联系的类型(5 分)
- 根据所构建的 ER 图,设计满足 3NF 的关系模式,并标出每个关系模式的主码和外码。(5 分)
(2)
总结:题目为写出3NF,需要写出每个实体对应的关系需要注意,当两个实体对应关系为1对多时,对应的实体属性需要加上1方那个能够唯一确定的属性(主码),另一个属性的主码为该属性的外码。
如果是多对多的关系,那么实体属性正常书写,但是需要加上中间的关系作为单独的实体,该关系的属性就是两方的主码,加上本身具有的属性,进行确定主码时,就是(A,B),外码是A和B【不带括号,因为都可以单独确定一个属性,都是主码】。
教师(教师编号,教师姓名)。主码为教师编号,无外码
课程(课程号,课程名,教师编号)。主码为课程号,外码为教师编号。
学生(学号,姓名)主码为学号,无外码。
选修(学号,课程号,成绩)主码为(学号,课程号),外码为学号,课程号。