《2011上半年数据库系统工程师考试下午真题及解析(2).docx》由会员分享,可在线阅读,更多相关《2011上半年数据库系统工程师考试下午真题及解析(2).docx(14页珍藏版)》请在第一文库网上搜索。
1、2021上半年数据库系统工程师考试下午真题及解析2?五年高考三年模拟?相当于高考武功秘籍中的?九阴真经?。海量的题库,对真题详尽的解析,备受老师和学生的追捧。可见,真题是应对考试的上好资料,下面希赛软考学院为你整理了 2021上半年数据库系统工程师考试下午真题及解析,助你修炼出一身绝技,应对来年的数据库系统工程师考试。试题四阅读以下说明,答复以下问题1至问题3,将解答填入对应栏内。说明某学校拟开发一套校友捐赠管理系统,以便对校友的捐赠资金进行管理。需求分析校友可以向学校提出捐赠申请,说明捐赠的金额、捐赠类型和使用方式。捐赠类型包括一次性捐赠和周期性捐赠。捐赠的使用方式分为两种:一种用于资助个人
2、,即受益人为多名学生或老师,主要用于奖学金、奖教金和助学金等;另一种用于资助捐赠工程,即资助已有的捐赠工程和设立新的捐赠工程,主要用于改善教学设施、实验室建设和设备购置等。捐赠工程由捐赠理事建立,一个捐赠工程可以涉及多个受益单位,每个单位在该工程中有确定的受益比例。由捐赠理事为工程中的每个单位指定一个工程负责人,并指定每个单位受益比例。每个单位的受益比例是指在一个捐赠工程中的每个单位所应得的金额占该捐赠工程总受益金额的比例。一个捐赠工程可以由多个捐赠来资助,一个捐赠也可以资助多个捐赠工程。由捐赠理事将一个捐赠的捐赠金额分配给所资助的多个捐赠工程,并指定给每个捐赠工程的具体的捐赠金额。初步设计了
3、校友捐赠信息数据库,其关系模式如图4-1所示。校友信息(校友编号,姓名I工作单位,职务,院系,班级,入学年份,身份证号)捐赠信息(捐赠洞号,捐赠校友,措暗时间,措席金额,捐赠类型,使用方式,殳益人,受益人所在单位,受益人类型受益金额使用说明)捐赠项目(项目堀号,项目名称.起止时间)项目受益情况(项目编号,受益单位,负责人,受益比例捎赠端号项目受益金额)校友捐赠信息数据库关系模式关系模式的主要属性上含义及缗如表上二所0表4 W1要属性含义及约束属性I含义和约束条侔项目编号受益人受益人类型受益金额受益比例项目受益金额软考额据库系统工程师交流群:424778193微信:educity-cn唯一标识某
4、个捐赠项目信息捐赠的受益人名称分为:学生、教师每个受益人具体得到的捐赠金额捐赠项目中每个捐赠单位应得到的项目捐赠总金额的比例从一个捐赠中分配给一个捐赠项目的具体金额23、对关系校友信息,请答复以下问题:列举出所有候选键的属性。(2)关系校友信息“可到达第几范式,用60字以内文字简要表达理由。24、对关系捐赠信息,请答复以下问题:Q)针对捐赠信息关系,用100字以内文字简要说明会产生什么问题。把捐赠信息分解为第三范式,分解后的关系名依次为:捐赠信息1 ,捐赠信息2,列出捐赠信息关系修正后的各关系模式的主键。25、对关系工程受益情况,请答复以下问题:Q)关系工程受益情况是不是第四范式,用100字以
5、内文字表达理由。(2)把工程受益情况分解为第四范式,分解后的关系名依次为:工程受益情况1 ,工程受益情况2,参考答案及解析23、校友编号和身份证号。(2) 校友信息关系模式可以到达第二范式,不满足第三范式。由于校友信息关系模式的主键是校友编号,但又包含函数依赖:班级一院系,入学年份不满足第三范式的要求,即存在非主属性对码的传递依赖。此题考查数据库理论的标准化属于比拟传统的题目,考查点也与往年类似。本问题考查非主属性和第三范式。根据校友信息关系模式可知,校友编号和身份证号都是校友信息的决定因素,因此都是候选键的属性。根据第三范式的要求:每一个非主属性既不局部依赖于码也不传递依赖于码。根据校友信息
6、关系模式,其中存在以下函数依赖:班级一院系,入学年份而由于校友信息关系模式的主键是校友编号,因而,存在非主属性对码的传递依赖。所以,校友信息关系模式可以到达第二范式,但不满足第三范式。24、(1) 捐赠信息关系不满足第二范式,即非主属性不完全依赖于码。会造成:插入异常、删除异常和修改复杂(或修改异常)。(3)分解后的关系模式如下:捐赠信息1(捐赠编号,捐赠校友,捐赠时间,捐赠金额,捐赠类型,使用方式)捐赠信息2(受益人身份证号,受益人姓名,受益人所在单位,受益人类型)捐赠信息3(捐赠编号,受益人身份证号,受益金额,使用说明)(1)修正后的主键如下:捐赠信息1(捐赠编号,捐赠校友,捐赠时间,捐赠
7、金额,捐赠类型,使用方式)捐赠信息2(受益人身份证号,受益人姓名,受益人所在单位,受益人类型)捐赠信息3(捐赠编号,受益人身份证号,受益金额,使用说明)本问题考查第二范式和第三范式。根据第三范式的要求:非主属性不完全依赖于码。根据捐赠信息关系模式,可知其码为(捐赠编号,受益人身份证号),而又存在局部函数依赖:捐赠编号一捐赠校友,捐赠时间,捐赠金额,捐赠类型,使用方式。受益人身份证号一受益人姓名,受益人所在单位,受益人类型。所以,捐赠信息关系不满足第二范式,会造成:插入异常、删除异常和修改复杂(或修改异常)。因为存在局部函数依赖,因此对捐赠信息进行分解,分解后的关系模式如下:捐赠信息1(捐赠编号
8、,捐赠校友,捐赠时间,捐赠金额,捐赠类型,使用方式)捐赠信息2(受益人身份证号,受益人姓名,受益人所在单位,受益人类型)捐赠信息3(捐赠编号,受益人身份证号,受益金额,使用说明)其中,捐赠信息rz关系的函数依赖为:捐赠编号-捐赠校友,捐赠时间,捐赠金额,捐赠类型,使用方式。捐赠信息2关系的函数依赖为:受益人身份证号一受益人姓名,受益人所在单位,受益人类型。捐赠信息3关系的函数依赖为:捐赠编号,受益人身份证号一受益金额,使用说明。这三个关系中的每一个非主属性既不局部依赖于码也不传递依赖于码,因此满足第三范式的要求。25、(1) 工程受益情况关系模式,不满足第四范式。(2)分解后的关系模式如下:工
9、程受益情况1(工程编号,受益单位,受益比例)工程受益情况2(工程编号,捐赠编号,工程受益金额)本问题考查的是第四范式。根据工程受益情况关系模式可知,其码为:工程编号,受益单位,捐赠编号。而又存在局部函数依赖:工程编号,受益单位一受益比例工程编号,捐赠编号一工程受益金额工程编号TT受益单位,受益比例工程编号捐赠编号,工程受益金额同时,可以根据第四范式的要求不允许有非平凡且非函数依赖的多值依赖。而在工程受益情况关系模式中存在如下的多值依赖:工程编号受益单位,受益比例工程编号TT捐赠编号,工程受益金额因此,工程受益情况关系模式不满足第四范式。因为存在多值依赖,因此对工程受益情况进行分解,分解后的关系
10、模式如下:工程受益情况1(工程编号,受益单位,受益比例)工程受益情况2(工程编号,捐赠编号,工程受益金额)其中:工程受益情况1关系的函数依赖为:工程编号,受益单位一受益比例。工程受益情况2关系的函数依赖为:工程编号,捐赠编号一工程受益金额。这两个关系不存在多值依赖,因此满足第四范式的要求。试题五阅读以下说明,答复以下问题1至问题3,将解答填入对应栏内。说明某网上商品销售系统的业务流程如下:26、将客户的订单记录(订单号,客户ID ,商品ID ,购置数量)写入订单表;27、将库存表(商品ID ,库存量)中订购商品的库存量减去该商品的购置数量。针对上述业务流程,完成以下问题:26、假设库存量有大于
11、等于0的约束,可能出现如下情况:当订单记录写入订单表后,修改库存表时因违法约束而无法执行,应如何处理?(100字以内)27、引入如下伪指令:将商品A的订单记录插入订单表记为IA.;读取商品A的库存量到变量x,记为x=RA.;变量x值写入商品A中的库存量,记为W(A ,x)o那么客户i的销售业务伪指令序列为:IiA, xi=RiA , xi=xi-ai , Wi(A , xi)o其中ai为商品的购置数量。假设当前库存量足够,不考虑发生修改后库存量小于0的情况。假设客户1、客户2同时购置同一种商品时,可能山现的执行序列为:I1A. , I2A. , xl = RlA,x2 = R2A , xl=x
12、l-al , W1(A , xl) , 2=x2-a2 , W2(A , x2)o(1)此时会出现什么问题?(100字以内)(2)为了解决上述问题,引入共享锁指令SLockA.和独占锁指令XLockA.对数据A进行加锁,解锁指令UnlockA.对数据A进行解锁,客户i的加锁指令用SLockiA.表示,其他类同。插入订单表的操作不需要引入锁指令。请补充上述执行序列,使其满足2PL协议,并使持有锁的时间最短。下面是用E-SQL实现的销售业务程序的一局部,请补全空缺处的代码。SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;INSERT INTO 订单表
13、 VALUES ( : OID z : CID , : MID ,: qty);if error then ROLLBACK; (a);UPDATE库存表SET库存量=库存量-:qtyWHERE (b);if error then ROLLBACK; return;(c);参考答案及解析26、将写订单记录和修改库存表作为一个完整的事务来处理,当修改库存表无法执行时,回滚事务,那么会撤销写入的订单记录,数据库保持一致。此题考查事务及并发控制的概念和应用,属于比拟彳专统的题目,考查点也与往年类似。本问题考查事务的根本概念。对于现实中的一项业务,相对应的数据库更新操作应作为一个完整的事务,要么全做要
14、么全不做。销售业务对应的写入订单记录和更新库存表应作为一个事务,当出现故障(违反约束)而无法完成时,应回滚事务。27、Q)出现问题:客户1购置后写入的库存量值被覆盖,库存量不能表达客户1已购置,属于丧失修改造成的数据库不一致性。(2)重写后的序列:I1(A) , I2(A) , XLockl(A) , xl = Rl(A) , xl=xl-al , W1(A , xl) , nlockl(A),XLock2(A) , x2 = R2(A) , 2=x2-a2 , W2(A , x2) , Unlock2(A)o本问题考查对事务并发控制的相关知识的理解掌握。假设对并发事务的指令交叉执行不加以干预
15、,就会相互干扰,破坏事务的隔离性,造成数据库的不一致。并发事务产生的三种不一致性为丧失修改、不可重复读和读脏数据。本例中客户1对库存量的修改被客户2的修改覆盖,出现丧失修改不一致性。为保证可串行化调度,在事务执行过程中引入相应指令进行控制,即两段锁协议(2PL),对数据读之前先加读锁,写前加写锁,事务只有获得相应的锁才能操作数据,加解锁过程分为两个阶段,前一阶段只能加锁,后一阶段只能解锁,不允许有交叉。两段锁协议是保证并发事务可串行化调度的充分条件。针对给出的伪指令操作序列,需要在修改库存量之前加Xock()指令,并保证客户1释放A上的锁后客户2才能加锁。题目设定插入订单表的操作不需要引入锁指令,每个事