数据库期末复习

数据库综合作业

一. 单项选择题

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

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

1=2

[ D ]

[ B ]

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

A.σ

1=5(R

[ B ]

?S) B.σ

1=5(R×S)

C.σ

1=2(R

?S) D.σ

1=2(R×S)

4.设关系模式R(A,B,C),F是R上成立的FD集,F={A→B,C→B},

ρ={AB,AC}是R的一个分解,那么分解ρ

[ c ]

A.保持函数依赖集F B.丢失了A→B C.丢失了C→B D.丢失了B→C 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 ]

σ

C≠'C56'(R

?S))

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的预处理方式,是指 [ B ] A.识别出SQL语句,加上前缀标识和结束标志

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

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

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

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

左部为(BC)的函数依赖有 [C ] A.2个 B.4个 C.8个 D.16个

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

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

10.DBMS的并发控制子系统,保证了事务__________的实现 [C ] A.原子性 B.一致性 C.隔离性 D.持久性 11.SQL中不一定能保证完整性约束彻底实现的是 [ D ] A.主键约束 B.外键约束 C.局部约束 D.检查子句 12.在DB技术,未提交的随后被撤消了的数据,称为 [D ]

A.报废的数据 B.过时的数据 C.撤消的数据 D.脏数据 13.设有关系R(A,B,C)的值如下:

A B C

2 2 3 2 3 4 3 3 5 下列叙述正确的是 [B ] A.函数依赖A→B在上述关系中成立 B.函数依赖BC→A在上述关系中成立

C.函数依赖B→A在上述关系中成立 D.函数依赖A→BC在上述关系中成立 14.日志文件是用于记录 [C ]

A.程序运行过程 B.数据操作 C.对数据的所有更新操作 D.程序执行的结果

15.一个1:n联系可以转换为一个独立的关系模式,关系的码为 [ C ] A.实体的码 B.各实体码的组合 C.n端实体的码 D.每个实体的码 16.不允许任何其他事物对这个锁定目标再加任何类型锁的锁是 [ B ]

A.共享锁 B.排它锁 C.共享锁或排它锁 D.以上都不是

二.填空题

1.封锁能避免错误的发生,但会引起 活锁、死锁和不可串行化调度 问题。 2.可能导致数据库系统不能运行的原因有 事务故障,系统故障,介质故障和计算机病毒 。

3.数据库系统的三级模式结构是指___外模式,模式和内模式。_______。

4.SQL的SELECT语句中使用分组子句以后,SELECT子句的语义就不是投影的意思了,

而是_______对每一分组执行聚合操作_______________。 5.设关系模式R(A,B,C),F是R上成立的函数依赖集,F={ AB→C,C→A },那么R

的候选键有___2_____个,为____AB和BC_______。

三.简答题

1.如何保证并发控制的有效实施?

答:封锁机制是并发控制的重要手段。封锁是使事物对它要操作的数据有一定的控制能力。封锁具有3个环节:首先是申请加锁,即事务在操作前要对它将使用的数据提出加锁请求;然后是获得锁,即当条件成熟时,系统允许事务对数据加锁,从而使事务获得数据的控制权;最后是释放锁,即完成操作后事务放弃数据的控制权。为了达到封锁的目的,在使用时,事务应选择合适的锁,并要遵从一定的封锁协议。

2.设有关系R和S: R A B C 1 2 3 1 3 5 2 4 6 3 6 9

2>2

S A 1 3 1 3 B 3 6 3 4 D 6 8 5 5

试写出R?S、 R?S的值

解:

R?S A B C D R?S R.A R.B C S.A S.B D 1 3 5 6 2>2 2 4 6 1 3 6 1 3 5 5 2 4 6 1 3 5 3 6 9 8 3 6 9 1 3 6 3 6 9 1 3 5 3 6 9 3 4 5

3.设有关系R(A,B,C)和S(D,E,F),设有关系代数表达式。

π

A,B(R)-

π

A,B(

σ

A=D ∧ E='E8'(R×S))

试写出与上述关系代数表达式等价的SQL语句。 解:

SELECT A,B FROM R

WHERE A NOT IN(SELECT D FROM S

WHERE E=’E8’ );

4.设有函数依赖集F={AB->CE,A->C,GP->B,EP->A,CDE->P,HB->P,D->HG,ABC->PG},试写

出Fm,并说明理由。 解: (1):将F中各依赖的右部属性化:

F={AB->C, AB->E, A->C, GP->B,EP->A,CDE->P,HB->P, D->H, D->G, ABC->P, ABC->G}

(2):去掉F中冗余的函数依赖。

判断AB->C是否冗余,由于有A->C,所以AB->C冗余。 判断AB->E是否冗余,

设:G1={ A->C, GP->B,EP->A,CDE->P,HB->P, D->H, D->G, ABC->P, ABC->G} 得:(AB)G1+=ABCPG 因为E?G1+ 所以AB->E不冗余。 (AB)判断A->C是否冗余,

设:G2={ AB->E, GP->B,EP->A,CDE->P,HB->P, D->H, D->G, ABC->P, ABC->G}

得:AG2+=A 因为C?AG2+ 所以A->C不冗余

同理,经过检验后函数依赖集为:{AB->E, A->C, GP->B,EP->A,CDE->P,HB->P, D->H, D->G, ABC->P, ABC->G}

(3)去掉F中函数依赖左部冗余属性。

5.什么是“脏数据”?如何避免读取“脏数据”?

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

6.如何实现数据库安全性?

1用户标识与鉴别 解:○

2存取控制 ○

3自主存取控制方法 ○

4强制存取控制方法 ○

5视图机制 ○

6审计 ○

7数据加密 ○

四.设计题

设某商业集团关于商店销售商品的数据库中有三个基本表: 商店 SHOP(S#,SNAME,AREA,MGR_NAME) 其属性是商店编号,商店名称,区域名,经理姓名。 销售 SALE(S#,G#, QUANTITY)

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

商品 GOODS(G#,GNAME,PRICE) 其属性是商品编号,商品名称,单价。

1.试写出下列查询的关系代数表达式: 检索销售“冰箱”的商店的编号和商店名称。 解: 关系代数表达式:

ПS#,SNAME (σ GNAME=’冰箱’ (SHOP ?SALE ?GOODS))

2.试写出上题的SELECT语句表达形式。 SELECT A.S# , SNAME

FROM SHOP A, SALE B, GOODS C

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

3.试写出下列操作的SQL语句: 从SALE表中,把“开开商店”中销售单价高于1000元的商品的销售元组全部删除。 解:DELETE FROM SALE

WHERE S# IN(SELECT S# FROM SHOP WHERE SNAME='开开商店') AND G# IN(SELECT G# FROM GOODS WHERE PRICE>1000);

4.试写出下列操作的SQL语句: 统计区域名为“EAST”的所有商店销售的每一种商品的总数量和总价值。 要求显示(G#,GNAME,SUM_QUANTITY,SUM_VALUE),其属性为商品编号、商品名称、销售数量、销售价值。 解:

SELECT G#,GNAME,SUM (QUANTITY) AS SUM_QUANTITY, SUM (VALUE) 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;

五.综合题

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

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

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

从上述三个FD,可知R的关键码为(司机编号,汽车牌照)。

(2)说明R不是2NF模式的理由,并指出数据冗余之所在。试把R分解成2NF模式集。 解:从上述三个FD,可推出下列FD成立:

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

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

R2(司机编号,车队编号,车队主管)这两个模式都是2NF模式。

(3)进而把R分解成3NF模式集,并说明理由。 R1已是3NF模式,但R2不是3NF模式。 因为在R2中的模式FD有两个:

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4