Decode360's Blog

          業精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
            302 隨筆 :: 26 文章 :: 82 評論 :: 0 Trackbacks
          ??? 昨天看模擬題,有一道關于數據庫并發的題目,不是很明白,所以今天特地到網上查了一下,在這里做一個記錄:
          ?
          ??? 題目是數據庫系統工程師考試06年5月下午卷的第5題,具體的題目是這樣的:
          ******************************************************************************
          【說明】
            現有一個事務集{T1,T2,T3,T4},其中這四個事務在運行過程中需要讀寫X、Y和Z。設Ti對X的讀操作記作TiR(X),Ti對X的寫操作記作TiW(X)。
            事務對XYZ的訪問情況如下:
            T1:T1R(x)
            T2:T2R(Y),T2W(X)
            T3:T3W(Y),T3W(X),T3W(Z)
            T4:T4R(Z),T4W(X)
          ?
          【問題1】試述事務并發高(調)度的正確性準則及其內容(4分)
          【問題2】請判斷如下高(調)度是否正確。(4分)
          T3W(Y),T1R(X),T2R(Y),T3W(X),T2W(X),T3W(Z),T4R(Z),T4W(X)
          按這種調度產生的事務依賴關系圖如下:
          ??? 事務依賴.JPG
          【問題3】給出與【問題2】中調度等價的一串行調度序列。(3分)
          ?
          (注:嚴重質疑題目里的“高度”應該是錯別字,改成“調度”才可以理解)
          ******************************************************************************
          ?

          ??? 首先關于【問題1】,我的理解是這樣的:事務的并發調度的正確性,取決于這個并發調度是不是可以等價得轉換為串行調度。只有當一個并行調度可以與某一次的串行調度轉化時,這個并發調度才是正確的。
          ?
          ??? 然后對于【問題2】,可能對題目本身比較難以理解。其實對于并行調度的正確性判斷不需要考慮讀寫一致性和鎖定/解鎖的問題,雖然事務T1/T2/T3/T4中的每一個子項都是原子性的,在啟動前鎖定,完成后解鎖,但是如果不是按照整個事務的串行化執行,其最后的結果是會發生錯誤的。所以我們只能從事務對于X/Y/Z的依賴性的角度來進行分析,例如:
          ?
          ??? 數據項X:T1R(X),T3W(X),T2W(X),T4W(X)
          ??? 相對于X的事物依賴圖為:T1--->T3,T1--->T2,T1--->T4,T3--->T2,T3--->T4,T2--->T4
          ?
          ??? 數據項Y:T3W(Y),T2R(Y)
          ??? 相對于Y的事物依賴圖為:T3--->T2
          ?
          ??? 數據項Z:T3W(Z),T4R(Z)
          ??? 相對于Z的事物依賴圖為T3--->T4
          ?
          ??? 綜合X,Y,Z的事物依賴圖得到題目已知的事物調度依賴圖。
          ??? 在事物調度依賴圖中,沿箭頭方向不產生回路(要包含所有事務)的一條路徑就是與該并發調度等價的串行調度,假設在事務依賴圖中有回路產生,則該并發調度是不可串行化的。而本題按照T1--->T3--->T2--->T4的順序是滿足條件的,所以題中的并行調度順序是正確的。
          ?
          ?
          ??? 如果是不可串行化的調度,則可能是發生了死鎖。例如...,T2R(Y),T3W(X),...T2W(X),T3W(Y),...
          ??? 如果出現這種情況,則改換成串行模式時,對于Y,T3在等待T2結束后對Y解鎖,而對于X,T2在等待T3結束后對X解鎖,這樣就造成了互相等待的死鎖情況而無法進行下去。
          ?
          ??? 需要特別注意的是:在事物依賴有向圖中,選取的路徑是不可以包括回路(多方死鎖),或者雙向路徑的。
          ?
          ??? 對于【問題三】,只要搞明白上面的原理,就很簡單了,答案就是 T1--->T3--->T2--->T4
          ?
          ???
          ?
          ?




          -The End-

          posted on 2009-04-18 21:14 decode360-3 閱讀(1481) 評論(0)  編輯  收藏 所屬分類: Exam
          主站蜘蛛池模板: 手游| 鲁山县| 井陉县| 车险| 综艺| 海原县| 北宁市| 通榆县| 军事| 古浪县| 澄城县| 德昌县| 绥中县| 江口县| 江门市| 游戏| 顺昌县| 大名县| 莒南县| 宣威市| 衡阳市| 定结县| 巴林右旗| 兴海县| 宝清县| 达州市| 东阳市| 二连浩特市| 庐江县| 象山县| 鲁山县| 襄樊市| 江门市| 新泰市| 康定县| 高要市| 绥中县| 西安市| 尉氏县| 航空| 吴川市|