檢查給定排程(DBMS)的檢視序列化
如果一個排程被視為等同於一個序列排程,則該排程具有檢視序列化。如果滿足以下三個規則,則排程是檢視序列化的:
規則 1 - 如果 Ti 最初讀取資料,然後 Tj 寫入相同的資料,在給定的排程中。此順序必須在事務組合(讀寫操作)中遵循。
規則 2 - 如果 Ti 最初寫入資料,然後 Tj 讀取相同的資料,在給定的排程中。此順序必須在事務組合(寫讀操作)中遵循。
規則 3 - 如果 Ti 寫入資料,然後 Tj 最終寫入資料。此順序必須在事務組合(寫寫操作)中遵循。
問題
檢查排程 W3(X), R2(X), W2(Y), R1(Z), W3(Y), W1(Y) 的檢視序列化。
解決方案
我們有三個事務,因此事務組合如下:
<T1, T2, T3>
<T1, T3, T2>
<T2, T1, T3>
<T2, T3, T1>
<T3, T1, T2>
<T3, T2, T1>
這裡,
規則 1 - T2 最初讀取,然後該編號事務寫入相同的資料。因此,我們保留所有事務組合。
規則 2 - T3 最初寫入,然後 T1 讀取相同的資料 Z,這意味著事務順序必須是“t3 後跟 T1”。因此,刪除以下組合,其中“T3 不允許由 T1 執行”,即 T1 出現在 T3 之前。
<T1, T2, T3>
<T1, T3, T2>
<T2, T1, T3>
規則 3 - T1 最終寫入資料,這意味著 T1 必須出現在最後。因此,刪除以下組合,其中“T1 未出現在最後”
<T3, T1, T2>
因此,剩下兩個組合滿足檢視序列化:
<T2, T3, T1>
<T3, T2, T1>
結論
給定的排程是檢視序列化的。
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP