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

上传人:雁** 文档编号:14571246 上传时间:2022-05-05 格式:DOC 页数:21 大小:271KB
返回 下载 相关 举报
2016上半年数据库系统工程师考试真题及答案-下午卷.doc_第1页
第1页 / 共21页
2016上半年数据库系统工程师考试真题及答案-下午卷.doc_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《2016上半年数据库系统工程师考试真题及答案-下午卷.doc》由会员分享,可在线阅读,更多相关《2016上半年数据库系统工程师考试真题及答案-下午卷.doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

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

3、满足条件的客户发送支付余款要求。(7)支付余款。管理员收到客户余款支付的通知后,检查确认,更新预订表中的已支付余款信息。现采用结构化方法对会议预定系统进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图(不完整)。【问题1】使用说明中的词语,给出图1-1中的实体E1E2的名称。E1:客户E2:管理员本题考查采用结构化方法进行系统分析与设计,主要考查数据流图(DFD)的应用,是比较传统的题目,考点与往年类似,要求考生细心分析题目中所描述的内容。面向数据流建模是目前仍然被广泛使用的结构化分析与设计的方法之一,而DFD是面向数据流建模的重要工具,是一种便于用户理解、分析系统

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

5、上下文DFD中的输入数据流,经过这些加工之后变换成上下文DFD的输出数据流。根据0层DFD中加工的复杂程度进一步建模加工的内容。在建分层DFD时,根据需求情况可以将数据存储建模在不同层次的DFD注意要在绘制下层数据流图时要保持父图与子图平衡。父图中某加工的输入输出数琚流必须与它的子图的输入输出数据流在数量和名字上相同,或者父图中的一个输入(或输出)数据流对应于子图中几个输入(或输出)数据流,而子图中组成这些数据流的数据项全体正好是父图中的这一条数据流。本题考查上下文DFD,要求确定外部实体。在上下文DFD中,系统名称作为唯一加工的名称,外部实体和该唯一加工之间有输入输出数据流。通过考查系统的主

6、要功能,不难发现,系统中涉及到客户和会议中心管理员,没有提到其他与系统交互的外部实体。根据描述(1)“客户提交预订请求后”,(2)“会议中心管理员收到客户预定请求的通知之后,提交确认”、“根据客户记录给客户发送临时预订确认信息和支付定金要求”等信息,对照图1-1,从而即可确定E1为“客户”实体,E2为“管理员”实体。【问题2】使用说明中的词语,给出图1-2中的数据存储D1D4的名称。D1:预定表;D2:客户表;D3:场地表 (设施表或场地设施表);D4:设备表。注:D3和D4可互换。本题要求确定图1-2所示的0层数据流图中的数据存储。重点分析说明中与数据存储有关的描述。根据(1)“客户提交预订

7、请求后,检查预订表”,(2)“系统中成新临时预订存入预订表,并对新客户创建一条客户信息记录加以保存”,可知D1为预订表、D2为客户表;根据“会议中心提供举办会议的场地设施和各种设备”,(3)“根据临时预订或变更预定的设备和设施需求,分配所需设备(均能满足用户要求)和设施,更新相应的表和预订表”,“分配设施和设备”可知D3为和D4分别为场地(设施)表和设备表。【问题3】根据说明和图中术语,补充图1-2之中缺失的数据流及其起点和终点。注:上述6条数据流无顺序要求。本问题要求补充缺失的数据流及其起点和终点。对照图1-1和图1-2的输入、输出数据流,数量不同,考查图1-1中从加工“会议预订系统”输出至

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

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

10、“客户记录”输入数据流,所以,此处遗失了数据流“客户记录”,起点是D2客户表,终点是加工5变更预订;功能(6)中“根据客户记录给满足条件的客户发送支付余款要求”,而图1-2中加工6并没有所根据的“客户记录”输入数据流,所以,此处遗失了数据流“客户记录”,起点是D2客户表,终点是加工6要求预订。继续核对说明和图1-2,不难发现,功能(6)中“管理员从预订表中查询距预订的会议时间两周内的预定”,而图1-2中没有从D1预订表到加工6的输入流,所以,此处遗失了数据流“距预订会议时间两周内的预订”,其起点是D1预订表,终点是加工6要求付款。【问题4】如果发送给客户的确认信息是通过Email系统向客户信息

11、中的电子邮件地址进行发送的,那么需要对图1-1和1-2进行哪些修改?用150字以内文字加以说明。将Email系统作为外部实体,并将发送给客户(E1)的确认信息数据流的终点全部改为Email系统(或具体说明确认信息数据流:临时预订确认信息、预订确认信息、变更确认信息,终点均改为Email系统)。DFD中,外部实体可以是用户,也可以是与本系统交互的其他系统。如果某功能交互的是外部系统(在本题中是Email系统),则本系统需要将发送给客户的确认息发送给Email系统。然后由第三方Email系统向客户发送邮件,此时第三方Email系统即为外部实体,而非本系统内部加工,因此需要对图1-1和图1-2进行修

12、改,添加外部实体“Email系统”,并将数据流确认信息的终点全部改为Email系统。即将数据流“临时预订确认信息”、“预订确认信息”、“变更确认信息”数据流的终点改为新的外部实体“Email系统”。试题二阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】某单位公用车辆后勤服务部门数据库的部分关系模式如下: 驾驶员:EMP(Eno,Ename,Age,Sex,telephone),各属性分别表示驾驶员工号、姓名、年龄、性别和电话号码; 车辆:CAR(Cno,Brand,Capacity),各属性分别表示汽车车牌号、品牌名和排量;调度:SCHEDULE(Sno,Eno,Cno,

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

14、rtTime)返回出车的时间)。(a)REFERENCES EMP(Eno)(b)REFERENCES CAR(Cno)(c)CHECK(Get_time(StartTime)BETWEEN07:00:00,AND18:00:00)(d)Sno本题考查SQL语句的基本语法与结构知识。此类题目要求考生掌握SQL语句的基本语法和结构,认真阅读题目给出的关系模式,针对题目的要求具体分析并解答。本试题已经给出了4个关系模式,需要分析每个实体的属性特征及实体之间的联系,补充完整SQL语句。由题目说明可知Sno属性是SCHEDULE关系表的主键,所以在PRIMARYKEY后填的应该是Sno;Eno和Cno

15、分别作为外键引用到EMP和CAR关系表的主键,因此需要用REFERENCES对这两个属性进行外键约束;由“每天安排发车的时间在上午07:00:00至下午18:00:00范围内”的约束,可知需要限制StartTime属性值的取值范围,通过CHECK约束来实现。从上分析可见,完整的SQL语句如下:【问题2】(1)创建所有奥迪品牌汽车的调度信息的视图AudiSCHEDULE,属性有Eno、Ename、Cno、Brand、StartTime和EndTime,请将下面SQL语句的空缺部分补充完整。(2)驾驶员的奖金在收车时间写入时,由出车时间段自动计算,并用触发器来实现奖金的自动维护,函数float B

16、onus_value(DATETIME StartTime, DATETIME EndTime)依据发车时间和收车时间来计算本次出车的奖金。系统在每月初自动增加一条该员工的当月奖金记录,初始金额为零。请将下面SQL语句的空缺部分补充完整。 (1)(e)View AduiSCHEDULE(Eno,Ename,Cno,Brand,StartTime,EndTime)(f)Emp.Eno=SCHEDULE.Eno AND SCHEDULE.Cno=Car.Cno AND Car.Brand=奥迪(2)(g)TRIGGER(h)UPDATE OF EndTime(i)Amount=Amount+Bon

17、us_value(nrow.StartTime,nrow.EndTime)(j)BONUS.Eno=nrow.Eno(1)创建视图需要通过CREATE VIEW语句来实现,由题目可知视图的属性有(Eno,Ename,Cno,Brand,StartTime,EndTime);通过公共属性列Eno和Cno对使用的三个基本表进行连接;由于只创建奥迪汽车的视图,所以还要在WHERE后加入Bram=奥迪的约束条件。从上分析可见,完整的SQL语句如下:(2)创建触发器通过CREATE TRIGGER语句实现,要求考生掌握触发器的基本语法结构。按照问题要求,在SCHEDULE关系中更新调度信息时触发器应自动

18、执行,故需要创建基于UPDATE类型的触发器;最后添加表连接条件。完整的触发器实现的方案如下:【问题3】请将下面SQL语句的空缺部分补充完整。(1)查询调度次数最多的汽车车牌号及其品牌。 (2)查询所有在调度表中没有安排过“大金龙”品牌车辆的驾驶员工员和姓名。(1)(k)Car.Cno,Brand(l)COUNT(*)=ALL(2)(m)NOT IN或ANY(注:两者填其中一个即可)(n)SCHEDULE,CAR(o)SCHEDULE.Cno=CAR.CnoSQL查询通过SELECT语句实现。(1)根据问题要求,可通过子查询实现“调度次数最多的汽车车牌号及其品牌”的查询;对COUNT函数计算的

19、结果应通过HAVING条件语句进行约束;通过Cno和Brand的组合来进行分组查询。完整的SQL语句如下:(2)根据问题要求,需要使用嵌套查询。先将WORKS和COMPANY表进行连接,查找出所有在“安排过大金龙,品牌车辆的驾驶员”;然后在雇员表中使用“NOTIN,或者“ANY”查询不在前述结果里面的员工即可。完整的SQL语句如下:试题三阅读下列说明,回答问题1至问题3;将解答填入答题纸的对应栏内。【说明】某销售公司当前的销售业务为商城实体店销售。现该公司拟开展网络销售业务,需要开发一个信息化管理系统。请根据公司现有业务及需求完成该系统的数据库设计。【需求描述】(1)记录公司所有员工的信息。员

20、工信息包括工号、身份证号、姓名、性别、出生日期和电话,并只登记一部电话。(2)记录所有商品的信息。商品信息包括商品名称、生产厂家、销售价格和商品介绍。系统内部用商品条码唯一区别每种商品。(3)记录所有顾客的信息。顾客信息包括顾客姓名、身份证号、登录名、登录密码、和电话号码。一位顾客只能提供一个电话号码。系统自动生成唯一的顾客编号。(4)顾客登录系统之后,在网上商城购买商品。顾客可将选购的商品置入虚拟的购物车内,购物车可长期存放顾客选购的所有商品。顾客可在购物车内选择商品、修改商品数量后生成网购订单。订单生成后,由顾客选择系统提供的备选第三方支付平台进行电子支付,支付成功后系统需要记录唯一的支付

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

22、商品名称,生产厂家,销售价格,商品介绍,(a)顾客(顾客编号,姓名,身份证号,登录名,登录密码,电话)收货地点(收货ID,顾客编号,收货地址,收货人,联系电话)购物车(顾客编号,商品条码,商品数量)订单(订单ID,顾客编号,商品条码,商品数量,(b)分检(分拣ID,分拣员工号,(c),分拣时间)配送(配送ID,分拣ID,配送员工号,收货ID,配送时间,签收时间,签收快照)销售(销售ID,营业员工号,顾客编号,商品条码,商品数量) 【问题1】补充图2-1中的“配送”联系所关联的对象及联系类型。本题考査数据库概念结构设计和逻辑结构设计。此类题目要求考生认真阅读题目中的需求描述,配合巳给出的E-R图

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

24、聚合,参与配送联系,同时参与配送联系的还有配送员和地点,为多对多对多联系,语义为配送员根据分拣结果按照收货地点进行配送,与需求相符。【问题2】补充逻辑结构设计中的(a)、(b)和(c)三处空缺。 (a)所在仓库 (b)支付凭证 (c)订单ID本小题考核E-R图向关系模式的转换。由于E-R图中没有画出实体及联系的属性,需要根据需求描述进行补充。根据需求中的“一种商品只能放在一个仓库中”和“一份订单所含的多个商品可能由多名分拣员根据商品的所在仓库信息从仓库中进行分拣操作”,可以确定“所在仓库”作为商品实体的属性,转入商品关系中。订单关系由E-R图中的订单实体和一对多联系网购合并而成,取一方的主码,

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

26、的订单进行后续的统一管理。请根据该需求,对图3-1进行补充,并修改订单关系模式。关系模式:订单(订单ID,颳客编号,商品条妈,商品数量,销售ID)实体店的订单是营业员根据销售结果生成的,将销售联系聚合成实体,与订单产生联系。一笔销售对应一个订单,一个订单对应一笔销售,为一对一联系。转换为关系模式时,将此联系归入订单关系,即取销售的标识符销售ID加入到订单关系模式中。试题四阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】某小区由于建设时间久远,停车位数量无法满足所有业主的需要,为公平起见,每年进行一次抽签来决定车位分配。小区物业拟建立一个信息系统,对停车位的使用和收费进行管

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

28、车位(车位编号,房号,车牌号,汽车品牌,汽车颜色,使用年份,费用) 【问题1】对关系“业主”,请回答以下词题:(1)给出“业主”关系的候选键。(2)它是否为2NF,用60字以内文字简要叙述理由。(3)将其分解为BCNF,分解后的关系名依次为:A1,A2,.,并用下划线标示分解后的各关系模式的主键。对关系“业主”:(1)候选键:(房号,业主身份证号)(2)不是2NF。候选键(房号,业主身份证号)部分决定非主属性“房屋而积”。(3)分解后的关系模式:A1(房号,业主身份证号)A2(房号,房屋面积)A3(业主身份证号,业主姓名)本题考查数据库理论规范化及应用,属于比较传统的题目,考查点也与往年类似。

29、本问题考査候选键和第二范式。“业主”关系的候选键为:房号,业主身份证号。分析“业主”关系的函数依赖可知:房号,业主身份证号业主姓名,业主身份证号,房号,房屋面积根据第二范式的要求:每一个非主属性完全函数依赖于码,而根据“业主”关系的函数依赖:房号房屋面积可知,存在非主属性对候选键的部分依赖。所以,“业主”关系模式不满足第二范式。分解后的关系模式为:A1(房号,业主身份证号)A2(房号,房屋面积)A3(业主身份证号,业主姓名)【问题2】对关系“车位”,请回答以下问题:(1)给出“车位”关系的候选键。 (2)它是否为3NF,用60字以内文字简要叙述理由。(3)将其分解为BCNF,分解后的关系名依次

30、为:B1,B2,.,并用下划线标示分解后的各关系模式的主键。对关系“车位”:(1)候选键:(车位编号,使用年份),(房号,使用年份),(车牌号,使用年份)注:给出三个之一即可。(2)不是3NF。存在非主属性“汽车品牌”(或“汽车颜色”)对候选键“车位编号,使用年份”的传递依赖:(车位编号,使用年份)车牌号,车牌号汽车品牌。故(车位编号,使用年份)汽车品牌,为传递依赖。(3)分解后的关系模式B1(使用年份,费用)B2(车牌号,汽车品牌,汽车颜色)B3(车位编号,使用年份,房号,车牌号)或B3(车位编号,使用年份,房号,车牌号)或B3(车位编号,使用年份,车牌号,房号)注:三个B3任一个均可。本问

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

32、临时车辆进入小区,按照进入和离开小区的时间进行收费(每小时2元)。试增加“临时停车”关系模式,用100字以内文字简要叙述解决方案。因为需要根据进入和离开小区的时间进行收费,所以在增加的“临时停车”关系模式中只需要体现车牌号,进入时间和离开时间即可,即增加的关系模式为:临时停车(车牌号,进入时间,离开时间)。注:可以有其他属性本问题考查增加新的关系。因为需要根据进入和离开小区的时间进行收费,所以在增加的“临时停车”关系模式中只需要体现车牌号、进入时间和离开时间即可,即增加的关系模式为:临时停车(车牌号,进入时间,离开时间)。需要注意的是:这三个属性是必须有的,也可以出现其他属性。试题五阅读下列说

33、明,回答问题1和问题2,将解答填入答题纸的对应栏内。【说明】某图书馆的图书借还业务使用如下关系模式:书目(ISBN,书名,出版社,在库数量)图书(书号,ISBN,当前位置)其中在库数量为当前书目可借出的图书的数量,每本图书入库后都会有当前位置,借出后当前位置字段改为空值。每一条书目信息对应多本相同的图书,每一本图书只能对应一条书目。借还书业务的基本流程如下描述:(1)读者根据书名查询书目,当前书目的在库数量大于0时可借阅。(2)读者借出一本图书时,进行出库操作:根据该图书的书号将该图书的当前位置字段值改为空值,并根据其ISBN号将对应书目的在库数量减1。(3)读者归还一本图书时,进行入库操作:

34、系统根据当前书架的空余位置自动生成该本书的存放位置,并根据该图书的书号将其当前位置字段值改为生成的存放位置,然后将对应书目的在库数量加1。(4)借还书时,逐一扫描每本图书的书号并进行出、入库操作。 【问题1】引入两个伪指令:a=R(X)表示将在库数量X值读入到变量a中;W(a,X)表示将变量a的值写入到在库数量X中。入库操作用下标i表示,出库操作用下标o表示。将出库和入库操作分别定义为两个事务,针对并发序列:ao=Ro(X),aI=RI(X),ao=ao-1,Wo(ao,X),aI=aI+1,WI(aI,X)。其中变量aI和ao分别代表入库事务和出库事务中的局部变量。(1)假设当前X的值为3,

35、则执行完上述并发序列的伪指令后,X的值是多少?简述产生这一错误的原因(100字以内)。(2)为了解决上述问题,引入独占锁指令XLock(X)对数据X进行加锁,解锁指令Unlock(X)两对数据X进行解锁。入库操作用下标I表示,如XLockI(X);出库操作用下标o表示,如Unlocko(X)。请根据上述的并发序列,给出一种可能的执行序列,使其满足2PL协议。 (1)X的值为4。该序列实现的是出库一本书和入库一本书两个事务的并发执行,其结果应该是3。错误原因在于出库时X的值2被随后的入库操作改成了4,出库操作的值被覆盖。这类问题称为丢失修改。(2)加锁后的执行序列:XLocko(X),XLock

36、I(X),ao=Ro(X),ao=ao-1,Wo(ao,X),Unlocko(X),aI=RI(X),aI=aI+1,WI(aI,X),UnlockI(X)。本题考查事务并发控制知识的应用和事务程序的编写技能。(1)根据问题中给出的并发序列:“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)

37、”后,X的值被改为4,即并发序列执行完后X的值。这两个事务分别是同一书目下两本书的出库和入库操作。根据事务并发正确性的判定,其正确的必要条件是与某一次串行的结果相同。在X当前值为3的情况下,出库一本书和入库一本书,两个事务两种串行方式下,其结果都为3。因而题目给出的并发序列的执行结果是错误的。错误原因在于出库事务的指令“Wo(ao,X)”写入X的值后,被入库事务的指令加“WI(aI,X)”所覆盖,即丢失修改错误,出库事务的修改丢失了。(2)根据2PL协议的规定,在修改数据前需对该数据加独占锁,前提是在该数据上没有其他事务所加的锁,否则只能等待其他事务释放锁后再加锁。题目要求只加独占锁,因此出库

38、事务的第一条语句“ao=Ro(X)”前应有加锁语句“XLocko(X)”;入库事务第一条指令“aI=RI(X)”之前应有加锁语句“XLockI(X)”,但此时X上己有出库事务上的锁,故入库事务加锁被拒绝,只能等待,到出库事务释放锁之后才能加上锁,入库事务的后续指令才能得以执行。【问题2】下面是用SQL实现的出入库业务程序的一部分,请补全空缺处的代码。(a)书号=BookNo(b)在库数量+Amount(c)图书.ISBN=书目.ISBN (d)COMMIT本问题将出入库两项操作使用同一程序完成,通过形参Amount的值(1表示入库,-1表示出库)进行区别。空缺U)处应根据形参BookNo值确定要修改的图书记录。空缺(b)处为新的在库数量值,将形参Amount的值累加到在库数量上即可。空缺(c)处要通过当前图书记录确定要修改的书目记录。空缺(d)处应为提交指令。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁