logo资料库

2013上半年数据库系统工程师考试真题及答案-下午卷.doc

第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
资料共20页,剩余部分请下载后查看
END
【需求分析】
【概念模型设计】
(2)客户输入预订的起始日期和结束日期、房间类别和数量,并提交;
2013 上半年数据库系统工程师考试真题及答案-下午卷 试题一 某慈善机构欲开发一个募捐系统,以跟踪记录为事业或项目向目标群体进行募捐而组织 的集体性活动。该系统的主要功能如下所述。 (1)管理志愿者。根据募捐任务给志愿者发送加入邀请、邀请跟进、工作任务;管理志 愿者提供的邀请响应、志愿者信息、工作时长、工作结果等。 (2)确定募捐需求和收集所募捐赠(资金及物品)。根据需求提出募捐任务、活动请求和 捐赠请求,获取所募集的资金和物品。 (3)组织募捐活动。根据活动请求,确定活动时间范围。根据活动时间,搜索场馆,即: 向场馆发送场馆可用性请求,获得场馆可用性。然后根据活动时间和地点推广募捐活动,根 据相应的活动信息举办活动,从募款机构获取资金并向其发放赠品。获取和处理捐赠,根据 捐赠请求,提供所募集的捐赠;处理与捐赠人之间的交互,即: 录入捐赠人信息,处理后存入捐赠人信息表;从捐赠人信息表中查询捐赠人信息,向捐 赠人发送募捐请求,并将已联系的捐赠人存入已联系的捐赠人表。根据捐赠请求进行募集, 募得捐赠后,将捐赠记录存入捐赠表;对捐赠记录进行处理后,存入已处理捐赠表,向捐赠 人发送致谢函。根据己联系的捐赠人和捐赠记录进行跟进,将捐赠跟进情况发送给捐赠人。 现采用结构化方法对募捐系统进行分析与设计,获得如图 1-1、1-2 和 1-3 所示分层数据流 图。
【问题 1】 使用说明中的词语,给出图 1-1 中的实体 E1〜E4 的名称。 E1:志愿者 E2:捐赠人 E3:募款机构 E4:场馆 本题采用结构化方法进行系统分析与设计,主要考查数据流图(DFD)的应用,是比较传统
的题目,要求考生细心分析题目中所描述的内容。 DFD 是一种便于用户理解、分析系统数据流程的图形化建模工具,是系统逻辑模型的重要组 成部分。顶层 DFD—般用来确定系统边界,将待开发系统看作一个大的加工(处理),然后 根据系统从哪些外部实体接收数据流,以及系统将数据流发送到哪些外部实体,建模出的顶 层图中只有唯一的一个加工和一些外部实体,以及这两者之间的输入输出数据流。0 层 DFD 在顶层确定的系统外部实体以及与外部实体的输入输出数据流的基础上,将顶层 DFD 中的加 工分解成多个加工,识别这些加工的输入输出数据流,使得所有顶层 DFD 中的输入数据流, 经过这些加工之后变换成顶层 DFD 的输出数据流。根据 0 层 DFD 中的加工的复杂程度进一步 建模加工的内容。. 在建分层 DFD 时,根据需求情况可以将数据存储建模在不同层次的 DFD 中,注意在绘制下层 数据流图时要保持父图与子图平衡。父图中某加工的输入输出数据流必须与它的子图的输入 输出数据流在数量和名称上相同,或者父图中的一个输入(或输出)数据流对应于子图中几 个输入(或输出)数据流,而子图中组成这些数据流的数据项全体正好是父图中的这一个数 据流。 【问题 1】 本问题给出 0 层 DFD,要求根据描述确定图中的外部实体。分析题目中描述,并结合已在图 中给出的数据流进行分析。从题目的说明中可以看出,与系统交互实体包括志愿者、捐赠人、 募款机构和场馆,这四个作为外部实体。 对应图 1-1 中数据流和实体的对应关系,可知 E1 为志愿者,E2 为捐赠人,E3 为募款机构, E4 为场馆。 【问题 2】 在建模 DFD 时,需要对有些复杂加工(处理)进行进一步精化,图 1-2 为图 1-1 中处理 3 的进一步细化的 1 层数据流图,图 1-3 为图 1-2 中 3.1 进一步细化的 2 层数据流图。补全 图 1-2 中加工 Pl、P2 和 P3 的名称和图 1-2 与图 1-3 中缺少的数据流。 P1:确定活动时间范围 P2:搜索场馆 P3:推广募捐活动
本题考查分层 DFD 的加工分解,以及父图与子图的平衡。图 1-2 中对图 1-1 的加工 3 进行进 一步分解,根据说明(3)中对加工 3 的描述对图 1-2 进行分析。首先需要确定活动时间范 围,其输入数据流是活动请求,输出流为活动时间。然后是搜索场馆,其输入流为活动时间, 输出活动时间和地点,同时向场馆发送的场馆可用性请求和获得的场馆可用性分别作为输入 和输出数据流。在确定活动时间和地点的基础上推广募捐活动,活动时间和地点是其输入流, 活动信息作为其输出流,流向举办活动并募集资金,从募款机构获取资金并向其发放赠品, 加工 2 收集募得的资金和物品,因此 3.5 还需要将所募集资金作为输出流。获取和处理捐赠 (资金和物品)时以捐赠请求作为其输入流,输出流为所募集的捐赠,因为既有资金又有物 品,而从募款机构募得的只有资金,将图 1-1 中加工 3 流向加工 2 的数据流,分为所募集资 金和所募集物品,而 3.5 的输出流中只有所募集资金。 因此,P1 为确定活动时间范围,P2 为搜索场馆,P3 为推广募捐活动。图 1-2 中缺失了从 2 到 3.3 的活动时间和从 3.5 到 2 的所募集资金这两条數据流。 题目给出处理和捐赠人之间的交互进一步描述,对 3.1 进一步建模下层数据流图(图 1-3)。 分解加工 3.1,确定相关数据流。其中根据加工 2 的捐赠请求进行募集,所募捐赠需要返回 给加工 2。 根据父图与子图的平衡原则,图 1-3 中此处也缺失了捐赠请求和所募集资金和所募集物品。 【问题 3】 使用说明中的词语,给出图 1-3 中的数据存储 D1〜D4 的名称。 D1:捐赠人信息表 D2:已联系的捐赠人表 D3:捐赠表 D4:已处理捐赠表
本问题考查 2 层 DFD 中数据存储的确定。本案例中,数据存储的描述都是在这一部分描述给 出,所以数据存储建模在此层体现。对应说明可知,D1 为捐赠人信息表,D2 为以联系的捐 赠人表,D3 为捐赠表,D4 为已处理捐赠表。
试题二 某航空公司要开发一个订票信息处理系统,该系统的部分关系模式如下:航班(航班编 号,航空公司,起飞地,起飞时间,目的地,到达时间,票价)折扣(航班编号,开始日期, 结束日期,折扣) 旅客(身份证号,姓名,性别,出生日期,电话,VIP 折扣) 购票(购票单号,身份证号,航班编号,搭乘日期,购票金额) 有关关系模式的属性及相关说明如下: (1)航班表中的起飞时间和到达时间不包含日期,同一航班不会在一天出现两次及两次以上; (2)各航空公司会根据旅客出行淡旺季适时调整机票的折扣,旅客购买机票的购票金额计算 公式为:票价 X 折扣 XVIP 折扣,其中旅客的 VIP 折扣与该旅客已购买过的机票的购票金额 总和相关,在旅客每次购票后被修改。VIP 折扣值的计算由函数 float_vip value(char[18] 身份证号)完成。 根据以上描述,回答下列问题。 【问题 1】 请将如下创建购票关系的 SQL 语句的空缺部分补充完整,要求指定关系的主键、外键, 以及购票金额大于零的约束。 (a)PRIMARYKEY(或 NOTNULLUNIQUE) (b)CHECK(购票金额>0) (c)FOREIGNKEY(身份证号)REFERENCES 旅客(身份证号) (d)FOREIGNKEY(航班编号)REFERENCES 航班(航班编号)
本问题考查 SQL 中的数据定义语言 DDL 和完整性约束。根据题意,已经用 CREATE 语句来定 义购票关系模式的基本结构,需要补充主键、外键和相应的约束。指定主键的方式有两 种:PRIMARYKEY 作为列级约束(仅适应于主键为单属性时);PRIMARYKEY(〈主键>)作为表 级约束。指定外键的语法为:FOREIGNKEY(<外键>),REFERENCES〈被参照关系>(主键)。 CHECK 约束的语法为:CHECK(<谓词>)。 购票关系中,主键为购票单号,身份证号和航班编号为外键,分别参照旅客关系中的身份证 号和航班关系中的航班编号。 【问题 2】 (1)身份证号为 210000196006189999 的客户购买了 2013 年 2 月 18 日 CA5302 航班的机票, 购票单号由系统自动生成。下面的 SQL 语句将上述购票信息加入系统中,请将空缺部分补充 完整。 INSERT INTO 购票(购票单号,身份证号,航班编号,搭乘日期,购票金额) SELECT ‘201303105555’,‘210000196006189999’,‘CA5302’,‘2013/2/18’, FROM 航班,折扣,旅客 WHERE (f) AND 航班.航班编号=‘CA5302’AND AND‘2013/2/18’BETWEEN 折扣.开始日期 AND 折扣.结束日期 AND 旅客.身份证号=‘210000196006189999’; (2)需要用触发器来实现 VIP 折扣的修改,调用函数 vip_value()来实现。请将如下 SQL 语句的空缺部分补充完整。 CREA TETRIGGERVIP _TRG AFTER (g) ON (h) REFERENCING new row ASnrow FOR EACH row BEGIN UPDATE 旅客 SET (i) WHERE Q) ; END
(1)(e)票价*折扣*VIP 折扣 (f)航班.航班编号=折扣.航班编号 (2)(g)INSERT (h)购票 (i)VIP 折扣=vip_value(nrow•身份证号) (j)旅客.身份证号=nrow.身份证号 (1)本问题考查 INSERT 语句的使用。可以将查询结果集插入到基本表中,本题要求完成的 包括购票金额的计算表达式和子查询中的条件部分。 ( 2 ) 本 问 题 考 查 触 发 器 的 定 义 。 需 补 充 的 部 分 涉 及 到 触 发 器 所 在 的 表 、 触 发 动 作 (INSERT/UPDATE/DELETE)及执行代码部分。触发器应由购票表中的 INSERT 指令所触发, 执行代码中要修改的是旅客表中的 VIP 折扣值,应根据购票表中的新记录,找出对应的旅客 表的记录(身份证号相等)进行修改 【问题 3】 请将如下 SQL 语句的空缺部分补充完整。 (1)查询搭乘日期在 2012 年 1 月 1 日至 2012 年 12 月 31 日之间,且合计购票金额大于等于 10000 元的所有旅客的身份证号、姓名和购票金额总和,并按购票金额总和降序输出。 SELECT 旅客.身份证号,姓名,SUM(购票金额) FROM 旅客,购票 WHERE (k) GROUPBY O) ORDERBY (m) ; (2)经过中转的航班与相同始发地和目的地的直达航班相比,会享受更低的折扣。查询从广 州到北京,经过一次中转的所有航班对,输出广州到中转地的航班编号、中转地和中转地到 北京的航班编号。 SELECT (n) FROM 航班航班 1,航班航班 2 WHERE (o) ; (1)(k)旅客.身份证号=购票.身份证号 AND
分享到:
收藏