《数据库系统工程师下午2013上半年》由会员分享,可在线阅读,更多相关《数据库系统工程师下午2013上半年(10页珍藏版)》请在金锄头文库上搜索。
1、 真题 数据库系统工程师下午 2013 上半年填空题 试题一 阅读以下说明和图,根据要求回答下列问题。 说明 某慈善机构欲开发一个募捐系统, 以跟踪记录为事业或项目向目标群体 进行募捐而组织的集体性活动。该系统的主要功能如下所示。(1) 管理志愿者。 根据募捐任务给志愿者发送加入邀请、 邀请跟进、 工作 任务;管理志愿者提供的邀请响应、志愿者信息、工作时长、工作结果等。(2) 确定募捐需求和收集所募捐赠 (资金及物品 ) 。根据需求提出募捐任 务、活动请求和捐赠请求,获取所募集的资金和物品。(3) 组织募捐活动。 根据活动请求, 确定活动时间范围。 根据活动时间, 搜索场馆,即:向场馆发送场馆
2、可用性请求,获得场馆可用性。然后根据活动时 间和地点推广募捐活动, 根据相应的活动信息举办活动, 从募捐机构获取资金并 向其发放赠品。获取和处理捐赠,根据捐赠请求,提供所募集的捐赠;处理与捐 赠人之间的交互,即:录入捐赠人信息,处理后存入捐赠人信息表;从捐赠人信 息表中查询捐赠人信息, 向捐赠人发送募捐请求, 并将已联系的捐赠人存入已联 系的捐赠人表。根据捐赠请求进行募集,募得捐赠后,将捐赠记录存入捐赠表; 对捐赠记录进行处理后, 存入已处理捐赠表, 向捐赠人发送致谢函。 根据已联系 的捐赠人和捐赠记录进行跟进,将捐赠跟进情况发送给捐赠人。现采用结构化方法对募捐系统进行分析与设计, 获得如图所
3、示的分层数 据流图。第 1 题:使用说明中的词语,给出图1中的实体E1E4的名称。 参考答案:E1:志愿者E2:捐赠人 E3 :募捐机构E4:场馆详细解答: 由题干中的关键信息“根据募捐任务给志愿者发送加入邀请、邀请跟进、工 作任务;管理志愿者提供的邀请响应、志愿者信息、工作时长、工作结果等”, 结合如图 1 所示的 0 层数据流图中与实体 E1 相关的“加入邀请 /邀请跟进/ 工作 任务”这一条输入数据流,以及“志愿者信息 /工作时长 /邀请响应/工作结果” 这一条输出数据流可知,实体 E1 的名称是“志愿者”。根据题干中给出的“根据活动时间, 搜索场馆,即:向场馆发送场馆可用性请求, 获得
4、场馆可用性” 等关键信息,结合图1中输入至实体E4的数据流“场馆可用性请求”,以及输出数据流“场馆可用性”等可知,实体 E4 的名称是“场馆”。基于题干中给出的“根据相应的活动信息举办活动,从募捐机构获取资金并向其发放赠品” 等关键信息,结合图1中输入至实体E3的数据流“赠品”,以及输出数据流“资 金”等可知,实体E3的名称是“募捐机构”。依据题干中给出的“从捐赠人信息表中查询捐赠人信息, 向捐赠人发送募捐请求” 等关键信息, 结合图 1 中 输入至实体E2的数据流“募捐请求”,以及输出数据流“捐赠人信息”等可知, 实体E2的名称是“捐赠人”。第 2 题:在建模DFD时,需要对有些复杂加工(处
5、理)进行进一步精化,图2为图1中处 理 3 的进一步细化的 1 层数据流图,图 3 为图 2 中 3.1 进一步细化的 2 层数据 流图。补全图2中加工P1、P2和P3的名称和图2与图3中缺少的数据流。参考答案:P1:确定活动时间范围P2 :搜索场馆P3 :推广募捐活动注:数据流没有次序要求; 其中“2”处可以为“确定募捐需求收集所募捐赠” 详细解答:基于问题 1 的解析结果,结合如图 2 所示的 1 层数据流图中与加工 P1 相关 的“活动时间”这一条输出数据流,查找到题干中与之相关的关键信息“ (3) 组 织募捐活动。根据活动请求,确定活动时间范围。根据活动时间 ”可知, P1 的名称是“
6、确定活动时间范围”。根据题干中给出的“根据活动时间,搜索场馆,即:向场馆发送场馆可用性请求,获得场馆可用性”等关键信息,结合 图2中加工P2的输入数据流“活动时间”和“场馆可用性”,以及输出数据流“场馆可用性请求”等可知,P2的名称是“搜索场馆”。由题干中给出的关键信息“然后根据活动时间和地点推广募捐活动, 根据相应的活动信息举办活 动”等,结合图2中加工P3的输入数据流“活动时间和地点”,以及输出 数据流“活动信息”等可知,P3的名称是“推广募捐活动”。结合题干中给出的关键信息“ (3) 组织募捐活动。根据活动请求,确定活动时间范围”,以 及图 1 中处理 2 至处理 3 的数据流“活动请求
7、” 可知, 图 2 中缺少了一条从处理 2 至处理 3.2 的数据流“活动请求”。依据题干中给出的“ (2) 确定募捐需求和收集所募捐赠(资金及物品)获取所募集的资金和物品”、“(3)组织募捐活动获取和处理捐赠, 根据捐赠请求, 提供所募集的捐赠” 等关键信息可 知,图 2 中缺少了一条从处理 3.5 至处理 2 的数据流“所募集资金”。基于题干中给出的关键信息“(3)组织募捐活动根据捐赠请求进行募集”,以 及图 2 中处理 2 至处理 3.1 的数据流“捐赠请求” 可知,图 3 中缺少了一条从处 理 2 至处理 的数据流“捐赠请求”。根据图 2中处理 3.1 至处理 2的数据流“所募集物品”
8、、“所募集资金”,以及“ (2) 确定募捐需求和收集所 募捐赠(资金及物品)获取所募集的资金和物品”可知,图3中缺少了一条从 处理 至处理 2 的数据流“所募集捐赠”第 3 题:使用说明中的词语,给出图3中的数据存储D1D4的名称。 参考答案:D1:捐赠人信息表D2:已联系的捐赠人表D3:捐赠表D4:已处理捐赠表详细解答:结合题干中给出的关键信息 “录入捐赠人信息, 处理后存入捐赠人信息表” , 以及图3中处理的名称“录入捐赠人信息”可知,图 3中数据存储D1的 名称是“捐赠人信息表”。同理,根据题干中给出的关键信息“向捐赠人发送募捐请求, 并将已联系的捐赠人存入已联系的捐赠人表” ,以及图
9、3 中 处理 的名称“请求募捐”及其输出数据流“已联系的捐赠人”等可知,数 据存储D2的名称是“已联系的捐赠人表”。基于题干中给出的关键信息“根据捐赠请求进行募集,募得捐赠后,将捐赠记录存入捐赠表”,以及图 3 中处理 的名称“募集”及其输出数据流“捐赠记录”等可知,数据存储 D3的名称是“捐赠表”。依据题干中给出的关键信息“对捐赠记录进行处理后,存入已处理捐赠表”,以及图 3中处理的名称“募集”及 其输出数据流“已处理的捐赠记录”等可知,数据存储D4的名称是“已处理捐赠表”。试题二阅读以下说明,根据要求回答下列问题。 说明 某航空公司要开发一个订票信息处理系统, 该系统的部分关系模式如下:
10、航班(u航班编号/u,航空公司,起飞地,起飞时间,目的地,到达 时间,票价 )折扣(航班编号,开始日期,结束日期,折扣 )旅客(u身份证号/u,姓名,性别,出生日期,电话,VIP折扣) 购票(u购票单号/u,uB#份证号v/Bv/u,uB:航班编号 /B/u ,搭乘日期,购票金额 )有关关系模式的属性及相关说明如下:(1)航班表中的起飞时间和到达时间不包含日期,同一航班不会在一天 出现两次及两次以上;(2)各航空公司会根据旅客出行淡旺季适时调整机票的折扣,旅客购买 机票的购票金额计算公式为:票价X折扣X VIP折扣,其中旅客的VIP折扣与该 旅客已购买过的机票的购票金额总和相关,在旅客每次购票
11、后被修改。 VIP 折扣 值的计算由函数 float vip_value(char18 身份证号 )完成。根据以上描述,回答下列问题。第4题: 请将如下创建购票关系的SQL语句的空缺部分补充完整,要求指定关系的主 键、外键,以及购票金额大于零的约束。CREATE TABLE勾票(购票单号 CHAR(15) ,身份证号 CHAR(18),航班编号 CHAR(6),搭乘日期 DATE, 购票金额 FLOAT );参考答案:PRIMARYKEY或 NOTNULLUNIQUE)CHECK购票金额0) FOREIGNKEY (身份证号)REFERENCE旅客(身份证号)FOREIGNKEY (航班编号)
12、REFERENCE班(航班编号)详细解答:在创建“购票”关系模式的 SQL语句时,由于属性“购票单号”为“购票” 关系模式的主键,即不能为空且唯一标识一条数据记录,因此空缺处需要填入PRIMARY KEY或 NOT NULL UNIQUE或 NOT NULL PRIMARY KEY)对该属性进 行主键约束。 结合题干给出的关键信息“购票金额大于零”可知,空缺处 应填入“ CHECK购票金额0) ”对属性“购票金额”进行约束。由于属性“身份证号”、 “航班编号”是“购票”关系模式的外键,因此空缺处需要使用FOREIGNKEY对这两个属性进行外键约束,即应填入“ FOREIGNKEY(身份证 号)
13、REFERENCE旅客 (身份证号)”、“ FOREIGN KEY航班编号)REFERENCEB班 ( 航班编号 ) ”。第 5 题:(1)身份证号为的客户购买了 2013年2月18日CA5302航 班的机票,购票单号由系统自动生成。下面的 SQL语句将上述购票信息加入系 统中,请将空缺部分补充完整。INSERT INTO 购票(购票单号 ,身份证号 ,航班编号 ,搭乘日期,购票金额 )SELECT201303105555, CA5302, 2013/2/18FROM航班,折扣,旅客WHEREAND亢班.航班编号=CA5302 ANDAND 2013/2/18 BETWEEN折扣.开始日期 A
14、ND折扣.结束日期AND 旅客. 身份证号 (2) 需要用触发器来实现 VIP 折扣的修改,调用函数 vip_value() 来实现。 请将如下SQL语句的空缺部分补充完整。CREATE TRIGGER VIP_TRG AFTER ON RE FERENCING new row AS nrowFOR EACH rowBEGINUPDATE旅客SET WHERE ;END参考答案:票价*折扣 *VIP 折扣航班. 航班编号 =折扣 . 航班编号INSERT购票 VIP折扣=vip_value(nrow.身份证号)旅客.身份证号=nrow.身份证号 详细解答:(1)基于题干给出的关键信息“旅客购买
15、机票的购票金额计算公式为: 票价x 折扣X VIP折扣”可知,(空缺处对应填入INSERTINTO语句中“购票金额”的计 算公式,即“票价*折扣*VIP折扣”。结合题干给出的“其中旅客的VIP折扣与该旅客已购买过的机票的购票金额总和相关, 在旅客每次购票后被修改” 等 关键信息可知,该SELEC查询语句中将涉及到“航班”、“折扣”两个关系模 式,因此空缺处应对这二者进行关联,即应填入“航班.航班编号=折扣.航班编号”。使用T-SQL语句来创建触发器的基本语句如下。createtrigger trigger_name on table_name | view_name for | After | Instead ofinsert , update, delete as sql_statement在“购票”关系模式中插入一条数据记录时, 触发器应能够自动执行, 因此需要创建基 于INSERT类型的触发器,即空缺处应依次填入“ INSERT、“购票”。根据题干给出的“ VIP折扣值的计算由函数float vip_value(char18 身份证号) 完成 ”等 关键 信息 可