av免费网址-青青青手机在线视频-√天堂资源中文-免费在线观看av网站-午夜dj视频在线观看完整版1-老少配老妇老熟女中文普通话-亚洲精品久久久久成人2007-国产精品边做奶水狂喷-另类综合小说-精品无码成人片一区二区-超碰超在线-国产对白刺激视频-亚洲天堂网在线观看-国产精品国产精品偷麻豆-国产精品美女久久久久久福利-国产露脸国语对白在线-91人人爽久久涩噜噜噜-亚洲欧美久久-久久综合色网-特级黄色 一级播放

2010年上半年數據庫系統工程師考試真題及答案解析下午卷(五)

數據庫系統工程師 責任編輯:茶泡了飯 2015-12-29

添加老師微信

備考咨詢

加我微信

摘要:2010年上半年數據庫系統工程師考試真題及答案解析下午卷 試題五 閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應欄內。

  >>>>>>>>>>點擊進入數據庫系統工程師考試網絡課堂

  >>>>>>>>>>點擊進入數據庫系統工程師歷年真題題庫

  >>>>>>>>>>點擊進入數據庫工程師考試大綱教材


2010年上半年數據庫系統工程師考試真題

下午卷


試題五
閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應欄內。
[說明]
  某航空售票系統負責所有本地起飛航班的機票銷售,并設有多個機票銷售網點。各售票網點使用相同的售票程序。假設售票程序中用到的偽指令如表5-1所示。

50.png

假設某售票網點一次售出a張航班A的機票,則售票程序的偽指令序列為:R(A,x);W(A,X-a)。根據上述業務及規則,完成下列問題:
[問題1]
  若兩個售票網點同時銷售航班A的機票,在數據庫服務器端可能出現如下的調度:
A:R1(A,x),R2(A,X),W1(A,x-1),W2(A,x-2);
B:R1(A,x),R2(A,x),W2(A,x-2),W1(A,x-1);
      C:R1(A,x),W1(A,x-1),R2(A,X),W2(A,x-2);
      其中Ri(A,x),Wi(A,x)分別表示第i個銷售網點的讀寫操作,其余類同。
      假設當前航班A剩余10張機票,分析上述三個調度各自執行完后的剩余票數,并指出錯誤的調度及產生錯誤的原因。
[問題2]
      (1)判定事務并發執行正確性的準則是什么?如何保證并發事務正確地執行?
(2)引入相應的加解鎖指令,重寫售票程序的偽指令序列,以保證正確的并發調度。

  [問題3]
下面是用E-SQL實現的機票銷售程序的一部分,請補全空缺處的代碼。
EXEC SQL SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
      EXEC SQL SELECT balance INTO :x FROM tickets WHERE flight='A';
      printf("航班A當前剩余機票數為:%d\n請輸入購票數:",x);
      scanf("%d",&a);
      x=x-a;
      if(x<0)
      EXEC SQL ROLLBACK WORK;
      printf("票數不夠,購票失敗!");
      else{
EXEC SQL UPDATE tickets SET (a)
      if(SQLCA.sqlcode<>SUCCESS)
      EXEC SQL ROLLBACK WORK;
      else (b)  }



  試題五分析
本題考查的是并發控制的概念和應用,屬于比較傳統的題目,考查點也與往年類似。
[問題1]
  本問題考查并發情況下不同的調度可能產生不同結果的情況。針對兩個并發執行的售票程序,會相互影響從而得到錯誤的結果。
  [問題2]
  本問題考查對事務并發控制的相關知識的理解掌握。事務并發調度是否正確,可通過對非沖突語句進行交換,若最終將并發調度通過交換非沖突語句轉換成串行調度,則該并發調度為可串行化調度,可串行化調度被作為事務并發執行正確性的準則。
為保證可串行化調度,在事物執行過程中引入相應指令進行控制,即兩段鎖協議(2PL),即對數據讀之前先加讀鎖,寫前加寫鎖,事務只有獲得相應的鎖才能操作數據,加解鎖過程分為兩個階段,前一階段只能加鎖,后一階段只能解鎖,不允許有交叉。兩段鎖協議是保證并發事務可串行化調度的充分條件。
針對給出的偽指令操作序列,在事務讀取數據之前加Slock()指令,寫數據之前加Xlock()指令,并保證讀/寫鎖不交叉,即滿足兩段鎖協議。
  [問題3]
  本問題考查對2PL協議理論與SQL中的隔離級別,以及嵌入式SQL的編程實踐。 本地給出的空缺(a)要補充的是嵌入式SQL的更新語句;空缺(b)要補充的是嵌入式SQL中的事務提交語句。



  參考答案
[問題1]
調度A結果:8
調度B結果:9
調度C結果:7
      調度A、B結果錯誤,因為破壞了事務的隔離性。一個事務的執行結果被另一個所覆蓋。

  [問題2]
(1)判定事務并發執行正確性的準則是滿足可串行化調度。要保證并發事務正確地執行,采用兩段鎖協議(2PL)。
      (2)重寫后的售票程序偽指令序列:
XLock(A);
R (A,x);
w (A, x-a);
Unlock(A);
[問題3]
(a)balance= :x WHERE flight='A'
  (b)(b)EXEC SQL COMMIT WORK



>>>>>>>>>>點擊繼續答題

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


      相關鏈接:

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


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

軟考備考資料免費領取

去領取

!
咨詢在線老師!