数据库工程师.docx
《数据库工程师.docx》由会员分享,可在线阅读,更多相关《数据库工程师.docx(13页珍藏版)》请在冰点文库上搜索。
数据库工程师
2004年下半年数据库系统工程师上午试卷
●假定每一车次具有唯一的始发站和终点站。
如果实体“列车时刻表”属性为车次、始发站、发车时间、终点站、到达时间,该实体的主键是_(42)_;如果实体“列车运行表”属性为车次、日期、发车时间、到达时间,该实体的主键是_(43)_。
通常情况下,上述“列车时刻表”和“列车运行表”两实体型间_(44)_联系。
(42)A.车次B.始发站C.发车时间D.车次,始发站
(43)A.车次B.始发站C.发车时间D.车次,日期
(44)A.不存在B.存在一对一C.存在一对多D.存在多对多
●关系模式R(U,F),其中U=(W,X,Y,Z),F={WX→Y,W→X,X,→Z,yVw}。
关系模式R的候选码是_(45)_,_(46)_是无损连接并保持函数依赖的分解。
(45)A.W和YB.WYC.WXD.WZ
(46)A.ρ={R1(WY),R2(XZ)}B.ρ={R1(WZ),R2(XY)}
C.ρ={R1(WXY),R2(XZ)}D.ρ={R1(WX),R2(YZ)}
●关系代数表达式R*S÷T-U的运算结果是_(47)_。
关系R
A
B
1
a
2
b
3
a
3
b
4
a
关系S
C
x
y
关系T
A
1
3
关系U
B
C
a
x
c
z
(47)A.
B
C
a
y
B.
B
C
b
x
C.
B
C
a
x
b
x
b
y
D.
B
C
a
x
c
z
●设有关系R、S和T如下图所示,则元组演算表达式{t|(Eu)((R(u)VS(u))^(Av)(T(v→(Ew)((R(w)vs(w))^w[1]^w[3]=v[2]))^t[1]=u[1]))运算结果是_(48)_。
关系RA
关系R
A
B
C
a
b
c
d
a
b
a
b
h
h
c
d
c
k
k
关系S
A
B
C
b
b
c
c
h
k
f
h
c
关系T
B
C
b
c
h
k
(48)A.
B
C
b
b
h
k
B.
A
A
b
C.
A
A
C
D.
A
B
C
c
b
c
c
h
k
●下列公式中一定成立的是_(49)_。
(49)A.πA1,A2(σF(E))≡σf(πA1,A2(E))B.σF(E1*E2)≡σf(E1)*σF(E2)
C.σF(E1-E2)≡σf(E1)-σF(E2)D.πA1,A2,B1,B2(E×E)≡πA1,A2(E)×πB1,B2(E)
●设关系模式R(ABCDE)上的函数依赖集F={A→BC,BCD→E,B→D,A→D,E→A},将R分解成两个关系模式:
R1=(ABD),R2=(ACE),则R1和R2的最高范式分别是_(50)_。
(50)A.2NF和3NFB.3NF和2NFC.3NF和BCNFD.2NF和BCNF
●以下关于E-R图的叙述正确的是_(51)_。
(51)A.E-R图建立在关系数据库的假设上
B.E-R图使应用过程和数据的关系清晰,实体间的关系可导出应用过程的表示
C.E-R图可将现实世界(应用)中的信息抽象地表示为实体以及实体间的联系
D.E-R图能表示数据生命周期
●事务的ACID性质中,关于原子性(atomicity)的描述正确的是_(52)_。
(52)A.指数据库的内容不出现矛盾的状态
B.若事务正常结束,即使发生故障,更新结果也不会从数据库中消失
C.事务中的所有操作要么都执行,要么都不执行
D.若多个事务同时进行,与顺序实现的处理结果是一致的
●在分布式数据库的垂直分片中,为保证全局数据的可重构和最小冗余,分片满足的必要条件是_(53)_。
(53)A.要有两个分片具有相同关系模式以进行并操作
B.任意两个分片不能有相同的属性名
C.各分片必须包含原关系的码
D.对于任一分片,总存在另一个分片能够和它进行无损连接
●关于事务的故障与恢复,下列描述正确的是_(54)_。
(54)A.事务日志是用来记录事务执行的频度
B.采用增量备份,数据的恢复可以不使用事务日志文件
C.系统故障的恢复只需进行重做(Redo)操作
D.对日志文件设立检查点目的是为了提高故障恢复的效率
●不能激活触发器执行的操作是_(55)_。
(55)A.DELETEB.UPDATED.INSERTD.SELECT
●某高校五个系的学生信息存放在同—个基本表中,采取_(56)_的措施可使各系的管理员只能读取本系学生的信息。
(56)A.建立各系的列级视图,并将对该视图的读权限赋予该系的管理员
B.建立各系的行级视图,并将对该视图的读权限赋予该系的管理员
C.将学生信息表的部分列的读权限赋予各系的管理员
D.将修改学生信息表的权限赋予各系的管理员
●关于对SQL对象的操作权限的描述止确的是_(57)_。
(57)A.权限的种类分为INSERT、DELETE和UPDATE三种
B.权限只能用于实表不能应用丁视图
C.使用REVOKE语句获得权限
D.使用COMMIT语句赋予权限
●一级封锁协议解决了事务的并发操作带来的_(58)_不一致性的问题。
(58)A.数据丢失修改B.数据不可重复读C.读脏数据D.数据重复修改
●有关联机分析处理(OLAP)与联机事务处理(OLTP)的正确描述是_(59)_。
(59)A.OLAP面向操作人员,OLTP面向决策人员
B.OLAP使用历史性的数据,OLTP使用当前数据
C.OLAP经常对数据进行插入、删除等操作,而OLTP仅对数据进行汇总和分析
D.OLAP不会从已有数据中发掘新的信息,而OLTPI可以
●下面描述上确的是_(60)_。
(60)A.数据仓库是从数据库中导入大量的数据,开对结构和存储进行组织以提高查询效率
B.使用数据仓库的目的在于对已有数据进行高速的汇总和统计
C.数据挖掘是采用适当的算法,从数据仓库的海量数据小提取中潜在的信息和知识
D.OLAP技术为提高处理效率,必须绕过DBMS直接对物理数据进行读取和写入
选择题答案:
(1)
C
(16)
C
(31)
B
(46)
C
(61)
B
(2)
B
(17)
B
(32)
C
(47)
A
(62)
D
(3)
C
(18)
B
(33)
A
(48)
C
(63)
C
(4)
D
(19)
B
(34)
B
(49)
C
(64)
A
(5)
B
(20)
D
(35)
C
(50)
D
(65)
D
(6)
C
(21)
D
(36)
B
(51)
C
(66)
A
(7)
D
(22)
A
(37)
B
(52)
C
(67)
A
(8)
B
(23)
B
(38)
D
(53)
D
(68)
D
(9)
B
(24)
A
(39)
B
(54)
D
(69)
B
(10)
D
(25)
C
(40)
B
(55)
D
(70)
B
(11)
C
(26)
B
(41)
D
(56)
B
(71)
C
(12)
A
(27)
C
(42)
A
(57)
A
(72)
A
(13)
A
(28)
B
(43)
D
(58)
A
(73)
B
(14)
C
(29)
A
(44)
C
(59)
B
(74)
C
(15)
A
(30)
D
(45)
A
(60)
C
(75)
A
试题二(20分)
阅读下列说明,回答问题1至问题5,将解答填入答题纸的对应栏内。
[说明]某工厂的信息管理数据库的部分关系模式如下所示:
职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)部门(部门号,部门名,负责人代码,任职时间)关系模式的主要属性、含义及约束如表2-1所示,“职工”和“部门”的关系示例分别如表2-2和表2-3所示。
表2-1 主要属性、含义及约束
属 性
含义及约束
职工号
唯一标识每个职工的编号,每个职工属于并且仅属于一个部门
部门号
唯一标识每个部门的编号,每个部门有一个负责人,且他也是一个职工
月工资
500≤月工资≤5000元
表2-2 “职工”关系
职工号
姓名
年龄
月工资
部门号
电话
办公室
1001
郑俊华
26
1000
1
8001234
主楼201
1002
王 平
27
1100
1
8001234
主楼201
2001
王晓华
38
1300
2
8001235
1号楼302
2002
李 力
24
800
2
8001236
1号楼303
3001
黎运军
42
1300
3
8001237
主楼202
4001
李 源
24
800
4
8001245
2号楼102
4002
李兴民
36
1200
4
8001246
2号楼103
5001
赵 欣
25
0
Null
…
…
表2-2 “部门”关系
部门号
部门名
负责人代码
任职时间
1
人事处
1002
2004-8-3
2
机关
2001
2004-8-3
3
销售科
4
生产科
4002
2003-6-1
5
车间
【问题1】
根据上述说明,由SQL定义的“职工”和“部门”的关系模式,以及统计各部门的人数C、工资总数Totals、平均工资Averages的D_S视图如下所示,请在空缺处填入正确的内容。
(6分)
CreateTable 部门(部门号CHAR
(1)__(a)__,
部门名CHAR(16),
负责人代码CHAR(4),
任职时间DATE,
__(b)__(职工号));
CreateTable 职工(职工号CHAR(4),
姓名CHAR(8),
年龄NUMBER(3),
月工资NUMBER(4),
部门号CHAR
(1),
电话CHAR(8),
办公室CHAR(8),
__(a)__(职工号),
__(c)__(部门号),
CHECKL(__(d)__));
CreateViewD_S(D,C,Totals,Averages)As,(Select部门号,__(e)__
from职工__(f)__
【问题2】
对于表2-2、表2-3所示的“职工”和“部门”关系,请指出下列各行是否可以插入,为什么?
(3分)
1
1001
王新军
28
1000
1
8001234
主楼201
2
2003
李 力
28
1000
3
5802
赵晓啸
36
1500
6
8001568
3号楼503
【问题3】
在问题l定义的视图D_S上,下面那个查询或更新是允许执行的,为什么?
(3分)
(1)UpdateD_Sset=3whereD=4;
(2)DeletefromD_SwhereC>4;
(3)SelectD,AveragesfromD_SwhereC>(SelectCfromD_SwhereD=:
dept);
(4)SelectD,CFromD_SwhereTotals>10000;
(5)Select*fromD_S;
【问题4】
查询每个部门中月工资最高的“职工号”的SQl查询语句如下:
Select职工号from职工E
where月工资=(SelectMax(月工资)from职工asMwhereM.部门号=E.部门号)
(1)请用30字以内文字简要说明该查询语句对查询效率的影响。
(3分)
(2)对该查询语句进行修改,使它既可以完成相同功能,又可以提高查询效率。
(3分)
【问题5】
假定分别在“职工”关系中的“年龄”和“月工资”字段上创建了索引,如下的Select查询语句可能不会促使查询优化器使用索引,从而降低查询效率,请写出既可以完成相同功能又可以提高查询效率的SQL语句。
(2分)
Select姓名,年龄,月工资from职工
where年龄>45or月工资<1000;
下午试题参考答案
试题一
[问题1]解答
起点:
读者文件终点;登记读者信息或3
起点:
处理查询请求或2终点:
读者文件
[问候2]解答
起点;图书目录文件终点:
图书信息查询或2.2
起点:
借书文件终点:
读者信息查询或2.1
起点;借书文件终点;图书信息查询或2.2
[问题3]解答
(1)[入库单|借书单|还书单|注销单]
(2)分类目录号+书名+作者+价格+数量+购书日期
试题二
[问题1]解答
(a)PRIMARYKEY
(b)FOREIGNKEY(负贵人代码)REFERENCES职工
(c)FOREIGNKEY(部门号)REFERENCES部门
(d)月工资>=500AND月工资<=5000
(e)coumt(*),Sum(月工资),Avg(月工资)
(f)Croupby部门号
[问题2]解答
(1)该行不能插入“职工”关系,它违反了实体完整性中主码必须唯一区分关系中的每一个属性。
(2)该行可以插入“职工”关系,尽管部门号、电话和办公室为空,但是它表示该雇员没有分配到某个部门。
(3)该行不能插入“职工”关系,它违反了参照完整性。
因为6在关系“部门’中不存在。
[问题3]解答
此间考查的是对视图定义的掌握。
(1)和
(2)都不能更新,因为使用分组合聚集函数定义的视图是不可更新的。
(3)不一定,视子查询的返回值而定,(4)和(5)允许查询。
[问题4]解答
此间考察的是查询效率的问题。
在涉及相关查询的某些情形中,构造临时关系可以提高查询效率。
(1)对于外层的职工关系E中的每一个元组,都要对内层的整个职工关系M进行检索,因此查询效率不高。
(2)解答一
改正后的SQL语句使用了临时表:
SelectMax(月工资)as最高工资,部门号intoTempfrom职工Groupby部门号
Select职工号from职工,Temp where月工资=最高工资and职工.部门号=Temp.部门号
解答二
Select职工号from职工,(SelectMax(月工资)as最高工资,部门号Groupby部门号)asdepMax
where月工资=最高工资and职工.部门号=depMax.部门号
[问题5]解答
此问主要考察在查询中注意where子句中使用索引的问题。
Select姓名,年龄,月工资from职工where年龄>45;
union
Select姓名,年龄,月工资from职工where年龄月工资<1000;
试题三
[问题1]解答
[问题2]解答
商品(商品编号,商品名称,供应商,单价)
直销商品(商品编号,生产批号,消费期限)
库存商品(商品编号,折扣率)
[问题3]解答
销售详单(销售流水号,商品编码,数量,金额,收银员,时间)
销售日汇总(日期,商品编码,数量)
存货表(商品编码,数量)
进货表(送货号码,商品编码,数量,日期)
商品(商品编码,商品名称,供应商,单价)
直销商品(商品编号,生产批号,消费期限)
库存商品(商品编号,折扣率)
[问题4]解答
1.采用商品信息集中存储在中心数据库中,则在销售前台的每笔计费中,都必须从中心数据库提取商品名称和单价,增加网络的负载,在业务繁忙时直接影响到前台的销售效率;同时,如果发生网络故障,则该POS机不能工作。
采用这种方式,对商品库的更新,如引入新的商品和修改商品价格,会及时体现在前台的销售业务中。
2.采用商品信息存储在中心数据库中,各Pos机存储商品表的备份,POS机直接从本地读取商品信息,减少了网络的负载,可以提高交易的效率;同时即使有短时间的网络故障,也不影响该POS机的正常使用,只有当存在商品信息变更时才需要与中心数据库同步。
采用这种方式,必须在每次商品信息变更时同步各POS机的数据。
[问题5]解答
1.对销售详单做如下的修改,增加积分卡号属性。
销售详单(销售流水号,商品编号,数量,金额,收银员,时间,积分卡号)
2.加积分卡关系:
积分卡(积分卡号,累积消费金额,积分点)
试题四
[问题1]解答
(1)“航班”关系模式的候选键为(航班名,飞行日期),非键属性为;航空公司名称,出发地点,出发时间,目的地,到达时间。
(2)“航班”是属于1NF的。
因为非主属性航空公司名称,出发地点,目的地不完全函数依赖于候选键(航班名,飞行日期)。
该关系模式存在如下函数依赖:
航班名→航空公司名称,出发地点,目的地;
(航班名,飞行日期)→出发时间,到达时间。
[问题2]解答
参考答案1
(1)在题中给出的“旅客”关系中,不同的团队会有相同的旅客编号,所以,旅客编号不能作为候选键,如果同一旅客不同时间参加不同的团队将导致“身份证号无法确定关系中的每一个元组,所以“身份证号”也不能作为候选键。
为此,需要增加一个“团队编号”的属性。
又由于{(身份证号,团队编号)→旅客编号;(旅客编号,团队编号)→身份证号;身份证号一(姓名,联系方法,出生日期,性别)},所以该关系模式存在部分函数依赖,导致旅客参加多少次团队,其姓名等信息将重复多少次。
(2)候选键:
(身份证号,团队编号)和(旅客编号,团队编号)
(3)“旅客”分解为第三范式如下所示:
旅客1(身份证号,姓名,联系方法,出生日期,性别)
旅客2(旅客编号,身份证号,团队编号)
参考答案2
(1)在题中给出的“旅客”关系中,不同的团队会有相同的旅客编号,所以,旅客编号不能作为候选键,如果同一旅客不同时间参加不同的团队将导致“身份证号”无法确定关系中的每一个元组,所以“身份证号”也不能作为候选键。
为此,可以通过修改“旅客编号”属性的定义加以解决,旅客编号由“团队编号+队内编号”来解决。
这时关系的候选键为“旅客编号”,该关系模式存在传递依赖,导致旅客参加多少次团队,其姓名等信息将重复多少次。
(2)候选键;旅客编号。
(3)“旅客”分解为第三范式如下所示:
旅客1(身份证号,姓名,联系方法,出生日期,性别)
旅客2(旅客编号,身份证号)
[问题3]解答
(1)旅程编号→→旅客编号,旅程编号→→{搭乘日期,航班名}
(2)在“搭乘航班”关系中,存在着非平凡的多值依赖,旅程编号→旅客编号,旅程编号→→{搭乘日期,航班名},而该关系模式的候选键为(旅程编号,旅客编号,搭乘日期,航班名),所以,根据第四范式的定义,该关系模式BCNP不是第四范式。
(3)把分解成第四范式的结果,用与图4-1所示的关系模式的形式表示出来。
搭乘航班1(旅程编号,旅客编号)
搭乘航班2(旅程编号,航班名,搭乘日期)