解釋序列執行或事務(DBMS 示例)


事務執行有三種可能的方式,如下所示:

  • 序列執行 - 在序列執行中,第二個事務只有在第一個事務完成後才能開始執行。這在單處理器系統上是可能的。

  • 並行執行 - 在並行執行中,兩個事務可以同時開始執行。為此,我們需要多個處理器。

  • 併發執行 - 在併發執行中,第二個程序的執行甚至可以在第一個程序完成執行之前就開始。

讓我們考慮兩個事務 T1 和 T2。在併發執行中,CPU 執行事務 T1 的一些指令,然後移動到第二個事務並執行其指令一段時間,然後再次返回到第一個事務。

這個迴圈重複進行,直到兩個事務的所有指令都執行完畢。這個過程稱為上下文切換。

示例

以下是序列執行的示例:

讓我們考慮兩個事務 T1 和 T2,其中 T1 將 150 元從賬戶 A 轉到賬戶 B,T2 將賬戶 A 的餘額的 10% 轉到賬戶 B。

  T1               T2
  Read(A)        Read(A)
  A=A-150        temp =0.1 *A
  Write(A)       A=A-temp
  Read(B)        Write(A)
  B=B+150        Read(B)
  Write(B)      B=B+temp
                 Write(B)

事務 T1 和 T2 的指令執行順序稱為排程。

可能的序列排程如下:

設 A=200,B=200

排程 S1 和 S2 保持資料庫處於一致狀態。

一般來說,如果系統由 n 個事務組成,那麼我們可以生成 n! 個有效的序列排程。

更新於:2021年7月6日

2K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.