logo资料库

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

第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
资料共19页,剩余部分请下载后查看
2009 上半年数据库系统工程师考试真题及答案-下午卷 试题一 【说明】 假设某大型商业企业由商品配送中心和连锁超市组成,其中商品配送中心包括采购、财 务、配送等部门。为实现高效管理,设计了商品配送中心信息管理系统,其主要功能描述如 下: 1.系统接收由连锁超市提出的供货请求,并将其记录到供货请求记录文件。 2.在接到供货请求后,从商品库存记录文件中进行商品库存信息査询。如果库存满足供 货请求,则给配送处理发送配送通知;否则,向采购部门发出缺货通知。 3.配送处理接到配送通知后,查询供货请求记录文件,更新商品库存记录文件,并向配 送部门发送配送单,在配送货品的同时记录配送信息至商品配送记录文件。 4.采购部门接到缺货通知后,与供货商洽谈,进行商品采购处理,合格商品入库,并记 录采购清单至采购清单记录文件、向配送处理发出配送通知,同时通知财务部门给供货商支 付货款。 该系统采用结构化方法进行开发,得到待修改的数据流图(如图 1-1 所示)。 【问题 1】 使用【说明】中的词语,给出图 1-1 中外部实体 E1 至 E4 的名称和数据存储 D1 至 D4 的名称。
E1:财务部门 E3:连锁超市 E2:采购部门 E4:配送部门 D1:采购清单记录文件 D2:商品库存记录文件 D3:商品配送记录文件 D4:供货请求记录文件 解析:本题考查 DFD 的分析与设计,问题一主要考査 DFD 中的外部实体和数据存储,由于在 题干中已经提到“系统接收由连锁超市提出的供货请求,并将其记录到供货请求记录文件”, 因此可以明确出“连锁超市”外部实体和“供货请求记录文件”数据存储;对应到 DFD 图中 为 E3 和 D4。描述中的第二项提出“从商品库存记录文件中进行商品库存信息查询。如果库 存满足供货请求,则给配送处发送配送通知;否则,向采购部门发出缺货通知”,因为配送 通知需要发送到采购部门,因此采购部门将成为系统的外部实体;同时,商品库存记录文件 能够提供库存信息,所以 DFD 图中 E2 和 D2 分别为采购部门和商品配送记录文件丨第三项需 求“配送处理接到配送通知后,查询供货请求记录文件,更新商品库存记录文件,并向配送 部门发送配送单,在配送货品的同时记录配送信息至商品配送记录文件”,所以配送处理需 要查询供货请求记录文件,更新商品库存记录文件与商品配送记录文件,因此 D3 为商品配 送记录文件:采购处理需要记录采购清单同时通知财务部门,所以 E1 应该为财务部门,D1 为采购清单记录文件,剩下的 E4 则为配送部门。 DFD 中出现的错误数据流为:E1 到 E2, E1 与 E2 的数据流不属于系统的范围;D3 到 E4,多余 的数据流;D2 到采购处理,数据流方向错误;D4 到供货请求处理,数据流方向错误。需要 补充的数据流为:E2 到采购处理,因为 E2 是采购部门,采购部门需要给采购处提供入库商 品信息;采购处到 D2 需要一条数据流,因为采购处理需要更改库存信息;供货请求处理到 D4 需要一条数据流,因为供货请求处理需要记录供货请求信息。 【问题 2】 图 1-1 中存在四处错误数据流,请指出各自的起点和终点:若将上述四条错误数据流删 除,为保证数据流图的正确性,应补充三条数据流,请给出所补充数据流的起点和终点。(起 点和终点请采用数据流图 1-1 中的符号或名称)
解析:本题考查 DFD 的分析与设计,问题一主要考査 DFD 中的外部实体和数据存储,由于在 题干中已经提到“系统接收由连锁超市提出的供货请求,并将其记录到供货请求记录文件”, 因此可以明确出“连锁超市”外部实体和“供货请求记录文件”数据存储;对应到 DFD 图中 为 E3 和 D4。描述中的第二项提出“从商品库存记录文件中进行商品库存信息查询。如果库 存满足供货请求,则给配送处发送配送通知;否则,向采购部门发出缺货通知”,因为配送 通知需要发送到采购部门,因此采购部门将成为系统的外部实体;同时,商品库存记录文件 能够提供库存信息,所以 DFD 图中 E2 和 D2 分别为采购部门和商品配送记录文件丨第三项需 求“配送处理接到配送通知后,查询供货请求记录文件,更新商品库存记录文件,并向配送 部门发送配送单,在配送货品的同时记录配送信息至商品配送记录文件”,所以配送处理需 要查询供货请求记录文件,更新商品库存记录文件与商品配送记录文件,因此 D3 为商品配 送记录文件:采购处理需要记录采购清单同时通知财务部门,所以 E1 应该为财务部门,D1 为采购清单记录文件,剩下的 E4 则为配送部门。 DFD 中出现的错误数据流为:E1 到 E2, E1 与 E2 的数据流不属于系统的范围;D3 到 E4,多余 的数据流;D2 到采购处理,数据流方向错误;D4 到供货请求处理,数据流方向错误。需要 补充的数据流为:E2 到采购处理,因为 E2 是采购部门,采购部门需要给采购处提供入库商
品信息;采购处到 D2 需要一条数据流,因为采购处理需要更改库存信息;供货请求处理到 D4 需要一条数据流,因为供货请求处理需要记录供货请求信息。
试题二 【说明】 某网上书店后台数据库的部分关系模式如下: 会员(会员编号,用户名,密码,姓名,地址,邮编,电话,消费额,积分) 图书(图书编号,类型名称,图书名称,作者,出版社,出版日期,ISBN,价格) 订单(订单编号,用户名,销售额,订购日期,出货曰期) 订单明细(订单明细编号,订单编号,图书编号,数量) 【问题 1】 下面是创建订单关系的 SQL 语句,订单编号唯一识别一个订单,用户名为订购图书的会 员用户名,且不能为空。要求订购日期不能大于出货日期。请将空缺部分补充完整。 (a) PRIMARY KEY 或 NOT NULL UNIQUE 或 UNIQUE NOT NULL (b) REFERENCES 会员(用户名)或 REFERENCES 会员 (c) CHECK (订购日期 <=出货日期或 CONSTRAINTchk_dateCHECK (订购日期<=出货日期) (注:chk_date 可为其他名称) 解析:本题考查关系模型的完整性约束。完整性约束包括三类:实体完整性、参照完整性和 用户定义的完整性。实体完整性约束规定关系的主属性不能取空值,关系模型中以主码作为 唯一性标示。(a)考核的是实体完整性,订单编号是订单关系的主键,用 PRIMARY KEY 关键 字,也可用 NOT NULL UNIQUE 或 UNIQUE NOT NULL 来保证一个订单标号唯一识别一个订单; 参照完整性约束规定若属性(或属性组)A 是关系 R 上的主码,B 是关系 S 上的外码,A 与 B 相对应(来自相同的域),则 B 取值为空或者来自于 R 上的某个 A 的值。(b)考查参照完整性, 用户名属性对应于会员关系的用户名属性,定义语法为 REFERENCES 会员(用户名),由于两 个关系中的属性名一致,因此也可以用 REFERENCES 会员定义;用户定义的完整性约束是针
对具体的数据库应用而定义的,它反映该应用所涉及的数据必须满足用户定义的语义要求。 (c)考查用户定义的完整性 约束,要求出货日期必须大于等于订购日期,因此答案为 CHECK (订购日期<=出货日期)或 CONSTRAINTchk_date CHECK(订购日期<=出货日期),此处, chk_date 可以为其他的约束名。 【问题 2】 请完成下列查询的 SQL 语句。 (1)查询名称中包含“数据库”的图书的图书名称,作者,出版社和出版日期。 (2)查询提供销售(图书表中有)但没有销售过(没在订单明细表中出现)的图书名称 和出版社。 (4)为了统计会员的购买行为信息,实施有意义的客户关怀策略,査询会员的平均订购 间隔时间,考虑多次购买图书和一次购买图书的情况(其中,DATEDIFF 函数表示两个日期 之间的天数)。
(1) (d)图书名称,作者,出版社,出版日期 (e) LIKE%数据库% (2)(f) * (g)图书.图书编号=订单明细.图书编号 (3)(h) SUM(数量) (i)订单.订单编号=订单明细.订单编号 (j)SUM(数量)>=ALL (4)(k) COUNT(*) > 1 (l)(COUNT(*)-l)或 COUNT(*)也给分 (m)GROUP BY 用户名 解析:本题考查查询语句 SELECT 的语法,查询是 SQL 的重要内容。 (1)考查基本的 SQL 查询语法,SELECT 后是要查询的属性,查询条件是包含“数据库”的图 书,因此用 LIKE 关键字。 (2)考查 NOT EXISTS 语法,(f)处填*。该查询为相关查询,因此(g)处的条件为图书.图书 编号=订单明细.图书编号。 (3)考査较复杂的嵌套査询、分组查询和 ALL 关键字。子查询得到所有会员的订购数,题目 要求查询订购数最多的会员名和订购数,因此(j)的答案为 SUM(数量)>=ALL。 (4)考查分组查询、聚集函数和 CASE 语法。平均订购间隔时间对一次购买和多次购买的会员 有不同的计算方式,对一次购买的会员,平均订购时间为当前时间-订购时间;而对于多次 购买的会员,平均订购时间为(最晚的订购时间-最早的订购时间)/间隔数,间隔数为订购 数-1。 【问题 3】 会员订购图书后,将本次订购的销售额累加到该会员的消费额中,并按照本次订单的销 售额计算积分累加到该会员的积分中(每 20 元增加 1 个积分,不足 20 元不计入积分)。下
面用触发器实现该需求,请填充空缺部分。 (n) INSERT ON 订单 (o)积分=积分+ INT( NROW.销售额/20) 解析:本题考查 SQL 的触发器机制。触发器是通过事件触发而执行的,事件指的是对某个关 系的插入、删除或更新。当触发器被事件激活时,并不是立即执行,而是检测触发器的条件, 若条件满足则执行触发器定义的动作。因此,创建一个触发器时,必须指定:触发器名称、 在其上定义触发器的关系(表)、触发器将何时激发、触发器执行时应作的动作。本题中触 发器定义的事件为会员订购图书,即插入一个订单记录,因此(n)的答案为 INSERT ON 订单。 执行的动作是累加会员的消费额,并按照规则把本次订单的销售额计算为积分,更新会员的 积分,因此(o)的答案为积分=积分+INT(NROW.销售额/20)。
分享到:
收藏