亚洲AV乱码一区二区三区女同,欧洲在线免费高清在线a,中文字幕丝袜四区,老少配老妇熟女中文高清

<s id="38axe"><nobr id="38axe"></nobr></s><abbr id="38axe"><u id="38axe"></u></abbr>

<sup id="38axe"></sup>
    <acronym id="38axe"></acronym>
  • <s id="38axe"><abbr id="38axe"><ins id="38axe"></ins></abbr></s>
    
    
        <s id="38axe"></s>

        2011上半年數(shù)據(jù)庫系統(tǒng)工程師考試真題及答案解析下午卷(五)

        數(shù)據(jù)庫系統(tǒng)工程師 責任編輯:茶泡了飯 2015-12-29

        添加老師微信

        備考咨詢

        加我微信

        摘要:2011上半年數(shù)據(jù)庫系統(tǒng)工程師考試真題及答案解析下午卷 試題五 閱讀下列說明,回答問題1至問題3,將解答填入對應欄內。

        >>>>>>>>>>點擊進入數(shù)據(jù)庫系統(tǒng)工程師考試網絡課堂

        >>>>>>>>>>點擊進入數(shù)據(jù)庫系統(tǒng)工程師歷年真題題庫

        >>>>>>>>>>點擊進入數(shù)據(jù)庫工程師考試大綱教材


        2011上半年數(shù)據(jù)庫系統(tǒng)工程師考試真題及答案解析

        下午卷



              試題五
        閱讀下列說明,回答問題1至問題3,將解答填入對應欄內。
        [說明]
          某網上商品銷售系統(tǒng)的業(yè)務流程如下:
              26、將客戶的訂單記錄(訂單號,客戶ID,商品ID,購買數(shù)量)寫入訂單表;
              27、將庫存表(商品ID,庫存量)中訂購商品的庫存量減去該商品的購買數(shù)量。
        針對上述業(yè)務流程,完成下列問題:
        26、假設庫存量有大于等于0的約束,可能出現(xiàn)如下情況:當訂單記錄寫入訂單表后,修改庫存表時因違法約束而無法執(zhí)行,應如何處理?(100字以內)
          27、引入如下偽指令:將商品A的訂單記錄插入訂單表記為IA.;讀取商品A的庫存量到變量x,記為x=RA.;變量x值寫入商品A中的庫存量,記為W(A,x)。則客戶i的銷售業(yè)務偽指令序列為:IiA.,xi=RiA.,xi=xi-ai,Wi(A,xi)。其中ai為商品的購買數(shù)量。
        假設當前庫存量足夠,不考慮發(fā)生修改后庫存量小于0的情況。若客戶1、客戶2同時購買同一種商品時,可能山現(xiàn)的執(zhí)行序列為:I1A.,I2A.,x1=R1A.,x2=R2A.,x1=x1-a1,W1(A,x1),x2=x2-a2,W2(A,x2)。
              (1)此時會出現(xiàn)什么問題?(100字以內)
              (2)為了解決上述問題,引入共享鎖指令SLockA.和獨占鎖指令XLockA.對數(shù)據(jù)A進行加鎖,解鎖指令UnlockA.對數(shù)據(jù)A進行解鎖,客戶i的加鎖指令用SLockiA.表示,其他類同。插入訂單表的操作不需要引入鎖指令。請補充上述執(zhí)行序列,使其滿足2PL協(xié)議,并使持有鎖的時間最短。
          下面是用E-SQL實現(xiàn)的銷售業(yè)務程序的一部分,請補全空缺處的代碼。
        SET TRANSACTION  ISOLATION LEVEL REPEATABLE READ;
              INSERT INTO 訂單表 VALUES (:OID,:CID,:MID,:qty);
              if error then  {  ROLLBACK; (a)  ;  }
              UPDATE  庫存表
              SET 庫存量=庫存量-:qty
              WHERE (b)  ;
              if error then  { ROLLBACK;  return;  }
        (c)  ;
           



          參考答案及解析

              26、將寫訂單記錄和修改庫存表作為一個完整的事務來處理,當修改庫存表無法執(zhí)行時,回滾事務,則會撤銷寫入的訂單記錄,數(shù)據(jù)庫保持一致。
              本題考查事務及并發(fā)控制的概念和應用,屬于比較傳統(tǒng)的題目,考查點也與往年類似。
              本問題考查事務的基本概念。對于現(xiàn)實中的一項業(yè)務,相對應的數(shù)據(jù)庫更新操作應作為一個完整的事務,要么全做要么全不做。銷售業(yè)務對應的寫入訂單記錄和更新庫存表應作為一個事務,當出現(xiàn)故障(違反約束)而無法完成時,應回滾事務。
              27、(1)出現(xiàn)問題:客戶1購買后寫入的庫存量值被覆蓋,庫存量不能體現(xiàn)客戶1已購買,屬于丟失修改造成的數(shù)據(jù)庫不一致性。
        (2)重寫后的序列:
              I1(A),I2(A),XLock1(A),x1=R1(A),x1=x1-a1,W1(A,x1),Unlock1(A),XLock2(A),x2=R2(A),x2=x2-a2,W2(A,x2),Unlock2(A)。

          本問題考查對事務并發(fā)控制的相關知識的理解掌握。若對并發(fā)事務的指令交叉執(zhí)行不加以干涉,就會相互干擾,破壞事務的隔離性,造成數(shù)據(jù)庫的不一致。并發(fā)事務產生的三種不一致性為丟失修改、不可重復讀和讀臟數(shù)據(jù)。本例中客戶1對庫存量的修改被客戶2的修改覆蓋,出現(xiàn)丟失修改不一致性。 為保證可串行化調度,在事務執(zhí)行過程中引入相應指令進行控制,即兩段鎖協(xié)議(2PL),對數(shù)據(jù)讀之前先加讀鎖,寫前加寫鎖,事務只有獲得相應的鎖才能操作數(shù)據(jù),加解鎖過程分為兩個階段,前一階段只能加鎖,后一階段只能解鎖,不允許有交叉。兩段鎖協(xié)議是保證并發(fā)事務可串行化調度的充分條件。
          針對給出的偽指令操作序列,需要在修改庫存量之前加Xlock()指令,并保證客戶1釋放A上的鎖后客戶2才能加鎖。題目設定插入訂單表的操作不需要引入鎖指令,每個事務只需對庫存量加解鎖,滿足2PL協(xié)議。
           28、return
        29、商品ID=:MID
        30、COMMTT

          本問題考查對2PL協(xié)議理論與SQL中的隔離級別,以及嵌入式SQL的編程實踐。
          本題給出的空缺(a)是在事務回滾之后,需要補充的是控制程序邏輯的return語句;空缺(b)要補充的是WHERE條件,即指定的商品ID;空缺(c)要補充的是事務提交語句COMMIT。


        >>>>>>>>>>點擊繼續(xù)答題

        >>>>>>>>>>點擊返回目錄


        相關鏈接:

          數(shù)據(jù)庫系統(tǒng)工程師考試知識點分析與真題詳解(第4版)
              數(shù)據(jù)庫系統(tǒng)工程師考試歷年試題分析與解答(第4版)
              數(shù)據(jù)庫系統(tǒng)工程師考試下午知識點精講與考前必練
              數(shù)據(jù)庫系統(tǒng)工程師考試考前串講




        溫馨提示:因考試政策、內容不斷變化與調整,本網站提供的以上信息僅供參考,如有異議,請考生以權威部門公布的內容為準!

        軟考備考資料免費領取

        去領取

        !
        咨詢在線老師!