当前位置:首页计算机类软件水平考试中级数据库系统工程师->2009年上半年《数据库系统工程师》案例分析真题

2009年上半年《数据库系统工程师》案例分析真题

卷面总分:5分 答题时间:240分钟 试卷题量:5题 练习次数:87次
问答题 (共5题,共5分)
1.

M公司为某宾馆设计宾馆机票预订系统,初步的需求分析结果如下:

(1)客户可以在提前预订或直接入住时向宾馆提供相关信息, 宾馆登记的客户信息包括:客户编号,姓名,性别,类型,身份证号,联系方式,预订日期,入住时间和离开时间等信息。其中类型字段说明客户是普通客户或 VIP 客户,不同的客户类型享受订票的折扣额度不同。直接入住的客户其预订日期取空值。

(2)需要预订机票的客户应填写“机票预订”表,提供飞行日期、航班号、出发时间、目的地等信息。宾馆根据客户订票信息购票后,生成“客户订单”表,并根据客户类型确定相应的折扣额度。“机票预订”和“客户订单”表如表1-1、1-2所示。

中级数据库系统工程师,历年真题,2009年上半年《数据库系统工程师》案例分析真题

中级数据库系统工程师,历年真题,2009年上半年《数据库系统工程师》案例分析真题

【逻辑结构设计】

根据需求阶段收集的信息,设计的关系模式如图1-1所示。

中级数据库系统工程师,历年真题,2009年上半年《数据库系统工程师》案例分析真题

关系模式的主要属性、含义及约束如表1-3所示。

中级数据库系统工程师,历年真题,2009年上半年《数据库系统工程师》案例分析真题

【问题1】(6分)

对关系“客户”,请回答以下的问题:

(1)若选定(客户编号, 预订日期)作主码,未预订而直接入住的客户信息能否录入客户表?如不能,请说明原因。

(2)对“客户”关系增加一个流水号属性作为主码,“客户”关系属于第几范式?还存在哪些问题?

(3)将增加入住标识属性后的“客户”关系分解为第三范式,分解后的关系名依次取客户1、客户2、…。

【问题2】(6分)

对关系“航班”,请回答以下问题:

(1)列举出“航班”关系中所有不属于任何候选码的属性(非码属性)。

(2)该关系模式可达到第几范式?用不超过60个字的内容叙述理由。

【问题3】(3 分)

对于没有预订客房或入住宾馆的客户,需要在(a)关系中修改其(b)属性的值域,以满足这类客户在宾馆预订机票的需求。

标记 纠错
2.

某停车场有多个入口和出口,车辆进入时从入口处由系统查询可用的停车位,从出口驶出时系统将其刚使用的车位标记为空车位。

中级数据库系统工程师,历年真题,2009年上半年《数据库系统工程师》案例分析真题

根据上述描述,在入口处的伪代码程序为:

x = Get(  );

IF x =NULL THEN return 0;

Writ(x, 1);

【问题1】(3)

若两辆车在不同的入口处同时执行上述代码,会出现什么问题?(100字以内描述)

【问题2】(8分)

为保证入口处伪代码正确地并发执行,引入共享锁指令 SLock(T)和独占锁指令XLock(T)对表 T 进行加锁;Upgrade(T)对表 T 所加的共享锁升级为独占锁;解锁指令Unlock(T)对表T 进行解锁。

(1)请修改上述入口处的伪代码程序,使其满足2PL协议。

(2)满足2PL协议的入口处的伪代码程序,在并发执行时是否会产生死锁?若是,给出一个产生死锁的调度。

【问题3】(4分)

若停车位表的关系模式为:park(parkno, isused),其中parkno为停车位号,isused为停车位标志,0为空,1为非空。

下面是用E-SQL实现的查询空车位的函数Get(  ),请补全空缺处的代码。

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

EXEC SQL DECLARE getblk CURSOR FOR

(a) ;

EXEC SQL OPEN getblk ;

EXEC SQL FETCH getblk INTO :Hparkno; // Hparkno为已声明的主变量

IF SQLCA.sqlcode = 100 THEN

EXEC SQL CLOSE getblk ; Return NULL;

ELSE

(b) ;

END IF

标记 纠错
3.

某集团公司拥有多个大型连锁商场,公司需要构建一个数据库系统便于管理其业务运作活动。

【需求分析结果】

1. 商场需要记录的信息包括商场编号(商场编号不重复)、商场名称、地址和联系电话。某商场信息如表1-1所示。

中级数据库系统工程师,历年真题,2009年上半年《数据库系统工程师》案例分析真题

2. 每个商场包含不同的部门,部门需要记录的信息包括部门编号(不同商场的部门编号不同)、部门名称、位置分布和联系电话。某商场的部门信息如表1-2所示。

中级数据库系统工程师,历年真题,2009年上半年《数据库系统工程师》案例分析真题

3. 每个部门雇用了多名员工处理日常事务,每名员工只能属于一个部门(新进员工在培训期不隶属于任何部门)。员工需要记录的信息包括员工编号、姓名、岗位、电话号码和工资。员工信息如表1-3所示。

中级数据库系统工程师,历年真题,2009年上半年《数据库系统工程师》案例分析真题

4. 每个部门的员工中有一个是经理,每个经理只能管理一个部门。系统要记录每个经理的任职时间。

【概念模型设计】

根据需求阶段收集的信息,设计的实体联系图和关系模式(不完整)如下:

中级数据库系统工程师,历年真题,2009年上半年《数据库系统工程师》案例分析真题

【关系模式设计】

商场(商场编号,商场名称,地址,联系电话)

部门(部门编号,部门名称,位置分布,联系电话,(a) )

员工(员工编号,姓名,岗位,电话号码,工资,(b) )

经理( (c),任职时间)

【问题1】

根据问题描述,补充四个联系,完善图1-1的实体联系图。

【问题2】

根据实体联系图,将关系模式中的空(a)~(c)补充完整,并分别给出部门、员工和经理关系模式的主键和外键。

【问题3】

为了使商场有紧急事务时能联系到轮休的员工,要求每位员工必须且只能登记一位紧急联系人的姓名和联系电话(假设不同员工可以登记相同的紧急联系人)。中还需添加的实体是(d),该实体与图1-1中的员工关系存在(e)联系。给出该实体的关系模式。

标记 纠错
4.

假设某大型商业企业由商品配送中心和连锁超市组成,其中商品配送中心包括采购、财务、配送等部门。为实现高效管理,设计了商品配送中心信息管理系统,其主要功能描述如下:

1. 系统接收由连锁超市提出的供货请求,并将其记录到供货请求记录文件。

2. 在接到供货请求后,从商品库存记录文件中进行商品库存信息查询。如果库存满足供货请求,则给配送处理发送配送通知;否则,向采购部门发出缺货通知。

3. 配送处理接到配送通知后,查询供货请求记录文件,更新商品库存记录文件,并向配送部门发送配送单,在配送货品的同时记录配送信息至商品配送记录文件。

4. 采购部门接到缺货通知后,与供货商洽谈,进行商品采购处理,合格商品入库,并记录采购清单至采购清单记录文件、向配送处理发出配送通知,同时通知财务部门给供货商支付货款。

该系统采用结构化方法进行开发,得到待修改的数据流图(如图1-1所示)。

中级数据库系统工程师,历年真题,2009年上半年《数据库系统工程师》案例分析真题

【问题1】(8分)

使用【说明】中的词语,给出图 1-1 中外部实体 E1 至 E4 的名称和数据存储 D1 至D4的名称。

【问题2】(7分)

图 1-1 中存在四处错误数据流,请指出各自的起点和终点;若将上述四条错误数据流删除,为保证数据流图的正确性,应补充三条数据流,请给出所补充数据流的起点和终点。(起点和终点请采用数据流图1-1中的符号或名称)

中级数据库系统工程师,历年真题,2009年上半年《数据库系统工程师》案例分析真题

标记 纠错
5.

某网上书店后台数据库的部分关系模式如下:

会员(会员编号,用户名,密码,姓名,地址,邮编,电话,消费额,积分)

图书(图书编号,类型名称,图书名称,作者,出版社,出版日期,ISBN,价格)

订单(订单编号,用户名,销售额,订购日期,出货日期)

订单明细(订单明细编号,订单编号,图书编号,数量)

【问题1】(3分)

下面是创建订单关系的SQL语句,订单编号唯一识别一个订单,用户名为订购图书的会员用户名,且不能为空。要求订购日期不能大于出货日期。请将空缺部分补充完整。

CREATE TABLE 订单(

订单编号 CHAR(6) (a),

用户名 VARCHAR(40) NOT NULL (b)

销售额 FLOAT ,

订购日期 DATE NOT NULL ,

出货日期 DATE (c)) ;

【问题2】(10分)

请完成下列查询的SQL语句。

(1)查询名称中包含“数据库”的图书的图书名称,作者,出版社和出版日期。

SELECT (d)

FROM 图书

WHERE 图书名称(e) ;

(2)查询提供销售(图书表中有)但没有销售过(没在订单明细表中出现)的图书名称和出版社。

SELECT 图书名称, 出版社

FROM图书

WHERE NOT EXISTS (

SELECT (f)

FROM订单明细

WHERE (g) ) ;

(3)查询订购图书数量最多的会员名及其订购的数量。

SELECT 用户名, (h)

FROM订单, 订单明细

WHERE (i)

GROUP BY 用户名

HAVING (j)

( SELECT SUM(数量)

FROM 订单, 订单明细

WHERE 订单.订单编号 = 订单明细.订单编号

GROUP BY 用户名) ;

(4)为了统计会员的购买行为信息,实施有意义的客户关怀策略,查询会员的平均订购间隔时间,考虑多次购买图书和一次购买图书的情况(其中,DATEDIFF 函数表示两个日期之间的天数)。

SELECT 用户名, CASE WHEN(k)

THEN DATEDIFF(MAX(订购日期), MIN(订购日期)) / (l)

ELSE DATEDIFF (CURRENT_TIMESTAMP, MIN(订购日期))

END AS AVG_GAP

FROM 订单

(m) ;

【问题3】(2分)

会员订购图书后,将本次订购的销售额累加到该会员的消费额中,并按照本次订单的销售额计算积分累加到该会员的积分中(每20元增加1个积分,不足20元不计入积分)。下面用触发器实现该需求,请填充空缺部分。

CREATE TRIGGER 会员积分_TRIGGER AFTER (n)

REFERENCING NEW ROW AS NROW

BEGIN

UPDATE 会员

SET 消费额 = 消费额 + NROW.销售额, (o)

WHERE 用户名 = NROW.用户名

END

标记 纠错

答题卡(剩余 道题)

问答题
1 2 3 4 5
00:00:00
暂停
交卷