软考数据库系统工程师下午试题与答案Word格式.docx
《软考数据库系统工程师下午试题与答案Word格式.docx》由会员分享,可在线阅读,更多相关《软考数据库系统工程师下午试题与答案Word格式.docx(25页珍藏版)》请在冰豆网上搜索。
进行进一步精化,图2为图1中处理3的进一步细化的1层数据流图,图3为图2中3.1进一步细化的2层数据流图。
补全图2中加工P1、P2和P3的名称和图2与图3中缺少的数据流。
3、使用说明中的词语,给出图3中的数据存储D1~D4的名称。
1、E1:
志愿者E2:
捐赠人
E3:
募捐机构E4:
场馆
由题干中的关键信息"
管理志愿者提供的邀请响应、志愿者信息、工作时长、工作结果等"
结合如图1所示的0层数据流图中与实体E1相关的"
加入邀请/邀请跟进/工作任务"
这一条输入数据流,以及"
志愿者信息/工作时长/邀请响应/工作结果"
这一条输出数据流可知,实体E1的名称是"
志愿者"
根据题干中给出的"
向场馆发送场馆可用性请求,获得场馆可用性"
等关键信息,结合图1中输入至实体E4的数据流"
场馆可用性请求"
以及输出数据流"
场馆可用性"
等可知,实体E4的名称是"
场馆"
基于题干中给出的"
根据相应的活动信息举办活动,从募捐机构获取资金并向其发放赠品"
等关键信息,结合图1中输入至实体E3的数据流"
赠品"
资金"
等可知,实体E3的名称是"
募捐机构"
依据题干中给出的"
从捐赠人信息表中查询捐赠人信息,向捐赠人发送募捐请求"
等关键信息,结合图1中输入至实体E2的数据流"
募捐请求"
捐赠人信息"
等可知,实体E2的名称是"
捐赠人"
2、P1:
确定活动时间范围P2:
搜索场馆
P3:
推广募捐活动
数据流名称
起点
终点
所募集资金
3.5或举办活动并募集资金
2
活动请求
3.2或确定活动时间范围
捐赠请求
2<
可不填>
所募集捐赠<
或
所募集资金或所
募集物品
或募集
注:
数据流没有次序要求;
其中"
2"
处可以为"
确定募捐需求收集所募捐赠"
基于问题1的解析结果,结合如图2所示的1层数据流图中与加工P1相关的"
活动时间"
这一条输出数据流,查找到题干中与之相关的关键信息"
<
3>
组织募捐活动。
根据活动时间……"
可知,P1的名称是"
确定活动时间范围"
等关键信息,结合图2中加工P2的输入数据流"
和"
等可知,P2的名称是"
搜索场馆"
由题干中给出的关键信息"
然后根据活动时间和地点推广募捐活动,根据相应的活动信息举办活动……"
等,结合图2中加工P3的输入数据流"
活动时间和地点"
活动信息"
等可知,P3的名称是"
推广募捐活动"
结合题干中给出的关键信息"
根据活动请求,确定活动时间范围"
以及图1中处理2至处理3的数据流"
活动请求"
可知,图2中缺少了一条从处理2至处理3.2的数据流"
2>
确定募捐需求和收集所募捐赠<
……获取所募集的资金和物品"
、"
组织募捐活动……获取和处理捐赠,根据捐赠请求,提供所募集的捐赠"
等关键信息可知,图2中缺少了一条从处理3.5至处理2的数据流"
所募集资金"
基于题干中给出的关键信息"
组织募捐活动……根据捐赠请求进行募集"
以及图2中处理2至处理3.1的数据流"
捐赠请求"
可知,图3中缺少了一条从处理2至处理的数据流"
根据图2中处理3.1至处理2的数据流"
所募集物品"
以及"
可知,图3中缺少了一条从处理至处理2的数据流"
所募集捐赠"
3、D1:
捐赠人信息表D2:
已联系的捐赠人表D3:
捐赠表D4:
已处理捐赠表
录入捐赠人信息,处理后存入捐赠人信息表"
以及图3中处理的名称"
录入捐赠人信息"
可知,图3中数据存储D1的名称是"
捐赠人信息表"
同理,根据题干中给出的关键信息"
……向捐赠人发送募捐请求,并将已联系的捐赠人存入已联系的捐赠人表"
请求募捐"
及其输出数据流"
已联系的捐赠人"
等可知,数据存储D2的名称是"
已联系的捐赠人表"
……根据捐赠请求进行募集,募得捐赠后,将捐赠记录存入捐赠表"
募集"
捐赠记录"
等可知,数据存储D3的名称是"
捐赠表"
依据题干中给出的关键信息"
……对捐赠记录进行处理后,存入已处理捐赠表……"
已处理的捐赠记录"
等可知,数据存储D4的名称是"
已处理捐赠表"
试题二
阅读以下说明,根据要求回答下列问题。
某航空公司要开发一个订票信息处理系统,该系统的部分关系模式如下:
航班<
航班编号,航空公司,起飞地,起飞时间,目的地,到达时间,票价>
折扣<
航班编号,开始日期,结束日期,折扣>
旅客<
身份证号,姓名,性别,出生日期,,VIP折扣>
购票<
购票单号,身份证号,航班编号,搭乘日期,购票金额>
有关关系模式的属性及相关说明如下:
4航班表中的起飞时间和到达时间不包含日期,同一航班不会在一天出现两次及两次以上;
5各航空公司会根据旅客出行淡旺季适时调整机票的折扣,旅客购买机票的购票金额计算公式为:
票价×
折扣×
VIP折扣,其中旅客的VIP折扣与该旅客已购买过的机票的购票金额总和相关,在旅客每次购票后被修改。
VIP折扣值的计算由函数floatvip_value<
char[18]身份证号>
完成。
根据以上描述,回答下列问题。
4、请将如下创建购票关系的SQL语句的空缺部分补充完整,要求指定关系的主键、外键,以及购票金额大于零的约束。
CREATETABLE购票<
购票单号CHAR<
15>
______,
身份证号CHAR<
18>
航班编号CHAR<
6>
搭乘日期DATE,
购票金额FLOAT______,
______,
>
;
5、<
1>
身份证号为的客户购买了20XX2月18日CA5302航班的机票,购票单号由系统自动生成。
下面的SQL语句将上述购票信息加入系统中,请将空缺部分补充完整。
INSERTINTO购票<
______
FROM航班,折扣,旅客
WHERE______AND航班.航班编号='
CA5302'
AND
AND'
2013/2/18'
BETWEEN折扣.开始日期AND折扣.结束日期
AND旅客.身份证号
需要用触发器来实现VIP折扣的修改,调用函数vip_value<
来实现。
请将如下SQL语句的空缺部分补充完整。
CREATETRIGGERVIP_TRGAFTER______ON______
REFERENCINGnewrowASnrow
FOREACHrow
BEGIN
UPDATE旅客
SET______
WHERE______;
END
6、请将如下SQL语句的空缺部分补充完整。
查询搭乘日期在20XX1月1日至20XX12月31日之间,且合计购票金额大于等于10000元的所有旅客的身份证号、姓名和购票金额总和,并按购票金额总和降序输出。
SELECT旅客.身份证号,姓名,SUM<
购票金额>
FROM旅客,购票
WHERE______
GROUPBY______;
ORDERBY______;
经过中转的航班与相同始发地和目的地的直达航班相比,会享受更低的折扣。
查询从XX到北京,经过一次中转的所有航班对,输出XX到中转地的航班编号、中转地、中转地到北京的航班编号。
SELECT______
FROM航班航班1,航班航班2
4、PRIMARYKEY<
或NOTNULLUNIQUE>
CHECK<
购票金额>0>
FOREIGNKEY<
身份证号>
REFERENCES旅客<
航班编号>
REFERENCES航班<
在创建"
购票"
关系模式的SQL语句时,由于属性"
购票单号"
为"
关系模式的主键,即不能为空且唯一标识一条数据记录,因此空缺处需要填入"
PRIMARYKEY<
或NOTNULLUNIQUE,或NOTNULLPRIMARYKEY>
"
对该属性进行主键约束。
结合题干给出的关键信息"
购票金额大于零"
可知,空缺处应填入"
对属性"
购票金额"
进行约束。
由于属性"
身份证号"
航班编号"
是"
关系模式的外键,因此空缺处需要使用FOREIGNKEY对这两个属性进行外键约束,即应填入"
FOREIGNKEY<
REFERENCES旅客<
REFERENCES航班<
5、票价*折扣*VIP折扣
航班.航班编号=折扣.航班编号
INSERT
购票
VIP折扣=vip_value<
nrow.身份证号>
旅客.身份证号=nrow.身份证号
基于题干给出的关键信息"
旅客购买机票的购票金额计算公式为:
VIP折扣"
可知,<
空缺处对应填入INSERTINTO语句中"
的计算公式,即"
票价*折扣*VIP折扣"
结合题干给出的"
其中旅客的VIP折扣与该旅客已购买过的机票的购票金额总和相关,在旅客每次购票后被修改"
等关键信息可知,该SELECT查询语句中将涉及到"
航班"
折扣"
两个关系模式,因此空缺处应对这二者进行关联,即应填入"
航班.航班编号=折扣.航班编号"
使用T-SQL语句来创建触发器的基本语句如下。
createtriggertrigger_nameon{table_name|view_name}{for|After|Insteadof}
[insert,update,delete]assql_statement
在"
关系模式中插入一条数据记录时,触发器应能够自动执行,