您的当前位置:首页正文

石家庄铁道大学数据库模拟试题

2021-06-13 来源:步旅网
模拟试题1

一. 单项选择题(本大题共15小题,每小题2分,共30分)

1.在文件系统中,所具有的数据独立性是 A.系统独立性 B.物理独立性

C.逻辑独立性 D.设备独立性 2.数据库系统中存放三级结构定义的DB称为 A.DBS B.DD C.DDL D.DBMS

[D ]

[D ]

3.设有关系R(A,B,C)和关系S(B,C,D),那么与R⋈S等价的关系代数表达式C[]

A.σ

1=5(R⋈S)

B.σ

1=5(R×S)

C.σ

1=2(R⋈S)

D.σ

1=2(R×S)

]

4.与域表达式 { ab | (c) (R(ac) ∧ R(cb))} 等价的关系代数表达式是 [

A.πC.π

1,4(σ2=3(R×R)) 1,4(R⋈R)

B.π

1,3(R⋈R)

2=3

D.π

1,3(R⋈S)

2=1

5.设有两个关系R(A,B)和S(B,C),与下列SELECT语句

SELECT A,B FROM R

WHERE B NOT IN(SELECT B

FROM S

WHERE C='C56');

等价的关系代数表达式是

A.π

A,B(σC≠'C56'(R⋈S))

[A ]

B.π

A,B(R

⋈ S)

C≠'C56'

C.R-πA,B(σC= 'C56'(R⋈S))

D.R-π

A,B(σC≠'C56'(R⋈S))

6.嵌入式SQL的预处理方式,是指 [ ] A.识别出SQL语句,加上前缀标识和结束标志

B.把嵌入的SQL语句处理成函数调用形式 C.对源程序进行格式化处理

D.把嵌入的SQL语句编译成目标程序 7.设关系模式R(A,B,C,D),F是R上成立的FD集,F={ B→D,AD→C },

那么

ρ={ ABC,BCD }相对于F [ ] A.是无损联接分解,也是保持FD的分解 B.是无损联接分解,但不保持FD的分解 C.不是无损联接分解,但保持FD的分解

D.既不是无损联接分解,也不保持FD的分解 8.设有关系模式R(A,B,C,D),F是R上成立的FD集,F={A→B,C→D},

则F+中左部为(BC)的函数依赖有 [ ]

A.2个 B.4个 C.8个 D.16个

9.有12个实体类型,并且它们之间存在着15个不同的二元联系,其中4个是

1:1联系类型,5个是1:N联系类型,6个M:N联系类型,那么根据转换规则,这个ER结构转换成的关系模式有 [ ] A.17个 B.18个 C.23个 D.27个

10.DBMS的并发控制子系统,保证了事务__________的实现 [ ] A.原子性 B.一致性 C.隔离性 D.持久性 11.SQL中不一定能保证完整性约束彻底实现的是 [ ] A.主键约束 B.外键约束

C.局部约束 D.检查子句

12.ORDB中,同类元素的有序集合,并且允许一个成员可多次出现,称为 [ ]

A.结构类型 B.集合类型 C.数组类型 D.多集类型

13.在ORDB中,当属性值为单值或结构值时,引用方式任和传统的关系模型

一样,在层次之间加 [ ] A.冒号“:” B.单箭头“→” C.下划线“_” D.圆点“.” 14.某一种实际存在的事物具有看来好像不存在的性质,称为 [ ] A.不存在性 B.虚拟性 C.无关性 D.透明性 15.DDBS中,全局关系与其片段之间的映象是 [ ] A.一对一的 B.一对多的 C.多对一的 D.多对多的

二.填空题(本大题共10小题,每小题1分,共10分)

16.关系模型和层次、网状模型最大差别是用___________而不是用___________导航数据。

17.DBS的全局结构体现了DBS的____________结构。 18.在关系代数中,交操作可由__________操作组合而成。

19.SQL的SELECT语句中使用分组子句以后,SELECT子句的语义就不是投

影的意思了,而是______________________。 20.设关系模式R(A,B,C),F是R上成立的函数依赖集,F={ A→B,B→C,

C→A },那么F在模式AB上投影πAB(F)=___________。 21.数据库中,悬挂元组是指___________________。 22.DBD中,子模式设计是在___________阶段进行的 23.封锁能避免错误的发生,但会引起 问题。

24.ORDB中,引用类型是指嵌套引用时,不是引用对象本身的值,而是引用___________。

25.DDBS中,如果系统具有分片透明性,那么用户只要对___________就能操

作了,不必了解数据的___________情况。

三.简答题(本大题共10小题,每小题3分,共30分)

26.“数据独立性”在文件系统阶段、数据库阶段和分布式数据库阶段中各表现为什么形式?

27.设有关系R和S:

R A B C S A B D 1 2 3 1 3 6 1 3 5 3 6 8 2 4 6 1 3 5 3 6 9 3 4 5 试写出R⋈S、 R⋈S的值 28.设有关系R(A,,C)和S(D,E,F),设有关系代数表达式。 2B>2

πA,B(R)-πA,B(σA=D ∧ E='E8'(R×S))

试写出与上述关系代数表达式等价的元组表达式,关系逻辑规则和SQL语句。 29.嵌入式SQL的预处理方式是如何实现的?这种方式有什么重要意义? 30.设关系模式R(A,B,C,D,E),F是R上成立的FD集,F={ AB→C,BC→A,

AC→B,D→E },试写出R的候选键,并说明理由。 31.逻辑设计阶段的输入和输出是什么?

32.什么是“脏数据”?如何避免读取“脏数据”? 33.对象联系图与ER图的主要差别是什么?

34.什么是“死锁”?在系统发生死锁时,系统如何处理?

35. DDB中数据分片必须遵守哪三个条件?这三个条件的目的各是为了什么?

四.设计题(本大题共5小题,每小题4分,共20分)

设某商业集团关于商店销售商品的数据库中有三个基本表: 商店 SHOP(S#,SNAME,AREA,MGR_NAME)

其属性是商店编号,商店名称,区域名,经理姓名。 销售 SALE(S#,G#, QUANTITY)

其属性是商店编号,商品编号,销售数量。

商品 GOODS(G#,GNAME,PRICE)

其属性是商品编号,商品名称,单价。

36.试写出下列查询的关系代数表达式、元组表达式和关系逻辑规则: 检索销售“冰箱”的商店的编号和商店名称。

37.试写出上面第36题的SELECT语句表达形式。并写出该查询的图示形式。 38.试写出下列操作的SQL语句:

从SALE表中,把“开开商店”中销售单价高于1000元的商品的销售元组全部删除。

39.写一个断言,要求区域名为“EAST”的商店里销售商品的单价不能低于100元。

40.试写出下列操作的SQL语句:

统计区域名为“EAST”的所有商店销售的每一种商品的总数量和总价值。 要求显示(G#,GNAME,SUM_QUANTITY,SUM_VALUE),其属性为商品编号、商品名称、销售数量、销售价值。

五.综合题(本大题共2小题,每小题5分,共10分)

41.某汽车运输公司数据库中有一个记录司机运输里程的关系模式: R(司机编号,汽车牌照,行驶公里,车队编号,车队主管)

此处每个汽车牌照对应一辆汽车。“行驶公里”为某司机驾驶某辆汽车行驶的总公里数。如果规定每个司机属于一个车队,每个车队只有一个主管。 (1)试写出关系模式R的基本FD和关键码。

(2)说明R不是2NF模式的理由,并指出数据冗余之所在。试把R分解成2NF模式集。

(3)进而把R分解成3NF模式集,并说明理由。

42.设某商业集团数据库中有三个实体集。一是“仓库”实体集,属性有仓库号、

仓库名和地址等;二是“商店”实体集,属性有商店号、商店名、地址等;三是“商品”实体集,属性有商品号、商品名、单价。 设仓库与商品之间存在“库存”联系,每个仓库可存储若干种商品,每

种商品存储在若干仓库中,每个仓库每存储一种商品有个日期及存储量;商店与商品之间存在着“销售”联系,每个商店可销售若干种商品,每种商品可在若干商店里销售,每个商店销售一种商品有月份和月销售量两个属性;仓库、商店、商品之间存在着“供应”联系,有月份和月供应量两个属性。 (1)试画出ER图,并在图上注明属性、联系类型、实体标识符; (2)将ER图转换成关系模型,并说明主键和外键。 (3)将ER图转换成对象联系图。 (4)将ER图转换成UML的类图。

模拟试题1答案

一. 单项选择题答案

1.D 9.B

2.B 3.B 4.A 5.C 6.B 7.B 8.C 10.C 11.D 12.C 13.D 14.D 15.B

二.填空题答案

16.关键码 指针 18.差 20.{ A→B,B→A } 22.逻辑设计 24.对象标识符

17.模块功能

19.对每一分组执行聚合操作 21.破坏泛关系存在的元组 23.活锁、饿死和死锁 25.全局关系 分片和分配

三.简答题答案

26.答:“数据独立性”在文件系统中表现为“设备独立性”;在数据库阶段表现

为“物理独立性”和“逻辑独立性”;在分布式数据库中表现为“分布透明性”。 27.答:

R⋈S R.A R.B C S.A S.B D 6 2=2 2 4 6 1 3 6 5 2 4 6 1 3 5 8 3 6 9 1 3 6 3 6 9 1 3 5 3 6 9 3 4 5

28.答:元组表达式为:

{ t|(u)(v)(R(u)∧S(v)∧(u[l]=v[1]  v[2]≠'E8')

∧t[1]=u[1] ∧t[2]=u[2])}

关系逻辑规则为:

W(x,y)← R(x,y,a)∧┐(x,'E8',c)

SQL语句为: SELECT A,B FROM R

WHERE A NOT IN (SELECT D FROM S

WHERE E='E8');

29.答:预处理方式是先用预处理程序对源程序进行扫描,识别出SQL语句,并

处理成宿主语言的函数调用形式;然后再用宿主语言的编译程序把源程序编译成目标程序。 这种方法的重要意义在于不必改动宿主语言的编译程序,这样,SQL的

编译程序和宿主语言的编译程序之间就可独立,互不影响。

30.答:模式R有三个候选键:ABD、BCD、ACD三个。推导过程如下: ① 从AB→C和D→E,可推出ABD→ABCDE。

② 从BC→A和D→E,可推出BCD→ABCDE。 ③ 从AC→B和D→E,可推出ACD→ABCDE。 31.答:逻辑设计阶段的输入信息有四种:

① 概念设计阶段的概念模式;② 应用的处理需求;③ 完整性、安全性约束条件;④ DBMS特性。 逻辑设计阶段的输出信息主要有四种:

① DBMS可处理的模式;② 子模式;③ 应用程序设计指南;④ 物理设计指南。

32.答:在数据库运行时,把未提交随后又被撤消的数据称为“脏数据”。 为避免读取“脏数据”,事务可以对数据实行加S锁的方法,以防止其他事

务对该数据进行修改。

33.答:对象联系图与ER图的主要差别是对象联系图能通过“引用”类型表示

嵌套、递归的数据结构,还有能表示数据结构之间的继承性(即子类和超类)。 34.答:在对并发事务采用封锁机制时,有可能若干事务都处于等待状态,等待

对方释放封锁,造成事务都不能继续运行下去,这种现象称系统进入死锁状态。 发生死锁时,系统将抽取某个事务作牺牲品,把它撤销,释放封锁,使

其它事务有可能继续运行下去。

35.答:DDB中数据分片必须遵守三个条件:

R⋈S A B C 1 3

1 3 3 6 D 5 5 9

(1)完备性条件:指全局关系中所有数据均应映射到片段中。目的是保证所

有数据均在DB中存储,不会丢失数据。

(2)重构条件:由各个片段可以重建全局关系。目的是可以像无损联接那样

不丢失信息。

(3)不相交条件:数据片段相互之间不应该重叠(主键除外)。目的是为了防止数据冗余。

四.设计题答案

36.解:关系代数表达式:πS#,SNAME(σGNAME='冰箱'(SHOP⋈SALE⋈GOODS))

元组表达式:{ t | (u) (v) (w) (SHOP (u)∧SALE (v)∧GOODS (w)

∧u[1]=v[1]∧v[2]=w[1]∧w[2]= '冰箱'∧t[1]=u[1]

∧t[2]=u[2])}

关系逻辑规则:W(u1,u2)SHOP(u1,u2,u3,u4)∧SALE(u1,v2,v3)∧GOODS(v2, '冰箱',w3)

37.解:SELECT语句如下: SELECT A.S#,SNAME

FROM SHOP A,SALE B,GOODS C

WHERE A.S#=B.S# AND B.G#=C.G# AND GNAME='冰箱';

该查询语句的图示形式如下:

SHOP S# SNAME AREA MGR_NAME P._X P. SALE S# G# QUANTITY GOODS G# GNAME PRICE _X _Y _Y 冰箱 38.解:DELETE FROM SALE WHERE S# IN(SELECT S# FROM SHOP

WHERE SNAME='开开商店') AND G# IN(SELECT G#

FROM GOODS

WHERE PRICE>1000); 39.解:CREATE ASSERTION ASSE8 CHECK (100<=ALL(SELECT PRICE

FROM SHOP A,SALE B,GOODS C

WHERE A.S#=B.S# AND B.G#=C.G# AND AREA='EAST')); 或 CREATE ASSERTION ASSE8 CHECK (NOT EXISTS(SELECT *

FROM SHOP A,SALE B,GOODS C WHERE A.S#=B.S# AND B.G#=C.G#

AND AREA='EAST' AND PRICE<100));

40.解:SELECT C.G#,GNAME,SUM(QUANTITY)AS SUM_QUANTITY,

PRICE*SUM(QUANTITY)AS SUM_VALUE

FROM SHOP A,SALE B,GOODS C

WHERE A.S#=B.S# AND B.G#=C.G# AND AREA='EAST' GROUP BY C.G#,GNAME;

(注:SELECT子句中的属性C.G#,GNAME应在分组子句中出现)

五.综合题答案

41.解:(1)根据已知条件,可写出基本的FD有三个:

司机编号 → 车队编号

车队编号 → 车队主管

(司机编号,汽车牌照)→ 行驶公里

从上述三个FD,可知R的关键码为(司机编号,汽车牌照)。 (2)从上述三个FD,可推出下列FD成立:

(司机编号,汽车牌照)→(车队编号,车队主管)

这是一个局部FD。因此R不是2NF模式。

此时在R的关系中,每个司机只属于一个车队及主管人员,但要记载某司机驾驶过10辆汽车的行驶公里数,在R的关系中要出现10个元组。也就是这10个元组的司机相同,其车队编号和车队主管要重复出现10次,这就是数据冗余。 R应分解成 R1(司机编号,汽车牌照,行驶公里)

R2(司机编号,车队编号,车队主管)

这两个模式都是2NF模式。

(3)R1已是3NF模式,但R2不是3NF模式。 因为在R2中的基本FD有两个:

司机编号 → 车队编号, 车队编号 → 车队主管。

显然,存在传递依赖:司机编号 → 车队主管。

此时在R2的关系中,一个车队只有一个主管人员,但这个车队有20名司机,则在关系中就要有20个元组。这20个元组的车队编号相同,而车队主管要重复出现20次,这就是数据冗余。 R2应分解成 R21(司机编号,车队编号) R22(车队编号,车队主管)

这样,ρ={ R1,R21,R22 },其中每个模式均是3NF模式。 42.解:(1)ER图如图1所示。 仓库号 仓库名 地址 仓库 M 月份 M 日期 月供应量 库存 供应 库存量 N 商品 N M 销售 P 商店 N

图1

(2)据转换规则,图2的ER图可转换成6个关系模式:

仓库(仓库号,仓库名,地址) 商品(商品号,商品名,单价) 商店(商店号,商店名,地址)

库存(仓库号,商品号,日期,库存量) 销售(商店号,商品号,月份,月销售量)

供应(仓库号,商店号,商品号,月份,月供应量) (3)图1的ER图的对象联系图如图2所示。其转换规则基本上与转换成关系模型的规则类似。三个实体类型转换成三个对象类型,两个M:N联系类型和一个M:N:P联系类型也转换成三个对象类型。因此对象联系图中共有六个对象类型,如图2所示。图中未标出基本数据类型属性,具体如下:

仓库(仓库号,仓库名,地址) 商品(商品号,商品名,单价) 商店(商店号,商店名,地址) 库存(日期,库存量) 销售(月份,月销售量) 供应(月份,月供应量)

仓库

库存

供应

商品 销售 商店

图2

(4)图1的ER图的UML类图如图3所示。三个实体类型转换成三个类,三个联

系类型转换成三个关联类,如图3所示。

仓库 仓库号 * 仓库名 库存 地址 日期 * 库存量

* 商品 * 商品号 商品名 单价 *

销售

月份

月销售量 图3

供应 月份 月供应量 商店 * 商店号 商店名 * 地址

因篇幅问题不能全部显示,请点此查看更多更全内容