整理下半年数据库系统工程师下午试题及答案.docx
《整理下半年数据库系统工程师下午试题及答案.docx》由会员分享,可在线阅读,更多相关《整理下半年数据库系统工程师下午试题及答案.docx(19页珍藏版)》请在冰豆网上搜索。
整理下半年数据库系统工程师下午试题及答案
2007年下半年数据库系统工程师答案(上下午下午试题)
1-5BABCB6-10CADDB11-15BBDCC16-20DACBB21-25CDCCC26-30CBADC31-35BADBD36-40BBCDC41-45ADADB46-50BCCDA51-55BDBBB56-60CDBDD61-65AAACA66-70BBDDA71-75BDACD
问题1
E1:
考试委员会;E2:
主讲教师;E3:
学生或选课学生;E4:
教务处问题2
D1:
学生信息文件;D2:
课程单元信息文件;D3:
课程信息文件;D4:
课程成绩文件;D5:
无效成绩文件注:
D2和D3的答案可以互换。
问题3
注:
数据流起点、终点全部答对才可给分,数据流不分先后顺序。
问题4
程序流程图通常在进行详细设计时使用,用来描述程序的逻辑结构。
问题1
(1)(a)年龄>=15AND年龄<=60或年龄BETWEEN15AND60
(2)(b)(商品号,商品名称,型号,品牌,销售量)(c)SUM(数量)(d)商品,商品号=商品销售量.商品号(3)(e)SELECT问题2
(f)客户,销售.(注:
加商品表错误!
)(g)客户.客户号=销售.客户号(h)IN(注:
用=错误!
)问题3
(i):
pno,:
cno,:
quantity,:
date(j)库存-:
quantiy
(k)COMMITWORK或COMMIT问题4
(l)ADD最小库存INT(注:
INT处可为INTEGER)
(m)UPDATEOF库存ON商品或UPDATEON商品(n)nrow.数量<=nrow.最小库存
(o)nrow.商品号,nrow.最小库存*2+10
问题1
注:
若考生将委托书与业务员之间的联系画成委托书与员工之间的联系也正确,若考生将派工联系与维修工的边线画成派工联系与员工之间的边线也正确。
问题2
(1)客户编号,客户名称,客户性质
(2)车牌号,客户编号
(3)委托书编号,车牌号,业务员编码
或委托书编号,车牌号,客户编号,业务员编号(4)委托书编号,维修项目编号,维修员编号(5)员工编号,员工姓名
问题3
问题1
(1)姓名,性别,出生年月,最高学位,职称,研究方向,所在单位,单位地址
(2)“科研专家”关系模式可以达到第二范式,不满足第三范式。
由于“科研专家”关系模式的主键是“人员编号”,但又包含函数依赖:
所在单位—>单位地址
不满足第三范式的要求,即:
存在非主属性对码的传递依赖。
问题2
(1)“项目研发人员”关系不满足第二范式,即:
非主属性不完全依赖于码。
(2)会造成:
插入异常、删除异常和修改复杂(或修改异常)。
(3)分解后的关系模式如下:
项目研发人员1(所在单位,职工号,姓名,年龄,学历,职称)
项目研发人员2(课题编号,所在单位,职工号,分工,排名,参加月数)(4)修正后的主键如下:
项目研发人员1(所在单位,职工号,姓名,年龄,学历,职称)
项目研发人员2(课题编号,所在单位,职工号,分工,排名,参加月数)
问题3
(1)“项目信息”关系模式,不满足第四范式
(2)分解后的关系模式如下
项目信息1(课题编号,课题名称,负责人,合同经费)项目信息2(课题编号,单位名称,单位类别,单位排名)项目信息3(课题编号,拨款单位,拨款百分比)
问题1
出现问题:
有一个存款值会丢失,造成数据不一致。
问题2
为代码:
Xlock(b),R(b),b=b+x,W(b),Unlock(b)问题3
不能实现,因为程序中的隔离级别设置为PEADUNCOMMITTED,未实现加锁机制,不能达到串行化调度。
修改方法:
将程序中的SETTRANSACTIONISOLATIONLEVELREADUNCOMMITTED改为SETTRANSACTIONISOLATIONLEVELSERIALIZABLE。
全国计算机技术与软件专业技术资格(水平)考试
2007年下半年数据库系统工程师下午试卷
(考试时间14:
00~16:
30共150分钟)
请按下述要求正确填写答题纸
1.在答题纸的指定位置填写你所在的省、自治区、直辖市、计划单列市的名称。
2.在答题纸的指定位置填写准考证号、出生年月日和姓名。
3.答题纸上除填写上述内容外只能写解答。
4.本试卷共5道题,全部是必答题,每题15分,满分75分。
5.解答时字迹务必清楚,字迹不清时,将不评分。
6.仿照下面例题,将解答写在答题纸的对应栏内。
例题
2007年下半年全国计算机技术与软件专业技术资格(水平)考试日期是
(1)月
(2)日。
因为正确的解答是“11月3日”,故在答题纸的对应栏内写上“11”和“3”(参看下表)。
例题
解答栏
(1)
11
(2)
3
注:
试题中通用的表示规则见最后一页。
试题一(共15分)
阅读以下说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某高校欲开发一个成绩管理系统,记录并管理所有选修课程的学生的平时成绩和考试成绩,其主要功能描述如下:
1.每门课程都有3到6个单元构成,每个单元结束后会进行一次测试,其成绩作为这门课程的平时成绩。
课程结束后进行期末考试,其成绩作为这门课程的考试成绩。
2.学生的平时成绩和考试成绩均由每门课程的主讲教师上传给成绩管理系统。
3.在记录学生成绩之前,系统需要验证这些成绩是否有效。
首先,根据学生信息文件来确认该学生是否选修这门课程,若没有,那么这些成绩是无效的;如果他的确选修了这门课程,再根据课程信息文件和课程单元信息文件来验证平时成绩是否与这门课程所包含的单元相对应,如果是,那么这些成绩是有效的,否则无效。
4.对于有效成绩,系统将其保存在课程成绩文件中。
对于无效成绩,系统会单独将其保存在无效成绩文件中,并将详细情况提交给教务处。
在教务处没有给出具体处理意见之前,系统不会处理这些成绩。
5.若一门课程的所有有效的平时成绩和考试成绩都已经被系统记录,系统会发送课程完成通知给教务处,告知该门课程的成绩已经齐全。
教务处根据需要,请求系统生成相应的成绩列表,用来提交考试委员会审查。
6.在生成成绩列表之前,系统会生成一份成绩报告给主讲教师,以便核对是否存在错误。
主讲教师须将核对之后的成绩报告返还系统。
7.根据主讲教师核对后的成绩报告,系统生成相应的成绩列表,递交考试委员会进行审查。
考试委员会在审查之后,上交一份成绩审查结果给系统。
对于所有通过审查的成绩,系统将会生成最终的成绩单,并通知每个选课学生。
采用结构化方法对这个系统进行分析与设计,得到如图1-1所示的顶层数据流图和图1-2所示的0层数据流图。
图1-1顶层数据流图
图1-20层数据流图
【问题1】(4分)
使用说明中的词语,给出图1-1中的外部实体E1~E4的名称。
【问题2】(3分)
使用说明中的词语,给出图1-2中的数据存储D1~D5的名称。
【问题3】(6分)
数据流图1-2缺少了三条数据流,根据说明及数据流图1-1提供的信息,分别指出这三条数据流的起点和终点。
起点
终点
【问题4】(2分)
数据流图是在系统分析与总体设计阶段宏观地描述系统功能需求的重要图形化工具,程序流程图也是软件开发过程中比较常用的图形化工具。
简要说明程序流程图的适用场合与作用。
试题二(15分)
阅读以下说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某商场客户-商品数据库中各关系模式如下:
客户(客户号,姓名,性别,年龄)
商品(商品号,名称,型号,品牌,单价,库存)
销售(流水号,客户号,商品号,数量,日期)
采购(商品号,数量)
其中:
1)一种品牌的同一名称商品可以有多个型号,商品的库存有大于等于0约束;
2)销售表记录每一笔销售,每销售一件商品,其库存都要做相应的修改。
现假定已经建立了该数据库及上述四个基本表。
【问题1】(5分)
(1)客户关系中的年龄取值在15岁到60岁之间(包含15岁和60岁),增加该约束的SQL语句如下,请将空缺部分补充完整。
ALTERTABLE客户ADDCONSTRAINT
CONSTRAINTcon_ageCHECK((a))
(2)如下用SQL语句创建的畅销商品视图包含商品号、商品名称、型号、品牌和销售量,该视图中商品的销售量大于等于1000件。
请将空缺部分补充完整。
CREATEVIEW畅销商品(b)
AS
SELECT商品.商品号,名称,型号,品牌,销售量
FROM商品,(SELECT商品号,(c)AS销售量
FROM销售
GROUPBY商品号
HAVINGSUM(数量)>=1000)AS商品销售量
WHERE(d);
(3)将视图畅销商品的查询权限赋予销售经理李华,请将空缺部分补充完整。
GRANT(e)ONTABLE畅销商品TO李华;
【问题2】(3分)
查询购买“新飞”品牌的任一型号“冰箱”的客户姓名及购买日期。
实现该查询的SQL语句如下,请将空缺部分补充完整。
SELECT姓名,日期
FROM(f)
WHERE(g)AND商品号(h)(
SELECT商品号FROM商品
WHERE品牌=‘新飞’AND名称=‘冰箱’)
【问题3】(3分)
实现销售业务的嵌入式SQL代码段(嵌入C语言)如下,假设销售表的流水号由系统自动生成。
请将空缺部分补充完整。
……
EXECSQLBEGINDECLARESECTION;
/*销售:
商品号,客户号,数量,日期*/
charpno[6];charcno[6];
intquantity;chardate[10];
EXECSQLENDDECLARESECTION;
……
EXECSQLCONNECTTODEFAULT;
EXECSQLSETTRANSACTIONISOLATIONLEVELSERIALIZABLE;
EXECSQLINSERTINTO销售(商品号,客户号,数量,日期)
VALUES((i));
EXECSQLUPDATE商品SET库存=(j)WHERE商品号=:
pno;
if(SQLCA.SQLCODE!
=0){
printf(“商品%s库存不满足本次购买数量,交易失败!
”,pno);
EXECSQLROLLBACKWORK;
}else{
EXECSQL(k);
}
EXECSQLDISCONNECTCURRENT;
……
【问题4】(4分)
对商品表增加最小库存属性;若修改某商品的库存时,使得库存值小于或等于其最小库存值,则向采购表插入一条记录,要求采购的数量是该商品最小库存值的两倍再加上10。
下面是完成该功能的SQL语句,请将空缺部分补充完整。
ALTERTABLE商品(l);
CREATETRIGGER采购-triggerAFTER(m)
REFERENCINGNEWROWASnrow
FOREACHROW
WHEN(n)
BEGIN
INSERTINTO采购
VALUES((o))
END
试题三(15分)
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某汽车维修站拟开发一套小型汽车维修管理系统,对车辆的维修情况进行管理。
【需求分析】
1.对于前来维修的车辆,汽车维修管理系统首先登记客户信息,包括:
客户编号、客户名称、客户性质(个人、单位)、折扣率、联系人、联系电话等信息;还要记录客户的车辆信息,包括:
车牌号、车型、颜色等信息。
一个客户至少有一台车。
客户及车辆信息如表3-1所示。
表3-1客户及车辆信息
客户编码
GS0051
客户名称
××公司
客户性质
单位
折扣率
95%
联系人
杨浩东
联系电话
82638779
车牌号
颜色
车型
车辆类别
**0765
白色
帕萨特
微型车
2.维修站的业务员对车辆进行检查和故障分析后,与客户磋商,确定车辆的故障现象及维修范围,填写维修委托书,包括:
维修类型(普通、加急)、作业分类(大、中、小修)、结算方式(自付、三包、索赔)等信息。
维修委托书如表3-2所示。
表3-2维修委托书
No.20070702003登记日期:
2007-07-02
车牌号
**0765
客户编号
GS0051
维修类型
普通
作业分类
中修
结算方式
自付
进厂时间
2007070211:
09
业务员
张小江
业务员编号
012
预计完工时间
故障描述
车头损坏,水箱漏水
3.维修车间根据维修委托书和车辆的故障现象,在已有的维修项目中选择一个或多个具体的维修项目,安排相关的维修工及工时,生成维修派工单。
维修派工单如表3-3所示。
表3-3维修派工单
No.20070702003
维修项目编号
维修项目
工时
维修员编号
维修员工种
012
维修车头
5.00
012
机修
012
维修车头
2.00
023
漆工
015
水箱焊接补漏
1.00
006
焊工
017
更换车灯
1.00
012
机修
4.客户车辆修理完毕后,根据维修项目单价和维修派工单中的工时计算车辆此次维修的总费用,记录在委托书中。
【概念模型设计】
根据需求阶段收集的信息,设计的实体联系图(不完整)如图3-1所示。
图3-1中业务员和维修工是员工的子实体。
【逻辑结构设计】
根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整):
客户(
(1),折扣率,联系人,联系电话)
车辆(
(2),车型,颜色,车辆类别)
委托书((3),维修类型,作业分类,结算方式,进厂时间,
预计完工时间,登记日期,故障描述,总费用)
维修项目(维修项目编号,维修项目,单价)
派工单((4),工时)
员工((5),工种,员工类型,级别)
【问题1】(6分)
补充图3-1中的联系和联系的类型。
【问题2】(5分)
根据图3-1,将逻辑结构设计阶段生成的关系模式中的空
(1)~(5)补充完整。
对所有关系模式,用下划线指出各关系模式的主键。
【问题3】(4分)
若车辆可购买多种不同的保险,则对应有多个保险单。
如果考虑需要理赔的情况,则在结算车辆维修费用时,需要用户指定此次委托维修的车辆的不同保险单所负担的总维修费用的比例。
请对增加了“保险单”实体的图3-1进行修改,画出修改后的实体间联系和联系的类型。
3.环境影响登记表的内容试题四(15分)
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
本章中环境影响评价制度,2010年的真题中全部集中在环境影响评价这一节。
环境保护的对象,环境影响评价制度,环境影响评价文件的组成、文件的报批等是历年考试的热点。
某科研项目管理机构拟开发科研管理系统,以便管理科研项目信息。
设计了科研信息数据库,其关系模式如图4-1所示。
2.环境敏感区的界定项目信息(课题编号,课题名称,负责人,单位名称,单位类别,单位排名,
疾病成本法和人力资本法是用于估算环境变化造成的健康损失成本的主要方法,或者说是通过评价反映在人体健康上的环境价值的方法。
合同经费,拨款单位,拨款百分比)
科研专家(人员编号,姓名,性别,出生年月,身份证号,学位,职称,
大纲要求研究方向,所在单位,单位地址)
安全评价是落实“安全第一,预防为主,综合治理”方针的重要技术保障,是安全生产监督管理的重要手段。
项目研发人员(职工号,姓名,年龄,学历,职称,所在单位,课题编号,分工,
排名,参加月数)
定性评价方法有:
安全检查表、预先危险分析、故障类型和影响分析、作业条件危险性评价法、危险和可操作性研究等。
规划编制单位应当在报送审查的环境影响报告书中附具对公众意见采纳与不采纳情况及其理由的说明。
图4-1科研信息数据库关系模式
(5)为保障评价对象建成或实施后能安全运行,应从评价对象的总图布置、功能分布、工艺流程、设施、设备、装置等方面提出安全技术对策措施;从评价对象的组织机构设置、人员管理、物料管理、应急救援管理等方面提出安全管理对策措施;从保证评价对象安全运行的需要提出其他安全对策措施。
对策措施的建议应有针对性、技术可行性和经济合理性,可分为应采纳和宜采纳两种类型。
关系模式的主要属性、含义及约束如表4-1所示。
(3)环境影响分析、预测和评估的可靠性;表4-1主要属性、含义及约束
属性
含义和约束条件
课题编号
唯一标识某个科研项目的编号
负责人
某个科研专家的编号
单位类别
标识参与课题的单位是承担单位还是合作单位
人员编号
唯一标识具有科研项目申请资格的某个科研专家的编号
所在单位
科研专家所在的单位名称
职工号
在某个单位中唯一表示该单位参与项目开发的员工编号
职称
初级、中级、高级职称
一个科研项目(课题)由一位科研专家作为负责人。
一个科研项目可以由多个单位参与,这些单位可以作为承担单位或者合作单位来参与科研项目。
一个科研项目可以有多个拨款单位,每个单位按合同经费的一定百分比拨款。
科研专家是具有科研项目申请资格的科研人员。
一位科研专家可以参与不同的科研项目。
参与科研项目的每个单位可以有多个除科研专家外的单位员工参与项目的研发。
属性间的函数依赖关系如下:
对于“项目信息”关系模式:
课题编号,单位名称,拨款单位→课题名称,负责人,单位类别,单位排名,合同经费,拨款百分比
课题编号,单位名称→课题名称,负责人,课题类别,单位排名,合同经费
课题编号,拨款单位→课题名称,负责人,合同经费,拨款百分比
课题编号→课题名称,负责人,合同经费
课题编号→→拨款单位,拨款百分比
课题编号→→单位名称,单位类别,单位排名
对于“科研专家”关系模式:
人员编号→姓名,性别,出生年月,身份证号,最高学位,职称,研究方向,所在单位,单位地址
所在单位→单位地址
身份证号→人员编号
对于“项目研发人员”关系模式:
课题编号,所在单位,职工号→姓名,年龄,学历,职称,分工,排名,参加月数
所在单位,职工号→姓名,年龄,学历,职称
【问题1】(5分)
对关系“科研专家”,请回答以下问题:
(1)列举出所有不属于任何候选键的属性(非键属性)。
(2)关系“科研专家”可达到第几范式,用60字以内文字简要叙述理由。
【问题2】(6分)
对关系“项目研发人员”,请回答以下问题:
(1)针对“项目研发人员”关系,用100字以内文字简要说明会产生什么问题。
(2)把“项目研发人员”分解为第三范式,分解后的关系名依次为:
项目研发人员1,项目研发人员2,…
(3)列出修正后的各关系模式的主键。
【问题3】(4分)
对关系“项目信息”,请回答以下问题:
(1)关系“项目信息”是不是第四范式,用100字以内文字叙述理由。
(2)把“项目信息”分解为第四范式,分解后的关系名依次为:
项目信息1,项目信息2,…
试题五(15分)
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某银行的存款业务分为如下三个过程:
(1)读取当前帐户余额,记为R(b);
(2)当前余额b加上新存入的金额x作为新的余额b,即b=b+x;
(3)将新余额b写入当前帐户,记为W(b)。
存款业务分布于该银行各营业厅,并允许多个客户同时向同一帐户存款,针对这一需求,完成下述问题。
【问题1】(5分)
假设同时有两个客户向同一帐号发出存款请求,该程序会出现什么问题?
(100字以内)
【问题2】(5分)
存款业务的伪代码程序为R(b),b=b+x,W(b)。
现引入共享锁指令SLock(b)和独占锁指令XLock(b)对数据b进行加锁,解锁指令Unlock(b)对数据b进行解锁。
请补充上述存款业务的伪代码程序,使其满足2PL协议。
【问题3】(5分)
若用SQL语句编写的存款业务事务程序如下:
……
STARTTRANSACTION;
SETTRANSACTIONISOLATIONLEVELREADUNCOMMITTED
UPDATEAccounts
SETCurrentBalance=CurrentBalance+Amount
WHEREAccountID=AccountNo;
COMMIT;
……
其中:
Accounts为帐户表,CurrentBalance为当前余额,Amount为新存入的金额,AccountNo为外部输入的帐户编码。
该事务程序能否正确实现并发的存款业务?
如果不能,请说明原因,应做怎样的修改?
(100字以内)
试题中通用的表示规则
关于概念模型、关系模式的标记,试题中若无特殊声明,将使用如下的通用标记规则。
1.概念模型的标记规则分别如图1、图2和图3所示。
其中:
(1)实体类型用长方形表示。
长方形内为实体类型名称。
(2)实体类型间的联系用菱形表示。
在联系与实体间的连线上注明联系的类型。
图1实体类型和联系的标记规则
(3)超类型和子类型之间的联系,从超类型到子类型之间画连线,连线上加注小圆圈,子类型加双线竖框。
图2超类型和子类型的标记规则
(4)实体和联系的属性用椭圆表示,并用直线将属性与其所属的实体或联系连接起来。
图3实体类型及联系与其属性的标记规则
2.关系模式的标记规则如下:
关系名(属性名1,属性名2,…,属性名n)
其中:
(1)若该属性仅为主键属性,则该属性名下画实下划线;
(2)若该属性仅是外键属性,则该属性名下画虚下划线;
(3)若该属性既是主键属性,又是外键属性,则在该属性名下面画实下划线和虚下划线;
(4)若该属性既不是主键属性,又不是外键属性,则在该属性名下不做标记。