2007年下半年数据库系统工程师下午试卷

考试总分:5分

考试类型:模拟试题

作答时间:60分钟

已答人数:967

试卷答案:有

试卷介绍: 2007年下半年数据库系统工程师下午试卷

开始答题

试卷预览

  • 1. 试题一(共15分)阅读以下说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。【说明】某高校欲开发一个成绩管理系统,记录并管理所有选修课程的学生的平时成绩和考试成绩,其主要功能描述如下:1.每门课程都有3到6个单元构成,每个单元结束后会进行一次测试,其成绩作为这门课程的平时成绩。课程结束后进行期末考试,其成绩作为这门课程的考试成绩。2.学生的平时成绩和考试成绩均由每门课程的主讲教师上传给成绩管理系统。3.在记录学生成绩之前,系统需要验证这些成绩是否有效。首先,根据学生信息文件来确认该学生是否选修这门课程,若没有,那么这些成绩是无效的;如果他的确选修了这门课程,再根据课程信息文件和课程单元信息文件来验证平时成绩是否与这门课程所包含的单元相对应,如果是,那么这些成绩是有效的,否则无效。4.对于有效成绩,系统将其保存在课程成绩文件中。对于无效成绩,系统会单独将其保存在无效成绩文件中,并将详细情况提交给教务处。在教务处没有给出具体处理意见之前,系统不会处理这些成绩。5.若一门课程的所有有效的平时成绩和考试成绩都已经被系统记录,系统会发送课程完成通知给教务处,告知该门课程的成绩已经齐全。教务处根据需要,请求系统生成相应的成绩列表,用来提交考试委员会审查。6.在生成成绩列表之前,系统会生成一份成绩报告给主讲教师,以便核对是否存在错误。主讲教师须将核对之后的成绩报告返还系统。7.根据主讲教师核对后的成绩报告,系统生成相应的成绩列表,递交考试委员会进行审查。考试委员会在审查之后,上交一份成绩审查结果给系统。对于所有通过审查的成绩,系统将会生成最终的成绩单,并通知每个选课学生。采用结构化方法对这个系统进行分析与设计,得到如图1-1所示的顶层数据流图和图1-2所示的0层数据流图。【问题1】(4分)使用说明中的词语,给出图1-1中的外部实体E1~E4的名称。【问题2】(3分)使用说明中的词语,给出图1-2中的数据存储D1~D5的名称。【问题3】(6分)数据流图1-2缺少了三条数据流,根据说明及数据流图1-1提供的信息,分别指出这三条数据流的起点和终点。【问题4】(2分)数据流图是在系统分析与总体设计阶段宏观地描述系统功能需求的重要图形化工具,程序流程图也是软件开发过程中比较常用的图形化工具。简要说明程序流程图的适用场合与作用。[15分]
  • 2. 试题二(15分)阅读以下说明,回答问题1至问题4,将解答填入答题纸的对应栏内。【说明】某商场客户-商品数据库中各关系模式如下:其中:1)一种品牌的同一名称商品可以有多个型号,商品的库存有大于等于0约束;2)销售表记录每一笔销售,每销售一件商品,其库存都要做相应的修改。现假定已经建立了该数据库及上述四个基本表。【问题1】(5分)(1)客户关系中的年龄取值在15岁到60岁之间(包含15岁和60岁),增加该约束的SQL语句如下,请将空缺部分补充完整。ALTERTABLE客户ADDCONSTRAINTCONSTRAINTcon_ageCHECK(_____(a)_____)(2)如下用SQL语句创建的畅销商品视图包含商品号、商品名称、型号、品牌和销售量,该视图中商品的销售量大于等于1000件。请将空缺部分补充完整。CREATEVIEW畅销商品_____(b)_____ASSELECT商品.商品号,名称,型号,品牌,销售量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)_____REFERENCINGNEWROWASnrowFOREACHROWWHEN_____(n)_____BEGININSERTINTO采购VALUES(_____(o)_____)END[15分]

    A(1)客户关系中的年龄取值在15岁到60岁之间(包含15岁和60岁),增加该约束的SQL语句如下,请将空缺部分补充完整。ALTERTABLE客户ADDCONSTRAINTCONSTRAINTcon_ageCHECK(_____(a)_____)

    B(2)如下用SQL语句创建的畅销商品视图包含商品号、商品名称、型号、品牌和销售量,该视图中商品的销售量大于等于1000件。请将空缺部分补充完整。CREATEVIEW畅销商品_____(b)_____ASSELECT商品.商品号,名称,型号,品牌,销售量FROM商品,(SELECT商品号,_____(c)_____AS销售量FROM销售GROUPBY商品号HAVINGSUM(数量)>=1000)AS商品销售量WHERE_____(d)_____;

    C(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)_____REFERENCINGNEWROWASnrowFOREACHROWWHEN_____(n)_____BEGININSERTINTO采购VALUES(_____(o)_____)END[15分]

  • 3. 试题三(15分)阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】某汽车维修站拟开发一套小型汽车维修管理系统,对车辆的维修情况进行管理。【需求分析】1.对于前来维修的车辆,汽车维修管理系统首先登记客户信息,包括:客户编号、客户名称、客户性质(个人、单位)、折扣率、联系人、联系电话等信息;还要记录客户的车辆信息,包括:车牌号、车型、颜色等信息。一个客户至少有一台车。客户及车辆信息如表3-1所示。2.维修站的业务员对车辆进行检查和故障分析后,与客户磋商,确定车辆的故障现象及维修范围,填写维修委托书,包括:维修类型(普通、加急)、作业分类(大、中、小修)、结算方式(自付、三包、索赔)等信息。维修委托书如表3-2所示。3.维修车间根据维修委托书和车辆的故障现象,在已有的维修项目中选择一个或多个具体的维修项目,安排相关的维修工及工时,生成维修派工单。维修派工单如表3-3所示。4.客户车辆修理完毕后,根据维修项目单价和维修派工单中的工时计算车辆此次维修的总费用,记录在委托书中。【概念模型设计】根据需求阶段收集的信息,设计的实体联系图(不完整)如图3-1所示。图3-1中业务员和维修工是员工的子实体。【逻辑结构设计】根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整):客户(_____(1)_____,折扣率,联系人,联系电话)车辆(_____(2)_____,车型,颜色,车辆类别)委托书(_____(3)_____,维修类型,作业分类,结算方式,进厂时间,预计完工时间,登记日期,故障描述,总费用)维修项目(维修项目编号,维修项目,单价)派工单(_____(4)_____,工时)员工(_____(5)_____,工种,员工类型,级别)【问题1】(6分)补充图3-1中的联系和联系的类型。【问题2】(5分)根据图3-1,将逻辑结构设计阶段生成的关系模式中的空(1)~(5)补充完整。对所有关系模式,用下划线指出各关系模式的主键。【问题3】(4分)若车辆可购买多种不同的保险,则对应有多个保险单。如果考虑需要理赔的情况,则在结算车辆维修费用时,需要用户指定此次委托维修的车辆的不同保险单所负担的总维修费用的比例。请对增加了“保险单”实体的图3-1进行修改,画出修改后的实体间联系和联系的类型。[15分]

    A(1)_____,折扣率,联系人,联系电话)车辆(_____

    B(2)_____,车型,颜色,车辆类别)委托书(_____

    C(3)_____,维修类型,作业分类,结算方式,进厂时间,预计完工时间,登记日期,故障描述,总费用)维修项目(维修项目编号,维修项目,单价)派工单(_____

    D(4)_____,工时)员工(_____

    E(5)_____,工种,员工类型,级别)【问题1】(6分)补充图3-1中的联系和联系的类型。【问题2】(5分)根据图3-1,将逻辑结构设计阶段生成的关系模式中的空(1)~(5)补充完整。对所有关系模式,用下划线指出各关系模式的主键。【问题3】(4分)若车辆可购买多种不同的保险,则对应有多个保险单。如果考虑需要理赔的情况,则在结算车辆维修费用时,需要用户指定此次委托维修的车辆的不同保险单所负担的总维修费用的比例。请对增加了“保险单”实体的图3-1进行修改,画出修改后的实体间联系和联系的类型。[15分]

  • 4. 试题四(15分)阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】某科研项目管理机构拟开发科研管理系统,以便管理科研项目信息。设计了科研信息数据库,其关系模式如图4-1所示。关系模式的主要属性、含义及约束如表4-1所示。一个科研项目(课题)由一位科研专家作为负责人。一个科研项目可以由多个单位参与,这些单位可以作为承担单位或者合作单位来参与科研项目。一个科研项目可以有多个拨款单位,每个单位按合同经费的一定百分比拨款。科研专家是具有科研项目申请资格的科研人员。一位科研专家可以参与不同的科研项目。参与科研项目的每个单位可以有多个除科研专家外的单位员工参与项目的研发。属性间的函数依赖关系如下:对于“项目信息”关系模式:课题编号,单位名称,拨款单位→课题名称,负责人,单位类别,单位排名,合同经费,拨款百分比课题编号,单位名称→课题名称,负责人,课题类别,单位排名,合同经费课题编号,拨款单位→课题名称,负责人,合同经费,拨款百分比课题编号→课题名称,负责人,合同经费课题编号→→拨款单位,拨款百分比课题编号→→单位名称,单位类别,单位排名对于“科研专家”关系模式:人员编号→姓名,性别,出生年月,身份证号,最高学位,职称,研究方向,所在单位,单位地址所在单位→单位地址身份证号→人员编号对于“项目研发人员”关系模式:课题编号,所在单位,职工号→姓名,年龄,学历,职称,分工,排名,参加月数所在单位,职工号→姓名,年龄,学历,职称【问题1】(5分)对关系“科研专家”,请回答以下问题:(1)列举出所有不属于任何候选键的属性(非键属性)。(2)关系“科研专家”可达到第几范式,用60字以内文字简要叙述理由。【问题2】(6分)对关系“项目研发人员”,请回答以下问题:(1)针对“项目研发人员”关系,用100字以内文字简要说明会产生什么问题。(2)把“项目研发人员”分解为第三范式,分解后的关系名依次为:项目研发人员1,项目研发人员2,…(3)列出修正后的各关系模式的主键。【问题3】(4分)对关系“项目信息”,请回答以下问题:(1)关系“项目信息”是不是第四范式,用100字以内文字叙述理由。(2)把“项目信息”分解为第四范式,分解后的关系名依次为:项目信息1,项目信息2,…[15分]
  • 5. 试题五(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;SETTRANSACTIONISOLATIONLEVELREADUNCOMMITTEDUPDATEAccountsSETCurrentBalance=CurrentBalance+AmountWHEREAccountID=AccountNo;COMMIT;……其中:Accounts为帐户表,CurrentBalance为当前余额,Amount为新存入的金额,AccountNo为外部输入的帐户编码。该事务程序能否正确实现并发的存款业务?如果不能,请说明原因,应做怎样的修改?(100字以内)[15分]
相关试卷
相关题库