一起答

2011年上半年数据库系统工程师下午试卷(参考答案+解析版)

  • 卷面总分:75分
  • 浏览次数:0
  • 测试费用:免费
  • 答案解析:是
  • 练习次数:46次
  • 作答时间:150分钟
试卷简介
2011年上半年数据库系统工程师下午试卷(参考答案+解析版):本试卷总分75分,请根据系统提供的标准参考答案进行估分。
部分试题预览
  1. 试题五(共15分)

    阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

    【说明】

    某网上商品销售系统的业务流程如下:

    (1)将客户的订单记录(订单号,客户ID,商品ID,购买数量)写入订单表;

    (2)将库存表(商品ID,库存量)中订购商品的库存量减去该商品的购买数量。针对上述业务流程,完成下列问题:

    【问题1】(3分)

    假设库存量有大于等于O的约束,可能出现如下情况:当订单记录写入订单表后,

    修改库存表时因违法约束而无法执行,应如何处理?(100字以内)

    【问题2】(6分)

    引入如下伪指令:将商品A的订单记录插入订单表记为I(A);读取商品A的库存量到变量x,记为x=R(A);变量x值写入商品A中的库存量,记为W(A,x)。则客户i的销售业务伪指令序列为:Ii(A),xi=Ri(A),xi=xi-ai,Wi(A,Xi)。其中ai为商品的购买数量。

    假设当前库存量足够,不考虑发生修改后库存量小于o的情况。若客户1、客户2同时购买同一种商品时,可能出现的执行序列为:I1(A),I2(A),X1=R1(A),X2= R2(A),x1= x1-a1, W1(A, xi), X2=X2- a2, W2(A,X2)。

    (1)此时会出现什么问题(100字以内)?

    (2)为了解决上述问题,引入共享锁指令SLock(A)和独占锁指令XLock(A)对数据

    A进行加锁,解锁指令Unlock(A)对数据A进行解锁,客户i的加锁指令用SLocki(A)表示,其它类同。插入订单表的操作不需要引入锁指令。请补充上述执行序列,使其满足2PL协议,并使持有锁的时间最短。

    【问题3】(6分)

    下面是用E-SQL实现的销售业务程序的一部分,请补全空缺处的代码。

           SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;

           INSERT INTO 订单表VALUES(:OID,:CID,:MID,:qty);

           iferror then {ROLLBACK;   (a)    ;}

           UPDATE库存表

           SET库存量=库存量-:qty

          WHERE  (b) ;

           iferror then {ROLLBACK; return;}

             (c)   

  2. 试题四(共15分)

    阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

    【说明】

    某学校拟开发一套校友捐赠管理系统,以便对校友的捐赠资金进行管理。

    【需求分析】

    校友可以向学校提出捐赠申请,说明捐赠的金额、捐赠类型和使用方式。捐赠类型

    包括一次性捐赠和周期性捐赠。捐赠的使用方式分为两种:一种用于资助个人,即受益人为多名学生或老师,主要用于奖学金、奖教金和助学金等;另一种用于资助捐赠项目,即资助已有的捐赠项目和设立新的捐赠项目,主要用于改善教学设施、实验室建设和设备购买等。一个捐赠项目可以涉及校内的多个受益单位,每个单位在该项目中有确定的受益比例。每个单位的受益比例是指在一个捐赠项目中的每个单位所应得的金额占该捐赠项目总受益金额的比例。一个捐赠项目可以由多个捐赠来资助,一个捐赠也可以资助多个捐赠项目。系统需记录一个捐赠给所资助的每个捐赠项目的具体的捐赠金额,即每个捐赠项目能从一个捐赠中受益的金额。

    初步设计了校友捐赠信息数据库,其关系模式如图4.1所示。

    【问题1】 (5分)

    对关系“校友信息”,请回答以下问题:

    (1)列举出所有候选键的属性。

    (2)它可达到第几范式,用60字以内文字简要叙述理由。

    【问题2】 (6分)

    对关系“捐赠信息”,请回答以下问题:

    (1)用100字以内文字简要说明它会产生什么问题。

    (2)将其分解为第三范式,分解后的关系名依次为:捐赠信息1,捐赠信息2,…

    (3)列出其被修正后的各关系模式的主键。

    【问题3】(4分)

    对关系“项目受益情况”,请回答以下问题:

    (1)它是否是第四范式,用100字以内文字叙述理由。

    (2)将其分解为第四范式,分解后的关系名依次为:项目受益情况l,项目受益情2,…

  3. 试题二(共15分)

    阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

    【说明】

    某法院要开发一个诉讼案件信息处理系统,该信息系统的部分关系模式如下:

    职工(职工编号,姓名,岗位)

    律师(律师编号,姓名)

    被告(被告编号,姓名,地址)

    案件(案件编号,案件类型,案件描述,被告,律师,主审法官,立案日期,状态,

    结案日期,结案摘要)

    审理(审理编号,案件编号,审理日期,摘要)

    有关关系模式的属性及相关说明如下:

    (1)职工关系模式的岗位有“法官”、“书记员”和“其他”。

    (2)诉讼立案后,即在案件关系中插入一条相应记录。案件关系模式的状态有“待处理”、“审理中”、“结案”和“撤销”,一个案件开始立案时其案件状态为“待处理”。

    (3)案件关系模式的案件类型有“偷窃”、“纵火”等。

    (4) -个案件自立案到结案的整个过程由一位法官和一位律师负责,一个案件通常经过一次到多次审理。

    【问题1】(4分)

    假设案件编号唯一标识一个案件,且立案日期小于等于结案日期。请将如下创建案件关系的SQL语句的空缺部分补充完整。

    CREATE TABLE案件(

          案件编号CHAR(6)   (a)   ,

          案件类型VARCHAR(10),

          案件描述VARCHAR (200),

          立案日期DATE

          被告VARCHAR (6) REFERENCES被告(被告编号),

          律师VARCHAR (6) REFERENCES律师(律师编号),

          主审法官VARCHAR (6)    (b)    ,

         状态VARCHAR (6)   (c)  DEFAULT‘待处理’,

         结案日期DATE,

         结案摘要VARCHAR (200),

            (d)

    );

    【问题2】(8分)

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

    (1)查询当前待处理的诉讼案件,显示案件的案件编号、立案日期、被告姓名、被告地址、案件描述、律师姓名和主审法官姓名。

    SELECT案件编号,立案日期,被告.姓名AS被告姓名,地址AS被告地址,案件

                  描述,律师.姓名AS律师姓名,    (e)   

    FROM    (f)  

    WHERE案件,被告=被告.被告编号AND案件,律师=律师.律师编号AND

                       (g)  ;

    (2)查询2009年立案的各类案件数,并按案件数降序排序。(日期格式举例:2009年1月1日表示为01-JAN-2009,2009年12月31日表示为31-DEC-2009)

              SELECT类型,count(*) AS案件数

              FROM案件

             WHERE    (h)   

            GROUP BY类型

                  (i)  ;

    (3)查询立案次数超过5次的被告姓名和地址。

    SELECT姓名,地址,count(*)

    FROM案件,被告

    WHERE    (j)  

    GROUP BY   (k)   

    (1);

    【问题3】(3分)

    当插入一个审理记录时,检查案件的状态,若状态为“未处理”,则将其修改为“审

    理中”。下面是用触发器实现该需求的SQL语句,请将空缺部分补充完整。

             CREATE TRIGGER 审理TRIGGER AFTER   (m)   ON审理

              REFERENCING new row AS nrow

              FOR EACH row

             WHEN‘未处理’=(SELECT状态

                                              FROM案件

                                              WHERE案件编号- nrow.案件编号)

    BEGIN

             UPDATE案件    (n)   

              WHERE   (o)   ;

    END

  4. 试题三(共15分)

    阅读下列说明,回答问题l‘至问题3,将解答填入答题纸的对应栏内。

    【说明】

    某服装销售公司拟开发一套服装采购管理系统,以方便对服装采购和库存进行管理。

    【需求分析】

    (1)采购系统需要维护服装信息及服装在仓库中的存放情况。系统按服装的销售种类记录服装信息。服装信息主要包括:服装编码、服装描述、服装类型、销售价格、尺码和面料,其中,服装类型为销售分类,服装按销售分类编码。仓库信息主要包括:仓库编码、仓库位置、仓库容量和库管员。系统记录库管员的库管员编码、姓名和级别。一个库管员可以管理多个仓库,每个仓库有一名库管员。一个仓库中可以存放多类服装,一类服装可能存放在多个仓库中。

    (2)当库管员发现有一类或者多类服装缺货时,需要生成采购订单。一个采购订单可以包含多类服装。每类服装可由多个不同的供应商供应,但具有相同的服装编码。采购订单主要记录订单编码、订货日期和应到货日期,并需详细记录所采购的每类服装的数量、采购价格和对应的多个供应商。

    (3)系统需记录每类服装的各个供应商信息和供应情况。供应商信息包括:供应商编码、供应商名称、地址、企业法人和联系电话。供应情况记录供应商所供应服装的服装类型和服装质量等级。一个供应商可以供应多类服装,一类服装可由多个供应商供应。库管员根据入库时的服装质量情况,设定或修改每个供应商所供应的每类服装的服装质量等级,用以作为后续采购服装时,选择供应商的参考标准。

    【概念模型设计】

    根据需求阶段收集的信息,设计的实体联系图(不完整)如图3-1所示。

    【逻辑结构设计】

       根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整):

       库管员(  (1)   ,姓名,级别)

       仓库信息((2),仓库位置,仓库容量)

       服装(服装编码,服装描述,服装类型,尺码,面料,销售价格)

       供应商(   (3)   ,供应商名称,地址,联系电话,企业法人)

       供应情况((4) ,服装质量等级)

       采购订单(   (5)   )

       采购订单明细(   (6)    )

    【问题1】(6分)

    补充图3-1中的联系和联系的类型。

    【问题2】(6分)

    根据图3-1,将逻辑结构设计阶段生成的关系模式中的空(1)~(6)补充完整。对所有关系模式,用下划线指出各关系模式的主键。

    【问题3】(3分)

    如果库管员定期需要轮流对所有仓库中的服装质量进行抽查,对每个仓库中的每一类被抽查服装需要记录一条抽查结果,并且需要记录抽查的时间和负责抽查的库管员。请根据该要求,对图3-1进行修改,画出修改后的实体间联系和联系的类型。