试卷

一、填空题(每题 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_NumberR_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]分) 

根据问题描述,填写 图2-1 实体联系图中(1) ~ (4)处联系的类型。 

[问题2]分) 

图 2-1 中还缺少几个联系?请指出每个联系两端的实体名,格式如下:实体 1:实体 2。

例如,收银员与门诊处方之间存在联系,表示为: 

收银员:门诊处方  或  门诊处方:收银员

[问题3]分) 

根据实体联系图 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

 B  D

5    C

6   D

7   A

8   B

9   C

10   D

三、应用题(共 40 分)  

1(6分)

A

B

C

D

E

F

a1

1

c1

1

e4

f2

a2

2

c1

2

e3

f3

a3

3

c2

3

e2

f1

a3

3

c2

3

e4

f4

a4

1

c3

1

e4

f2

 

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=5B=10。(注:答案不唯一)

四、简答题(10 分)

(1)

参照完整性约束(2分)

若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系RS不一定是不同的关系),则对于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)类型,库存,货架编号,单位,规格,单价

挂号单主码

门诊处方主码

处方明细主码

就诊号

就诊号

就诊号,药品编码

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐