天堂888-欧美黄色小说-熟睡侵犯の奶水授乳在线-初尝情欲h名器av-亚洲天堂免费视频-日韩五十路-免费在线国产-国产又大又黄又粗-久草导航-色播导航-亚洲免费资源-熟女一区二区三区视频-亚洲美女视频在线-亚洲成人福利视频-婷婷精品在线-亚洲综合p-中文字幕 日本-亚洲骚片-亚洲自拍偷拍网-国产农村妇女精品一区二区-午夜中出-久久精品国产精品亚洲毛片-91精品毛片-99爱视频在线-狠狠操亚洲-美女让人操-里番本子纯肉侵犯肉全彩无码-999偷拍

2017上半年數(shù)據(jù)庫系統(tǒng)工程師考試案例分析真題(5)

數(shù)據(jù)庫系統(tǒng)工程師 責(zé)任編輯:小布丁 2017-05-25

添加老師微信

備考咨詢

加我微信

摘要:希賽網(wǎng)為大家整理了2017上半年數(shù)據(jù)庫系統(tǒng)工程師考試案例分析真題,以下為第五部分。 試題五(共15分) 閱讀下列說明,回答問題1和問題2,將解答填入答題紙的對應(yīng)欄內(nèi)。【說明】

    希賽網(wǎng)為大家整理了2017上半年數(shù)據(jù)庫系統(tǒng)工程師考試案例分析真題,以下為第五部分。


試題五(共15分)
閱讀下列說明,回答問題1和問題2,將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
某搶紅包軟件規(guī)定發(fā)紅包人可以一次拋出多個紅包,由多個人來搶。要求每個搶紅包的人最多只能搶到同一批次中的一個紅包,且存在多個人同時(shí)搶同一紅包的情況。給定的紅包關(guān)系模式如下:
Red(ID,BatchID,SenderID,Money,ReceiverID)
其中ID標(biāo)識每一個紅包;BatchID為發(fā)紅包的批次,一個BatchID值可以對應(yīng)多個ID值;SenderID為發(fā)紅包人的標(biāo)識;Money為紅包中的錢數(shù);ReceiverID記錄搶到紅包的人的標(biāo)識。
發(fā)紅包人一次拋出多個紅包,即向紅包表中插入多條記錄,每條記錄表示一個紅包,其ReceiverID值為空值。
搶某個紅包時(shí),需要判定該紅包記錄的ReceiverID值是否為空,不為空時(shí)表示該紅包己被搶走,不能再搶,為空時(shí)搶紅包人將自己的標(biāo)識寫入到ReceiverID宇段中,即為搶到紅包。
【問題1】(9分)
引入兩個偽指令a=R(X)和W(b,X)。其中a=R(X)表示讀取當(dāng)前紅包記錄的ReceiverID字段(記為數(shù)據(jù)項(xiàng)X)到變量a中,W(b,X)表示將搶紅包人的標(biāo)識b的值寫入到當(dāng)前紅包記錄的ReceiverID字段(數(shù)據(jù)項(xiàng)X)中,變量a為空值時(shí)才會執(zhí)行W(b,X)操作。假設(shè)有多個人同時(shí)搶同一紅包(即同時(shí)對同一記錄進(jìn)行操作),用aj=Rj(X)和Wi(bi,X)表示系統(tǒng)依次響應(yīng)的第i個人的搶紅包操作。假設(shè)當(dāng)前數(shù)據(jù)項(xiàng)X為空值,同時(shí)有三個人搶同一紅包,則
(1)如下的調(diào)度執(zhí)行序列:
aJ=RJ(刻,a2=R2(X),Wj(bj,X),W2仇,刻,a3=R3(X)
搶到紅包的是第幾人?并說明理由。
(2)引入共享鎖指令SLockj(X)、獨(dú)占鎖指令XLock i(X)和解鎖指令ULock i(X),其中下標(biāo)i表示第i個搶紅包人的指令。如下的調(diào)度執(zhí)行序列:
SLockj(X),aj=Rj(X),SLock2(X),a2=R2(X),XLockj(X)......
是否會產(chǎn)生死鎖?并說明理由。(3)為了保證系統(tǒng)第一個響應(yīng)的搶紅包人為最終搶到紅包的人,請使用上述。)中
引入的鎖指令,對上述(1)中的調(diào)度執(zhí)行序列進(jìn)行修改,在滿足2PL協(xié)議的前提下,給出一個不產(chǎn)生死鎖的完整的調(diào)度執(zhí)行序列。
【問題2】(6分)
下面是用SQL實(shí)現(xiàn)的搶紅包程序的一部分,請補(bǔ)全空缺處的代碼CREATE PROCEDURE ScrambleRed(IN Batchl詞。VARCHAR(20),
因RecvrNo VARCHAR仰))
--紅包批號一接收紅包者--是否已搶過此批紅包
if exists(SELECT*FROM Red
WHERE BatchID=BatchNo AND ReceiverID=ReçvrNo)也m
return-1,;
讀取此批派發(fā)紅包中未領(lǐng)取的紅包記錄ID
DECLARENonR vedRedCURSORFOR SELECTID'>
FROMRed
WHERE BatchID=BatchNo AND ReceiverID IS NULL;
-打開游標(biāo)
OPEN NonRecvedRed;
FETCH NonRecvedRed INTO NonRecvedNo;
while not error
一搶紅包事務(wù)
BEGIN TRANSACTION;
H寫入紅包記錄
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
關(guān)閉游標(biāo)
CLOSE NnoRecved RD
Return0;
END


>>>>返回目錄:2017上半年數(shù)據(jù)庫系統(tǒng)工程師考試案例分析真題(匯總)
>>>>進(jìn)入估分:2017上半年軟考分?jǐn)?shù)早知道,在線估分+真題解析
>>>>點(diǎn)擊查看:2017上半年數(shù)據(jù)庫系統(tǒng)工程師考試案例分析真題答案和解析

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請考生以權(quán)威部門公布的內(nèi)容為準(zhǔn)!

軟考備考資料免費(fèi)領(lǐng)取

去領(lǐng)取

!
咨詢在線老師!