成人男同av,在线黄色网,在线观看一区二区三区四区,日本六九视频,国产一区二区三区久久久久久久久,成人97视频,国产性猛交乱

軟題庫 移動APP 掃碼下載APP 隨時隨地移動學習 培訓課程
試卷年份2017年上半年
試題題型【分析簡答題】
試題內(nèi)容

閱讀下列說明,回答問題 1 和問題 2 ,將解答填入答題紙的對應欄內(nèi)。
【說明】
某搶紅包軟件規(guī)定發(fā)紅包人可以一次拋出多個紅包,由多個人來搶。要求每個搶紅包的人最多只能搶到同一批次中的一個紅包,且存在多個人同時搶同一紅包的情況。給定的紅包關系模式如下:
Red(ID,BatchID,SenderID,Money,ReceiverID)
其中 ID 唯一標識每一個紅包; BatchID 為發(fā)紅包的批次,一個 BatchID 值可以對應多個 ID 值;SenderID 為發(fā)紅包人的標識;Money 為紅包中的錢數(shù); ReceiverID 記錄搶到紅包的人的標識。
發(fā)紅包人一次拋出多個紅包,即向紅包表中插入多條記錄,每條記錄表示一個紅包, 其 ReceiverID 值為空值。
搶某個紅包時,需要判定該紅包記錄的 ReceiverID 值是否為空,不為空時表示該紅包己被搶走,不能再搶,為空時搶紅包人將自己的標識寫入到 ReceiverID 宇段中,即為搶到紅包。
【問題 1】 (9分)
引入兩個偽指令 a = R(X) 和 W(b,X) 。其中a = R(X) 表示讀取當前紅包記錄的 ReceiverID 字段(記為數(shù)據(jù)項 X) 到變量 a 中, W(b,X)表示將搶紅包人的唯一標識 b 的值寫入到當前紅包記錄的 ReceiverID 字段(數(shù)據(jù)項 X) 中,變量 a 為空值時才會執(zhí)行 W(b,X) 操作。假設有多個人同時搶同一紅包(即同時對同一記錄進行操作),用 ai=Ri (X)和 Wi(bi, X)表示系統(tǒng)依次響應的第i個人的搶紅包操作。假設當前數(shù)據(jù)項 X 為空值,同時有三個人搶同一紅包,則
(1)如下的調(diào)度執(zhí)行序列:
a1 =R1, a2 = R2(X),W1(b1 ,X),W2(b2,X), a3 = R3(X)
搶到紅包的是第幾人?并說明理由。
(2)引入共享鎖指令 SLocki(X)、獨占鎖指令XLocki(X)和解鎖指令 ULocki(X) ,其中下標 i表示第 i個搶紅包人的指令。如下的調(diào)度執(zhí)行序列:
SLock1(X),a1 = R1(X),SLock2(X),a2 = R2(X),XLock1(X)......
是否會產(chǎn)生死鎖?并說明理由。 (3)為了保證系統(tǒng)第一個響應的搶紅包人為最終搶到紅包的人,請使用上述。)中引入的鎖指令,對上述(1)中的調(diào)度執(zhí)行序列進行修改,在滿足 2PL協(xié)議的前提下,給 出一個不產(chǎn)生死鎖的完整的調(diào)度執(zhí)行序列。
【問題 2】 (6分)
下面是用 SQL實現(xiàn)的搶紅包程序的一部分,請補全空缺處的代碼
CREATE PROCEDURE  ScrambleRed (IN BatchNo  VARCHAR(20) ,    --紅包批號
                                                              (IN RecvrNo  VARCHAR(20))       一接收紅包者
BEGIN
     --是否已搶過此批紅包
      if exists( SELECT * FROM Red
                  WHERE BatchID = BatchNo AND ReceiverID = RecvrNo) thm
                        return -1;

       end if;
       ---讀取此批派發(fā)紅包中未領取的紅包記錄ID
       DECLARE NonRecvedNo VARCHAR(30);
       DECLARE NonRecvedNo CURSOR FOR
                    SELECT ID
                    FROM Red
                    WHERE BatchID = BatchNo AND ReceiverID IS NULL;
        -打開游標
       OPEN NonRecvedRed;
       FETCH NonRecvedRed INTO NonRecvedNo;
       while not error
                      一搶紅包事務
                      BEGIN TRANSACTION;
                      //寫入紅包記錄
                      UPDATE RED  STE  RECDIVER ID =RecvrNo
                      WHERE ID  = nonRECVED AND(a)
                     //執(zhí)行狀態(tài)判定
                     If<修改的記錄數(shù)>= 1 THEN
                                    COMMIT;
                                    (b);
                                    Return 1;
                     Else
                                    ROLLBACK;
                     End if;
                             (c);
            End while
            --關閉游標
            CLOSE NonRecved RD
            Return 0;
END


相關試題

推薦文章
合作網(wǎng)站內(nèi)容