试卷
一、填空题(每题 1 分,共10 分)
1. 数据库管理技术的发展经历了三个阶段:人工管理阶段,文件系统阶段和__________阶段。
2.实体完整性约束规定__________的取值不能为空值。
3. 计算机系统有三类安全性问题,即____________ 、管理安全类和政策法律类。
4. 关系模式规范化考虑数据间的依赖关系,已经提出了多种类型的数据依赖,其中最重要的是函数依赖和___________。
5. DBMS执行查询所花费最主要的代价是______________。
6.查询优化主要包括_____________和物理优化 。
7. ________ 是用来记录事务对数据库的更新操作的文件。
8.数据转储按照每次转储的数据量是否为全部数据,分为海量转储和___________。
9.基本的封锁类型包括共享锁和______________。
10.多个事务并发执行,判定某个并发调度是否正确的依据是看其执行结果是否与某一__________结果相同。
二、选择题(每题 2 分,共 20 分)
1.描述数据库总体逻辑结构特征的是( )。
A.外模式 B.模式
C.内模式 D.概念模式
2.数据库的内部结构用( )实现了数据的独立性。
A.物理模式 B.逻辑模式
C.三级模式之间的两层映射 D.概念模型
3.以下关于码的说法,错误的是( )。
A.候选码就是主码,主码就是候选码
B.码可以包含一个或者多个属性
C.码是唯一标识实体的属性集
D.关系可能有一个以上的候选码
4.关于数据库的存取控制,以下说法正确的是( )。
A.存取控制机制就是限制所有用户不能改写数据
B.强制存取控制规定,主体许可证密级>=客体密级时,主体可以读写相应客体
C.自主存取控制就是用户可以自由访问数据
D.存取控制方法包括自主存取控制和强制存取控制
5.以下( )不属于实现数据库系统安全性的主要技术和方法。
A.存取控制 B.视图
C.封锁 D.审计
6. 关系模式R中的属性全是主属性,则R的最高范式可到达( )。
A.1NF B.2NF
C.3NF D.BCNF
7.数据依赖集F和G,有F+=G+,以下说法正确的是( )。
A.F和G等价 B.F和G数据依赖个数相同
C.F和G完全相同 D.G必定是F的最小覆盖
8.下列关于查询优化的说法,正确的是( )。
A.关系数据库中,优化的作用不明显
B.选择运算尽可能先做是代数优化中最重要的一条准则
C.优化最好由应用程序来完成
D.查询优化包括启发式优化和逻辑优化
9. 关于事务的持续性,以下说法正确的是( )。
A.事务中包括的所有操作要么都做,要么都不做
B.事务一直运行不能结束
C.事务一旦提交,对数据库的改变是永久的
D.持续性也叫一致性
10.关于数据库中的死锁,以下说法正确的是( )。
A.死锁一旦产生,需要重新启动DBMS服务才能解除
B.死锁和活锁一样,改变服务策略就能解决
C.两段锁协议可以预防死锁
D.数据库中允许死锁产生,然后诊断解除死锁
三、应用题(共 40 分)
2. 某“图书读者数据库”Book_Reader_DB,其中有图书BOOK、读者READ和借阅BORROW三个表,经过需求分析,确定其结构为:
图书(书号,类别,出版社,作者,书名,定价,备注);
读者(编号,姓名,单位,性别,电话);
借阅(书号,读者编号,借阅日期)。
在DBMS“SQL SERVER2008R2”上实施的表结构如下,下划线标注的列为主码:
BOOK(B_Number,B_Classification,B_ Publishing,B_Author,B_Name,B_Price,B_Remark);
READER(R_Number,R_Name,R_Department,R_Sex,R_Telephone);
BORROW(B_Number,R_Number,BorrowDate)。
请用关系代数完成以下(1)-(2)小题。(4分)
(1)查询“软件工程”类图书的书号和书名。(2分)
(2)查询“经济”类且价格在50元以上的图书的书号,书名及价格。(2分)
请用SQL语言完成以下(3)-(8)小题。(15分)
(3)查询“软件工程”类图书的书号和书名。(2分)
(4)查询“经济”类且价格在50元以上的图书的书号,书名及价格。(2分)
(5)插入一本新书记录:《Android开发案例教程》,编号“201508090226”,价格58元,高等教育出版社,作者是张三。 (2分)
(6)查询没有借阅过图书的所有读者姓名。(3分)
(7)查询“清华大学出版社”出版的各类图书的平均定价。(3分)
(8)查询订购图书最多的出版社及订购图书的数量。(3分)
3. 关系模式R(A,B,C),F={A->B,B->A,B->C,A->C,C->A},请完成以下问题:
(1)R的候选码是什么?(3分)
(2)求F的最小覆盖Fmin。(7分)
4. 现在有两个事务,分别包含下列操作:
事务T1:读B;A=B+2;写回A
事务T2:读A;B=A*2;写回B
若A,B的初值均为3,请完成以下问题,:
(1)若T1,T2并发执行,可能正确的结果是什么?(2分)
(2)请给出一个遵循两段锁协议的并发调度,并给出执行结果。(3分)
四、简答题(10 分)
1.完整性约束条件是指数据库中的数据应该满足的语义约束条件。什么是的参照完整性约束?如果用户操作违背了参照完整性约束,DBMS如何处理?(5分)
2.DBMS发生系统故障时,可能会造成数据库处于不一致状态: 一是未完成事务对数据库的更新可能已写入数据库; 二是已提交事务对数据库的更新可能还留在缓冲区,没来得及写入数据库。请简要描述系统故障的恢复方法。(5分)
五、设计题(20 分)
1. 设计大型系统的概念模型,通常先根据各子系统的需求结果设计子系统分E-R图,再进行合并。合并分E-R图时可能碰到的冲突有哪几类?划分实体与属性的原则是什么?(5分)
2.某医院的门诊管理系统实现了为患者提供挂号、处方药品收费的功能。具体的需求及 设计如下:
I.医院医师具有编号, 姓名,科室, 职称, 出诊类型和出诊费用,其中出诊类型分为专家门诊和普通门诊,与医师职称无关;各个医师可以具有不同的出诊费用,与职称和出诊类型无关。
II.患者首先在门诊挂号处挂号,选择科室和医师,根据选择的医师缴纳挂号费(医师出诊费)。收银员为患者生成挂号单,如表 2-1 所示,其中,就诊类型为医师的出诊类型。
表2-1 XX医院门诊挂号单
收银员:13011 时间:2015年2月1日8:58
就诊号 | 姓名 | 科室 | 医师 | 就诊类型 | 挂号费 |
20150201015 | 叶梦 | 内科 | 杨宇明 | 专家门诊 | 5元 |
III.患者在医师处就诊后,凭借挂号单和医师手写处方到门诊药房交费买药。收银员根据就诊号和医师处方中开列的药品信息,查询药品库(如表 2-2 所示)并生成门诊处方单(如表 2-3 所示):
表2-2 药品库
药品编码 | 药品名称 | 类型 | 库存 | 货架编号 | 单位 | 规格 | 单价 |
12007 | 牛蒡子 | 中药 | 51590 | B1401 | G | 炒 | 0.0340 |
11090 | 百部 | 中药 | 36950 | B1523 | G | 片 | 0.0313 |
表2-3 XX医院门诊处方单
就诊号 | 20150201015 | 病人姓名 | 叶梦 | 医师姓名 | 杨宇明 |
金额总计 | 0.65 | 项目总计 | 2 | 收银员 | 21081 |
药品编码 | 药品名称 | 数量 | 单位 | 单价 | 金额(元) |
12007 | 牛蒡子 | 10 | G | 0.0340 | 0.34 |
11090 | 百部 | 10 | G | 0.0313 | 0.31 |
IV.由于药品价格会发生变化,因此,门诊管理系统必须记录处方单上药品的单价。 根据需求阶段收集的信息,设计的实体联系图和关系模式(不完整)如下所示:
1.实体联系图
2.关系模式
挂号单(就诊号,病患姓名,医师编号,时间,(5) )
收银员(编号,姓名,级别)
医师(编号,姓名,科室,职称,出诊类型,出诊费用)
门诊处方 ( (6) ,收银员,时间 )
处方明细(就诊号, (7))
药品库 (药品编码,,药品名称,(8) )
[问题1](4 分)
根据问题描述,填写 图2-1 实体联系图中(1) ~ (4)处联系的类型。
[问题2](4 分)
图 2-1 中还缺少几个联系?请指出每个联系两端的实体名,格式如下:实体 1:实体 2。
例如,收银员与门诊处方之间存在联系,表示为:
收银员:门诊处方 或 门诊处方:收银员
[问题3](7 分)
根据实体联系图 2-1,填写挂号单、门诊处方、处方明细和药品库关系模式中的空(5)~(8)处,并指出挂号单、门诊处方和处方明细关系模式的主码。
答案
一、填空题(每题 1 分,共10 分)
1数据库系统 | 2主属性 | 3技术安全 | 4多值依赖 | 5 I/O代价 |
6代数优化 | 7日志文件 | 8增量转储 | 9排它锁 | 10串行 |
二、选择题(每题 2 分,共 20 分)
1 B | 2 C | 3 A | 4 | 5 C |
6 D | 7 A | 8 B | 9 C | 10 D |
三、应用题(共 40 分)
1(6分)
|
2 | (1)(2分) ∏B_Number,B_Name(σ B_Classification=”软件工程”(BOOK)) | |
(2)(2分)∏B_Number,B_Name,B_Price(σ B_Classification=”经济” ^B_Price>=50 (BOOK) ) | ||
(3)(2分) select B_Number,B_Name from BOOK where B_Classification=”软件工程”; | (4)(2分) select B_Number,B_Name,B_Price from BOOK where B_Classification=”经济” and B_Price>=50; | |
(5)(2分) insert into BOOK values(‘201508090226’,NULL,’高等教育出版社’,‘张三’, ‘Android开发案例教程’, 58,NULL,); | (6)(3分) select R_Name from READER where not exists (select * from BORROW where BORROW.R_Number=RADER.R_Number); | |
(7)(3分) select B_Classification ,avg(B_Price) from BOOK where B_Publishing=’清华大学出版社’ group by B_Classification; | (8)(3分) select TOP 1 B_Publishing ,count(*) from BOOK group by B_Publishing order by COUNT(*) desc; | |
3 | (1)(3分) [解] 求得(A)F+=ABC,(B)F+=ABC,(C)F+=ABC,故R(A,B,C) 的候选码为A,B,C。 | |
(2)(7分) [解] 1. F中各依赖的右部均为单列,满足极小化条件。 2.检验A->B,令G=F-{A->B},求得(A)G+=AC,不包含B,故 A->B不冗余,依上述方法检验知:B->A冗余,B->C不冗余,A->C冗余,C->A不冗余。 3. F中各依赖的左部均为单列,满足极小化条件。 故Fmin={A->B,B->C,C->A}。 注:该题答案不唯一,若改变上述第2步检验顺序,求得Fmin={A->B,B->A,A-C>,C->A}亦为正确答案。 |
4 | (1)(2分) [解] 串行T1,T2: A=5,B=10 串行T2,T1: A=8,B=6 以上均为T1,T2并发执行可能的正确结果。 | (2)(3分) T1 T2 Slock B R(B) Xlock A SLock A A=B+2 wait W(A) wait Unlock B wait Unlock A wait R(A) Xlock B B=A*2 W(B) Unlock A Unlock B 执行结果为A=5,B=10。(注:答案不唯一) |
四、简答题(10 分)
(1) | 参照完整性约束(2分) 若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值),或者等于S中某个元组的主码值。 |
违约处理(3分) 视应用情况,DBMS有拒绝、级联和置空三种处理策略。 | |
(2)(5分) 1. 正向扫描日志文件(即从头扫描日志文件),建立两个队列, 重做(REDO) 队列: 在故障发生前已经提交的事务。 这些事务既有BEGIN TRANSACTION记录,也有COMMIT记录 撤销 (Undo)队列:故障发生时尚未完成的事务。 这些事务只有BEGIN TRANSACTION记录,无相应的COMMIT记录 2. 对撤销(Undo)队列事务进行撤销(UNDO)处理。 反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库。 3. 对重做(Redo)队列事务进行重做(REDO)处理 正向扫描日志文件,对每个REDO事务重新执行登记的操作,即将日志记录中“更新后的值”写入数据库。 |
五、设计题(20 分)
1 | 冲突有哪几类(3分)注:答对大类即可得分 属性冲突:属性域冲突;属性取值单位冲突 。 命名冲突:同名异义,不同意义的对象在不同的局部应用中具有相同的名字;异名同义(一义多名),同一意义的对象在不同的局部应用中具有不同的名字。 结构冲突:同一对象在不同应用中具有不同的抽象;同一实体在不同分E-R图中所包含的属性个数和属性排列次序不完全相同;实体之间的联系在不同局部视图中呈现不同的类型。 | |||
划分实体和属性的原则(2分) (1)属性不能再具有需要描述的性质。即属性必须是不可分的数据项,不能再由另一些属性组成。 (2)属性不能与其他实体具有联系。联系只发生在实体之间。 | ||||
2 | 问题1(4分) | |||
(1) 1 | (2) * | |||
(3) * | (4) * | |||
问题2(4分) 缺少3个联系,具体如下: 挂号单:收银员 挂号单:医师 挂号单:门诊处方 | ||||
问题3(7分) | ||||
(5)收银员编号 | ||||
(6)就诊号 | ||||
(7)药品编码,数量,单价 | ||||
(8)类型,库存,货架编号,单位,规格,单价 | ||||
挂号单主码 | 门诊处方主码 | 处方明细主码 | ||
就诊号 | 就诊号 | 就诊号,药品编码 | ||