阅读下列说明,回答问题1和问题2,将解答填入答题纸的对应栏内。 【说明】 某图书馆的图书借还业务使用如下关系模式: 书目(ISBN,书名,出版社,在库数量) 图书(书号,ISBN,当前位置) 其中在库数量为当前书目可借出的图

admin2017-09-14  60

问题 阅读下列说明,回答问题1和问题2,将解答填入答题纸的对应栏内。
【说明】
    某图书馆的图书借还业务使用如下关系模式:
    书目(ISBN,书名,出版社,在库数量)
    图书(书号,ISBN,当前位置)
    其中在库数量为当前书目可借出的图书的数量,每本图书入库后都会有当前位置,借出后当前位置字段改为空值。每一条书目信息对应多本相同的图书,每一本图书只能对应一条书目。
    借还书业务的基本流程如下描述:
    (1)读者根据书名查询书目,当前书目的在库数量大于0时可借阅。
    (2)读者借出一本图书时,进行出库操作:根据该图书的书号将该图书的当前位置字段值改为空值,并根据其ISBN号将对应书目的在库数量减1。
    (3)读者归还一本图书时,进行入库操作:系统根据当前书架的空余位置自动生成该本书的存放位置,并根据该图书的书号将其当前位置字段值改为生成的存放位置,然后将对应书目的在库数量加1。
    (4)借还书时,逐一扫描每本图书的书号并进行出、入库操作。
下面是用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)______
    WHERE  EXISTS  (
    SELECT  *
    FROM 图书
    WHERE  书号=BookNo  AND
    ____(c)____ );
    if error then  ( ROLLBACK; return-3;}
    ____(d)______;
    return 0;
    }

选项

答案(a)书号=BookNo (b)在库数量+Amount (c)图书.ISBN=书目.ISBN (d)COMMTT

解析 本问题将出入库两项操作使用同一程序完成,通过形参Amount的值(1表示入库,-1表示出库)进行区别。空缺(a)处应根据形参BookNo值确定要修改的图书记录。空缺(b)处为新的在库数量值,将形参Amount的值累加到在库数量上即可。空缺(c)处要通过当前图书记录确定要修改的书目记录。空缺(d)处应为提交指令。
转载请注明原文地址:https://jikaoti.com/ti/uwN7FFFM
0

相关试题推荐
最新回复(0)