[计算机类试卷]2016年上半年软件水平考试(中级)数据库系统工程师下午(应用技术)真题试卷及答案与解析.doc

上传人:Iclinic170 文档编号:493294 上传时间:2018-11-30 格式:DOC 页数:21 大小:303.50KB
下载 相关 举报
[计算机类试卷]2016年上半年软件水平考试(中级)数据库系统工程师下午(应用技术)真题试卷及答案与解析.doc_第1页
第1页 / 共21页
[计算机类试卷]2016年上半年软件水平考试(中级)数据库系统工程师下午(应用技术)真题试卷及答案与解析.doc_第2页
第2页 / 共21页
[计算机类试卷]2016年上半年软件水平考试(中级)数据库系统工程师下午(应用技术)真题试卷及答案与解析.doc_第3页
第3页 / 共21页
[计算机类试卷]2016年上半年软件水平考试(中级)数据库系统工程师下午(应用技术)真题试卷及答案与解析.doc_第4页
第4页 / 共21页
[计算机类试卷]2016年上半年软件水平考试(中级)数据库系统工程师下午(应用技术)真题试卷及答案与解析.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、2016年上半年软件水平考试(中级)数据库系统工程师下午(应用技术)真题试卷及答案与解析 一、试题一( 15分) 0 阅读下列说明和图,回答问题 1至问题 4,将解答填入答题纸的对应栏内。【说明】 某会议中心提供举办会议的场地设施和各种设备,供公司与各类组织机构租用。场地包括一个大型报告厅、一个小型报告厅以及诸多会议室。这些报告厅和会议室可提供的设备有投影仪、白板、视频播放回放设备、计算机等。为了加强管理,该中心欲开发一会议预订系统,系统的主要功能如下。 (1)检查可用性。客户提交预订请求后,检查预订表,判 定所申请的场地是否在申请日期内可用;如果不可用,返回不可用信息。 (2)临时预订。会议

2、中心管理员收到客户预定请求的通知之后,提交确认。系统生成新临时预订存入预订表,并对新客户创建一条客户信息记录加以保存。根据客户记录给客户发送临时预订确认信息和支付定金要求。 (3)分配设施与设备。根据临时预订或变更预定的设备和设施需求,分配所需设备 (均能满足用户要求 )和设施,更新相应的表和预订表。 (4)确认预订。管理员收到客户支付定金的通知后,检查确认,更新预订表,根据客户记录给客户发送预订确认信息。 (5)变更预订。客 户还可以在支付余款前提交变更预订请求,对变更的预订请求检查可用性,如果可用,分配设施和设备;如果不可用,返回不可用信息。管理员确认变更后,根据客户记录给客户发送确认信息

3、。 (6)要求付款。管理员从预订表中查询距预订的会议时间两周内的预定,根据客户记录给满足条件的客户发送支付余款要求。 (7)支付余款。管理员收到客户余款支付的通知后,检查确认,更新预订表中的已支付余款信息。 现采用结构化方法对会议预定系统进行分析与设计,获得如图 1-1所示的上下文数据流图和图 1-2所示的 0层数据流图 (不完整 )。1 使用 说明中的词语,给出图 1-1中的实体 E1 E2的名称。 2 使用说明中的词语,给出图 1-2中的数据存储 D1 D4的名称。 3 根据说明和图中术语,补充图 1 2中缺失的数据流及其起点和终点。 4 如果发送给客户的确认信息是通过 Email系统向客

4、户信息中的电子邮件地址进行发送的,那么需要对图 1-1和 1-2进行哪些修改 ?用 150字以内文字加以说明。 二、试题二( 15分) 4 阅读下列说明,回答问题 1至问题 3,将解答填入答题纸的对应栏内。 【说明】 某单位公用车辆后勤服务部门数据库的部分关系 模式如下: 驾驶员: EMP(Eno, Ename, Age, Sex, telephone),各属性分别表示驾驶员工号、姓名、年龄、性别和电话号码; 车辆: CAR(Cno, Brand, Capacity),各属性分别表示汽车车牌号、品牌名和排量; 调度: SCHEDULE(Sno, Eno, Cno, StartTime, End

5、Time),各属性分别表示调度号、驾驶员工号、汽车车牌号、发车时间和收车时间。 奖金: BONUS(Eno, Year, Month, Amount),各属性分别表示驾驶员工号 、年、月和当月的奖金数量。 有关车辆调度的相关说明如下: 公车的行驶时间只能在工作时间内,因此规定调度表中每天安排发车的时间在上午 07: 00: 00至下午 18: 00: 00范围内。 5 请将下面创建调度关系的 SQL语句的空缺部分补充完整,要求指定关系的主码、外码,以及调度表中每天安排发车的时间在上午 07: 00: 00至下午 18: 00:00范围内的约束 (由函数 Time Get_time(DATETI

6、ME StartTime)返回出车的时间 )。 CREATE TABLE SCHEDULE( Sno CHAR(10), Eno CHAR(10) _(a)_, Cno CHAR(8) _(b)_, StartTime DATETIME _(c)_, EndTime DATET IME, PRIMARY KEY_(d)_); 6 (1)创建所有 奥迪 品牌汽车的调度信息的视图 AudiSCHEDULE,属性有 Eno、Ename、 Cno、 Brand、 StartTime和 EndTime,请将 下面 SQL语句的空缺部分补充完整。 CREATE _(e) AS SELECT EMP, En

7、o, Ename, CAR Cno, Brand, StartTime, EndTime FROM EMP, CAR, SCHEDULE WHERE _(f); (2)驾驶员的奖金在收车时间写入时,由出车时间段自动计算,并用触发器来实现奖金的自动维护,函数 float Bonus_value(DATETIME StartTime, DATETIME EndTime)依 据发车时间和收车时间来计算本次出车的奖金。系统在每月初自动增加一条该员工的当月奖金记录,初始金额为零。请将下面 SQL语句的空缺部分补充完整。 CREATE_(g)_Bonus_TRG AFTER_(h)_ON SCHEDULE

8、 REFERENCING new row AS nrow FOR EACH ROW BEGIN UPDATE BONUS SET_(i)_ WHERE_(j)_AND Year=Get_Year(nrow.StartTime) AND Month=Get_Month(nrow StartTime); END 7 请将下面 SQL语句的空缺部分补充完整。 (1)查询调度次数最多的汽车车牌号及其品牌。 SELECT CAR Cno, Brand FROM CAR, SCHEDULE WHERE CAR Cno=SCHEDULE Cno GROUP BY_(k)_ HAVING_(1)_(SELEC

9、T COUNT(*) FROM SCHEDULE GROUP BY Cno ); (2)查询所有在调度表中没有安排过 大金龙 品牌车辆的驾驶员工号和姓名。 SELECT Eno, Ename FROM EMP WHERE Eno _(m)_( SELECT Eno FROM _(n)_ WHERE _(o)_ AND Brand=大金龙 ); 三、试题三 ( 15分) 7 阅读下列说明,回答问题 1至问题 3,将解答填入答题纸的对应栏内。【说明】 某销售公司当前的销售业务为商城实体店销售。现该公司拟开展网络销售业务,需要开发一个信息化管理系统。请根据公司现有业务及需求完成该系统的数据库设计。【

10、需求描述】 (1)记录公司所有员工的信息。员工信息包括工号、身份证号、姓名、性别、出生日期和电话,并只登记一部电话。 (2)记录所有商品的信息。商品信息包括商品名称、生产厂家、销售价格和商品介绍。系统内部用商品条码唯一区别每种商品。一种商品只能放在一个仓库中。 (3)记录所 有顾客的信息。顾客信息包括顾客姓名、身份证号、登录名、登录密码和电话号码。一位顾客只能提供一个电话号码。系统自动生成唯一的顾客编号。 (4)顾客登录系统之后,可以在网上商城购买商品。顾客可将选购的商品置入虚拟的购物车内,购物车可长期存放顾客选购的所有商品。顾客可在购物车内选择商品、修改商品数量后生成网购订单。订单生成后,由

11、顾客选择系统提供的备选第三方支付平台进行电子支付,支付成功后系统需要记录唯一的支付凭证编号,然后由商城根据订单进行线下配送。 (5)所有的配送商品均由仓库统一出库。为方便顾客,允许每位顾客 在系统中提供多组收货地址、收货人及联系电话。一份订单所含的多个商品可能由多名分拣员根据商品的所在仓库信息从仓库中进行分拣操作,分拣后的商品交由配送员根据配送单上的收货地址进行配送。 (6)新设计的系统要求记录实体店的每笔销售信息,包括营业员、顾客、所售商品及其数量。【概念模型设计】 根据需求阶段收集的信息,设计的实体联系图 (不完整 )如图 3-1所示。【逻辑结构设计】 根据概念模型设计阶段完成的实体联系图

12、,得出如下关系模式 (不完整 ): 员工 (工号,身份证号,姓名,性别,出生日期,电话 ) 商品 (条码,商品名称, 生产厂家,销售价格,商品介绍, _(a)_) 顾客 (编号,姓名,身份证号,登录名,登录密码,电话 ) 收货地点 (收获 ID,顾客编号,收货地址,收货人,联系电话 ) 购物车 (顾客编号,商品条码,商品数量 ) 订单 (单 ID,顾客编号,商量条码,商品数量, _(b)_) 分检 (分拣 ID,分拣员工号, _(c)_,分拣时间 ) 配送 (配送 ID,分拣 ID,配送员工号,收货 ID,配送时间,签收时间,签收快照 ) 销售 (销售 ID,营业员编号,顾客编号,商品条码,商

13、品数量 ) 8 补 充图 3-1中的 “配送 ”联系所关联的对象及联系类型。 9 补充逻辑设计结果中的 (a)、 (b)、 (c)三处空缺。 10 对于实体店销售,如要增加送货上门服务,由营业员在系统中下订单,与网购的订单进行后续的统一管理。请根据此需求,对图 3-1进行补充,并修改订单关系模式。 四、试题四( 15分) 10 阅读下列说明,回答问题 1至问题 3,将解答填入答题纸的对应栏内。 【说明】 某小区由于建设时间久远,停车位数量无法满足所有业主的需要,为公平起见,每年进行一次抽签来决定车位分配。小区物业拟建立一个信 息系统,对停车位的使用和收费进行管理。 【需求描述】 (1)小区内每

14、套房屋可能有多名业主,一名业主也可能在小区内有多套房屋。业主信息包括业主姓名、身份证号、房号、房屋面积,其中房号不重复。 (2)所有车位都有固定的编号,且同一年度所有车位的出租费用相同,但不同年份的出租费用可能不同。 (3)所有车位都参与每年的抽签分配。每套房屋每年只能有一次抽签机会。抽中车位的业主需一次性缴纳全年的车位使用费用,且必须指定唯一的汽车使用该车位。 (4)小区车辆出入口设有车牌识别系统,可以实时 识别进出的汽车车牌号。为方便门卫确认,系统还需登记汽车的品牌和颜色。 【逻辑结构设计】 根据上述需求,设计出如下关系模式: 业主 (业主姓名,业主身份证号,房号,房屋面积 ) 车位 (车

15、位编号,房号,车牌号,汽车品牌,汽车颜色,使用年份,费用 ) 11 对关系 “业主 ”,请回答以下问题: (1)给出 “业主 ”关系的候选键。 (2)它是否为 2NF,用 60字以内文字简要叙述理由。 (3)将其分解为 BCNF,分解后的关系名依次为: A1, A2, ,并用下画线标示分解后的各关系 模式的主键。 12 对关系 “车位 ”,请回答以下问题: (1)给出 “车位 ”关系的候选键。 (2)它是否为 3NF,用 60字以内文字简要叙述理由。 (3)将其分解为 BCNF,分解后的关系名依次为: B1, B2, ,并用下划线标示分解后的各关系模式的主键。 13 若临时车辆进入小区,按照进

16、入和离开小区的时间进行收费 (每小时 2元 )。试增加 “临时停车 ”关系模式,用 100字以内文字简要叙述解决方案。 五、试题五( 15分) 13 阅读下列说明,回答问题 1和问题 2,将解答填入答题纸的对应栏 内。 【说明】 某图书馆的图书借还业务使用如下关系模式: 书目 (ISBN,书名,出版社,在库数量 ) 图书 (书号, ISBN,当前位置 ) 其中在库数量为当前书目可借出的图书的数量,每本图书入库后都会有当前位置,借出后当前位置字段改为空值。每一条书目信息对应多本相同的图书,每一本图书只能对应一条书目。 借还书业务的基本流程如下描述: (1)读者根据书名查询书目,当前书目的在库数量

17、大于 0时可借阅。 (2)读者借出一本图书时,进行出库操作:根据该图书的书号将该图 书的当前位置字段值改为空值,并根据其 ISBN号将对应书目的在库数量减 1。 (3)读者归还一本图书时,进行入库操作:系统根据当前书架的空余位置自动生成该本书的存放位置,并根据该图书的书号将其当前位置字段值改为生成的存放位置,然后将对应书目的在库数量加 1。 (4)借还书时,逐一扫描每本图书的书号并进行出、入库操作。 14 引入两个伪指令: a=R(X)表示将在库数量 X值读入到变量 a中; W(a, X)表示将变量 a的值写入到在库数量 X中。入库操作用下标 I表示,出库操作用下标 O表示。 将出库和入库操作

18、分 别定义为两个事务,针对并发序列: aO=RO(X),aI=RI(x), aO=aO-1, WO(aO, X), aI=aI+1, WI(aI, X)。其中变量 aI和 aO分别代表入库事务和出库事务中的局部变量。 (1)假设当前 X的值为 3,则执行完上述并发序列的伪指令后, X的值是多少 ?简述产生这一错误的原因 (100字以内 )。 (2)为了解决上述问题,引入独占锁指令 XLock(X)对数据 X进行加锁,解锁指令 Unlock(X)对数据 X进行解锁。入库操作用下标 I表示,如 XLocki(x);出库操作用下标 O表示,如 Unlocko(X)。请根据上述的并发序列,给出一种可能

19、的执行序列,使其满足 2PL协议。 15 下面是用 SQL实现的出入库业务程序的一部分,请补全空缺处的代码。 CREATE PROCEDURE IOstack(IN BookNo VARCHAR(20), IN Amount INT) 输入合法性验证 if not (Amount=1 or Amount=-1) return-1; 修改图书表当前位置 UPDATE图书 SET当前位置 =GetPos(BookN, Amount)系统生成 WHERE _(a)_; if error then ROLLBACK; return -2; 修改在库数量 UPDATE 书目 SET 在库数量 =_(b)

20、_ WHERE EXISTS ( SELECT * FROM 图书 WHERE 书号 =BookNo AND _(c)_ ); if error then ( ROLLBACK; return-3; _(d)_; return 0; 2016年上半年软件水平考试(中级)数据库系统工程师下午(应用技术)真题试卷答案与解析 一、试题一( 15分) 1 【正确答案】 E1:客户 E2:管理员 【试题解析】 本题考查采用结构化方法进行系统分析与设计,主要考查数据流图(DFD)的应用,是比较传统的题目,考点与往年类似,要求考生细心分析题目中所描述的内容。 面向数据流建模是目前仍然被广泛使用的结构化分析与

21、设计的方法之一 ,而DFD是面向数据流建模的重要工具,是一种便于用户理解、分析系统数据流程的图形化建模工具,是系统逻辑模型的重要组成部分。 DFD将系统建模成 “输入 加工 (处理 )一一输出 ”的模型,即流入软件的数据对象、经由加工的转换、最后以结果数据对象的形式流出软件,并采用分层的方式加以表示。 上下文 DFD(顶层 DFD)通常用来确定系统边界,将待开发系统看作一个大的加工 (处理 ),然后根据系统从哪些外部实体接收数据流,以及系统将数据流发送到哪些外部实体,建模出的上下文图中只有唯一的一个加工和一些外部实体,以及这两者之 间的输入输出数据流。 0层 DFD在上下文确定的系统外部实体以

22、及与外部实体的输入输出数据流的基础上,将上下文 DFD中的加工分解成多个加工,识别这些加工的输入输出数据流,使得所有上下文 DFD中的输入数据流,经过这些加工之后变换成上下文 DFD的输出数据流。根据 0层 DFD中加工的复杂程度进一步建模加工的内容。 在建分层 DFD时,根据需求情况可以将数据存储建模在不同层次的 DFD中,注意要在绘制下层数据流图时要保持父图与子图平衡。父图中某加工的输入输出数据流必须与它的子图的输入输出数据流在数量和名字上相同,或者父 图中的一个输入 (或输出 )数据流对应于子图中几个输入 (或输出 )数据流,而子图中组成这些数据流的数据项全体正好是父图中的这一条数据流。

23、 本题考查上下文 DFD,要求确定外部实体。在上下文 DFD中,系统名称作为唯一加工的名称,外部实体和该唯一加工之间有输入输出数据流。通过考查系统的主要功能,不难发现,系统中涉及到客户和会议中心管理员,没有提到其他与系统交互的外部实体。根据描述 (1)“客户提交预订请求后 ”, (2)“会议中心管理员收到客户预定请求的通知之后,提交确认 ”、 “根据客户记录给客户发送临时预订确认信息和 支付定金要求 ”等信息,对照图 1-1,从而即可确定 E1为 “客户 ”实体, E2为 “管理员 ”实体。 2 【正确答案】 D1:预订表 D2:客户表 D3:场地表 (设施表或场地设施表 ) D4:设备表 注

24、: D3和 D4可互换 【试题解析】 本题要求确定图 1-2所示的 0层数据流图中的数据存储。重点分析说明中与数据存储有关的描述。根据 (1)“客户提交预订请求后,检查预订表 ”,(2)“系统生成新临时预订存入预订表,并对新客户创建一条客户信息记录加以保存 ”,可知 D1为预订表、 D2为客户表;根据 “会议中心提供举办会议的场地设 施和各种设备 ”, (3)“根据临时预订或变更预定的设备和设施需求,分配所需设备 (均能满足用户要求 )和设施,更新相应的表和预订表 ”, “分配设施和设备 ”可知 D3为和 D4分别为场地 (设施 )表和设备表。 3 【正确答案】 【试题解析】 本问题要求补充缺

25、失的数据流及其起点和终点。 对照图 1-1和图 1 2的输入、输出数据流,数量不同,考查图 1-1中从加工 “会议预订系统 ”输出至 E1的数据流,有 “临时预订预订变更确认信息 ”,而图 1-2中从加工输出至 E1的数据流 “临时预订确认信息 ”和 “变更预订确认信息 ”,但缺少了其中一条数据流 “预订确认信息 ”。 另外,图 1-1中有 “付款凭据 ”,图 1-2中没有 “付款凭据 ”,而只有 “已支付定金凭据 ”,没有针对说明 (7)中 “管理员收到客户余款支付的通知后 ”中的 “支付余款凭据 ”。上述两条数据流的遗失,使父图和子图数据流没有达到平衡。所以需要确定这 两条条数据流或者其分

26、解的数据流的起点或终点。 考查说明中的功能,先考查 “确认预定 ”,功能 (4)中 “给客户发送预订确认信息 ”,对照图 1-2,加工 4没有到实体 E1客户的 “预订确认信息 ”数据流;功能 (7)中“管理员收到客户余款支付的通知后 ”,对照图 1-2,加工 7没有从实体 E1客户输入的数据流 “余款支付凭据 ”。图中 “余款支付凭据 ”数据流是上下文数据流图中数据流 “支付凭据 ”的分解,与另一条分解出的数据流 “已支付定金凭据 ”对照,改名为 “已支付余款凭据 ”。 下面再仔细核对说明和图 1-2之间是否还有遗失的数 据流。 不难发现,功能 (4)中 “根据客户记录给客户发送预订确认信息

27、 ”,而图 1-2中加工 4从 D1预订表中读取预订信息,并没有读取客户信息,所以,此处遗失了数据流 “客户记录 ”,起点是 D2客户表,终点是加工 4确认预订;功能 (5)中 “管理员确认变更后,根据客户记录给客户发送确认信息 ”,而图 1-2中加工 5并没有所根据的 “客户记录 ”输入数据流,所以,此处遗失了数据流 “客户记录 ”,起点是 D2客户表,终点是加工 5变更预订;功能 (6)中 “根据客户记录给满足条件的客户发送支付余款要求 ”,而图 1-2中加工 6并没有所根据的 “客户记录 ”输入数据流,所以,此处遗失了数据流 “客户记录 ”,起点是 D2客户表,终点是加工 6要求预订。

28、继续核对说明和图 1-2,不难发现,功能 (6)中 “管理员从预订表中查询距预订的会议时间两周内的预定 ”,而图 1-2中没有从 D1预订表到加工 6的输入流,所以,此处遗失了数据流 “距预订会议时间两周内的预订 ”,其起点是 D1预订表,终点是加工 6要求付款。 4 【正确答案】 将 Email系统作为外部实体,并将发送给客户 (E1)的确认信息数据流的终点全部改为 Email系统 (或具体说明确认信息数据流:临时预订确认 信息、预订确认信息、变更确认信息,终点均改为 Email系统 )。 【试题解析】 DFD中,外部实体可以是用户,也可以是与本系统交互的其他系统。如果某功能交互的是外部系统

29、 (在本题中是 Email系统 ),则本系统需要将发送给客户的确认信息发送给 Email系统。然后由第三方 Email系统向客户发送邮件,此时第三方 Email系统即为外部实体,而非本系统内部加工,因此需要对图1-1和图 1-2进行修改,添加外部实体 “Email系统 ”,并将数据流确认信息的终点全部改为 Email系统。即将数据流 “临时预订确认信息 ”、 “预 订确认信息 “、 “变更确认信息 ”数据流的终点改为新的外部实体 “Email系统 ”。 二、试题二( 15分) 5 【正确答案】 (a)REFERENCES EMP(Eno) (b)REFERENCES CAR(Cno) (c)C

30、HECK(Get_time(StartTime)BETWEEN07: 00: 00AND18: 00: 00) (d)Sno 【试题解析】 本题考查 SQL语句的基本语法与结构知识。 此类题目要求考生掌握 SQL语句的基本语法和结构,认真阅读题目给出的关系模式,针对题目的要求 具体分析并解答。本试题已经给出了 4个关系模式,需要分析每个实体的属性特征及实体之间的联系,补充完整 SQL语句。 由题目说明可知 Sno属性是 SCHEDULE关系表的主键,所以在 PRIMARY KEY后填的应该是 Sno; Eno和 Cno分别作为外键引用到 EMP和 CAR关系表的主键,因此需要用 REFEREN

31、CES对这两个属性进行外键约束;由 “每天安排发车的时间在上午 07: 00: 00至下午 18: 00: 00范围内 ”的约束,可知需要限制StartTime属性值的取值范围,通过 CHECK约束来实现。从上分析可见,完 整的SQL语句如下: CREATE TABLE SCHEDULE( Sno CHAR(10), Eno CHAR(10) REFERENCES EMP(Eno), Cno CHAR(8) REFERENCES CAR(Cno), StartTime DATETIME CHECK(Get time(SstarTime) BETWEEN 07:00: :0AND18: 00:0

32、0), EndTime DATETIME, PRIMARY KEY Sno); 6 【正确答案】 (1)(e)VIEW AudiSCHEDULE(Eno, Ename, Cno, Brand,StartTime, EndTime) (f)EMP Eno=SCHEDULE Eno AND CAR Cno=SCHEDULE Cno AND Brand=奥迪 (2)(g)TRIGGER (h)UPDATE (i)Bonus=Bonus+Bonus_value(nrow StartTime, nrow EndTime) (j)BONUS Eno=nrow Eno 【试题解析】 (1)创建视图需要通过

33、CREATE VIEW语句来实现,由题目可知视图的属性有 (Eno, Ename, Cno, Brand, StartTime, EndTime);通过公共属性列 Eno和 Cno对使用的三个基本表进行连接;由于只创建奥迪汽车的视图,所以还要在 WHERE后加入 Brand=奥迪 的约束条件。从上分析可见,完整的 SQL语句如下: CREATE VIEW AudiSCHEDULE(Eno, Ename, Cno, Brand, StartTime,EndTime) AS SELECT EMP Eno, Ename, CAR Cno, Brand, StartTime, EndTime FROM

34、 EMP, CAR, SCHEDULE WHERE EMP Eno=SCHEDULE Eno AND CAR Cno=SCHEDULE Cno AND Brand=奥迪 ; (2)创建触发器通过 CREATE TRIGGER语句实现,要求考生掌握触发器的基本语法结构。按照问题要求,在 SCHEDULE关系中更新调度信息时触发器应自动执行,故需要创建基于 UPDATE类型的触发器;最后添加表连接条 件。完整的触发器实现的方案如下: CREATE TRIGGER Bonus_TRG AFTER UPDATE ON SCHEDULE REFERENCING new row AS nrow FOR E

35、ACH ROW BEGIN UPDATE BONUS SET Bonus=Bonus+Bonus value(nrow.StartTime, nrow.EndTime) WHERE BONUS.Eno=nrow. Eno AND Year=Get_Year(nrow StartTime) AND Month=Get_Month(nrow StartTime); END 7 【正确答案】 (1)(k)CAR Cno, Brand (1)COUNT(*) =ALL (2)(m)NOT IN 或 ANY (注:两者填其中一个即可 ) (n)SCHEDULE, CAR (o)SCHEDULE Cno=

36、CAR Cno 【试题解析】 SQL查询通过 SELECT语句实现。 (1)根据问题要求,可通过子查询实现 “调度次数最多的汽车车牌号及其品 牌 ”的查询;对 COUNT函数计算的结果应通过 HAVING条件语句进行约束;通过 Cno和 Brand的组合来进行分组查询。完整的 SQL语句如下: SELECT CAR Cno, Brand FROM CAR, SCHEDULE WHERE CAK Cno=SCHEDULE Cno GROUP BY CAR.Cno, BRAND HAVING COUNT(*) =ALL (SELECT COUNT(*) FROM SCHE DULE GROUP B

37、Y Cno ); (2)根据问题要求,需要使用嵌套查询。先将 WORKS和 COMPANY表进行连接,查找出所有在 “安排过 大金龙 品牌车辆的驾驶员 ”;然后在雇员表中使用“NOT IN”或者 “ ANY”查询不在前述结果里面的员工即可。完整的 SQL语句如下: SELECT Eno, Ename FROM EMP WHERE Eno NOT IN或 ANY ( SELECT Eno FROM SCHEDULE,CAR WHERE SCHEDULE.Cno=CAR.Cno AND Brand=大金龙 ); 三、试题三( 15分) 8 【正确答案】 【试题解析】 本题考查数据库概念结构设计和逻

38、辑结构设计。 此类题目要求考生认真阅读题目中的需求描述,配合已给出的 E-R图,理解概念结构设计中设计者对实体及联系的划分和组织方法,结合需求描述完成 E-R图中空缺部分,并使用 E-R图向关系模式的转换方法,完成逻辑结构设计。 根据所给 E-R图,结合需求描述,购物车作为顾客和商品之间的联系,而订单由顾客从购物车中选择商品生成,因此将购物车这一联系当作实 体,与订单实体产生联系。将联系当作实体参与另一联系,称为聚合,通常当后一联系与此联系相关时,采用这种设计方法。顾客可以从购物车中生成多个订单,一个订单只能从一个购物车里提取商品,属于一对多联系。 根据需求描述中的 “分拣后的商品交由配送员根

39、据配送单上的收货地址进行配送。 ”可以知道,配送是与分拣联系相关的联系,同样的,将分拣联系进行聚合,参与配送联系,同时参与配送联系的还有配送员和地点,为多对多对多联系,语义为配送员根据分拣结果按照收货地点进行配送,与需求相符。 9 【正确答案】 (a)所在仓库 (b)支付凭证 (c)订单 ID 【试题解析】 本小题考核 E-R图向关系模式的转换。由于 E-R图中没有画出实体及联系的属性,需要根据需求描述进行补充。根据需求中的 “一种商品只能放在一个仓库中 ”和 “一份订单所含的多个商品可能由多名分拣员根据商品的所在仓库信息从仓库中进行分拣操作 ”,可以确定 “所在仓库 ”作为商品实体的属性,转

40、入商品关系中。 订单关系由 E-R图中的订单实体和一对多联系网购合并而成,取一方的主码,即购物车这一联系的主码,为参与该联系的实体的主码商品条码和顾客编号,加上网购联系的属性 数量,并入到订单实体转成的关系模式中。订单 ID为订单实体的标识符,订单实体的其他属性需要通过需求描述中获取。根据需求 “订单生成后,由顾客选择系统提供的备选第三方支付平台进行电子支付,支付成功后系统需要记录唯一的支付凭证编号 ”,支付凭证编号应为订单的属性,转入订单关系中。 E-R图中的分拣联系为分拣员与订单之间的多对多联系,转换成独立的分拣关系模式,应包含分拣员实体的标识符分拣员工号和订单实体的标识符订单 ID,及分

41、拣联系的属性分拣时间。 10 【正确答案】 关系模式:订单 (订单 ID,顾客编号,商品 条码,商品数量,销售 ID) 【试题解析】 实体店的订单是营业员根据销售结果生成的,将销售联系聚合成实体,与订单产生联系。一笔销售对应一个订单,一个订单对应一笔销售,为一对一联系。转换为关系模式时,将此联系归入订单关系,即取销售的标识符销售 ID加入到订单关系模式中。 四、试题四( 15分) 11 【正确答案】 对关系 “业主 ”: (1)候选键: (房号,业主身份证号 ) (2)不是 2NF。候选键 (房号,业主身份证号 )部分决定非主属性 “房屋面积 ”。 (3)分解后的关系模式: A1(房号,业主

42、身份证号 ) A2(房号,房屋面积 ) A3(业主身份证号,业主姓名 ) 【试题解析】 本题考查数据库理论规范化及应用,属于比较传统的题目,考查点也与往年类似。 本问题考查候选键和第二范式。 “业主 ”关系的候选键为:房号,业主身份证号。 分析 “业主 ”关系的函数依赖可知: 房号,业主身份证号 业主姓名,业主身份证号,房号,房屋面积 根据第二范式的要求:每一个非主属性完全函数依赖于码,而根据 “业主 ”关系的函数依赖: 房号 房屋面积 可知,存在非主属性对候选 键的部分依赖。所以, “业主 ”关系模式不满足第二范式。 分解后的关系模式为: A1(房号,业主身份证号 ) A2(房号,房屋面积

43、) A3(业主身份证号,业主姓名 ) 12 【正确答案】 对关系 “车位 ”: (1)候选键: (车位编号,使用年份 ), (房号,使用年份 ), (车牌号,使用年份 )注:给出三个之一即可。 (2)不是 3NF。存在非主属性 “汽车品牌 (或 “汽车颜色 ”)对候选键 “车位编号,使用年份 ”的传递依赖: (车位编号,使用年份 ) 车牌号,车牌号 汽车品牌。故 (车位编 号,使用年份 ) 汽车品牌,为传递依赖。 (3)分解后的关系模式 B1(使用年份,费用 ) B2(车牌号,汽车品牌,汽车颜色 ) B3(车位编号,使用年份,房号,车牌号 )或 B3(车位编号,使用年份,房号,车牌号 )或 B

44、3(车位编号,使用年份,车牌号,房号 ) 【试题解析】 本问题考查第三范式。 根据第三范式的要求:每一个非主属性既不部分依赖于码也不传递依赖于码。 “车位 ”关系的候选键为: (车位编号,使用年份 ), (房号,使用年份 )或 (车牌号,使用年份 ) 存在 非主属性 “汽车品牌 ”(或 “汽车颜色 ”)对候选键 “车位编号,使用年份 ”的传递依赖: (车位编号,使用年份 ) 车牌号,车牌号 汽车品牌。故 (车位编号,使用年份 ) 汽车品牌,为传递依赖。 所以, “车位 ”关系模式不满足第三范式。 分解后的关系模式为: B1(使用年份,费用 ) B2(车牌号,汽车品牌,汽车颜色 ) B3(车位编

45、号,使用年份,房号,车牌号 )或 B3(车位编号,使用年份,房号,车牌号 )或 B3(车位编号,使用年份,车牌号,房号 ) 13 【正确答案】 因为需要根据进入和离开小区的时间进行收费,所以在增加的“临时停车 ”关系模式中只需要体现车牌号,进入时间和离开时间即可,即增加的关系模式为: 临时停车 (车牌号,进入时间,离开时间 )。注:可以有其他属性 【试题解析】 本问题考查增加新的关系。 因为需要根据进入和离开小区的时间进行收费,所以在增加的 “临时停车 ”关系模式中只需要体现车牌号、进入时间和离开时间即可,即增加的关系模式为: 临时停车 (车牌号,进入时间,离开时间 )。 需要注意的是:这三个

46、属性是必须有的,也可以出现其他属性。 五、试题五( 15分) 14 【正确答案】 (1)X的值为 4。 该序列实现的是出库一本书和入库一本书两个事务的并发执行,其结果应该是 3。错误原因在于出库时 X的值 2被随后的入库操作改成了 4,出库操作的值被覆盖。这类问题称为丢失修改。 (2)加锁后的执行序列: XLockO(X), XLockI(X), aO=RO(X), aO=aO-1, WO(aO, X), UnlockO(X),aI=RI(X), aI=aI+1, WI(aI, X), UnlockI(X)。 【试题解析】 本题考查事务并发控制知识的应用和事务程序的编写技能 。 (1)根据问题

47、中给出的并发序列: “aO=RO(X), aI=RI(X), aO=aO-1, WO(aO, X),aI=aI+1, WI(aI, X)”及指令的说明,该序列为一个入库事务和一个出库事务的并发调度。 X的当前值为 3,执行完 “aO=RO(X), aI=RI(X)”后,变量 aO和 aI的值均为 3;执行完 “aO=aO-1, WO(aO, X)”后, X的值被改为 2;执行完 “aI=aI+1,WI(aI, X)”后, X的值被改为 4,即并发序列执行完后 X的值。 这两个事务分别是同一书目下两本书的出库和入库操作。根据事务并发正确性 的判定,其正确的必要条件是与某一次串行的结果相同。在 X

48、当前值为 3的情况下,出库一本书和入库一本书,两个事务两种串行方式下,其结果都为 3。因而题目给出的并发序列的执行结果是错误的。 错误原因在于出库事务的指令 “WO(aO, X)”写入 X的值后,被入库事务的指令 “WI(aI, X)”所覆盖,即丢失修改错误,出库事务的修改丢失了。 (2)根据 2PL协议的规定,在修改数据前需对该数据加独占锁,前提是在该数据上没有其他事务所加的锁,否则只能等待其他事务释放锁后再加锁。题目要求只加独占锁,因此出库事务的第一条语句 “aO=RO(X)”前应有加锁语句“XLockO(X)”;入库事务第一条指令 “aI=RI(X)”之前应有加锁语句 “XLockI(X

49、)”,但此时 X上已有出库事务上的锁,故入库事务加锁被拒绝,只能等待,到出库事务释放锁之后才能加上锁,入库事务的后续指令才能得以执行。 15 【正确答案】 (a)书号 =BookNo (b)在库数量 +Amount (c)图书 ISBN=书目 ISBN (d)COMMTT 【试题解析】 本问题将出入库两项操作使用同一程序完成,通过形参 Amount的值 (1表示入库, -1表示出库 )进行区别 。空缺 (a)处应根据形参 BookNo值确定要修改的图书记录。空缺 (b)处为新的在库数量值,将形参 Amount的值累加到在库数量上即可。空缺 (c)处要通过当前图书记录确定要修改的书目记录。空缺 (d)处应为提交指令。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1