如果視圖相當於一個串行調度,那麼視圖將序列化。
如果調度是衝突可序列化的,那麼它將是可序列化的。
可序列化的視圖可序列化包含盲寫。
查看等效
如果滿足以下條件,則兩個調度S1和調度S2被視為等效視圖:
1. 初始讀取
兩個調度的初始讀數必須相同。 假設有兩個調度S1和S2。 在調度S1中,如果事務T1正在讀取資料項目A,則在S2中,事務T1也應該讀取A。
以上兩個調度表是等效視圖,因為S1中的初始讀操作由T1完成,而在S2中,它也由T1完成。
2. 更新讀取
在調度S1中,如果Ti正在讀取由Tj更新的A,那麼在S2中,Ti也應該讀取由Tj更新A。
以上兩個調度表不是相同的,因為在S1中,T3讀取A由T2更新,而在S2中,T3讀取A由T1更新。
3. 最後寫入
兩個調度之間的最終寫入必須相同。 在時間表S1中,如果事務T1最後更新A然後在S2中,則最終寫入操作也應該由T1完成。
以上調度視圖相等,因為S1中的最終寫入操作由T3完成,而在S2中,最終寫入操作也由T3完成。
示例:
有3個事務,可能的調度總數,如下所示:
= 3! = 6
S1 = <T1 T2 T3>
S2 = <T1 T3 T2>
S3 = <T2 T3 T1>
S4 = <T2 T1 T3>
S5 = <T3 T1 T2>
S6 = <T3 T2 T1>
採取第一個調度S1:
調度S1
第1步: 對數據項進行最終更新
在調度S和S1中,除了初始讀取之外沒有讀取,這是不需要檢查該條件的原因。
第2步: 初始讀取
S中的初始讀操作由T1完成,在S1中,也由T1完成。
第3步: 最後寫入
S中的最終寫入操作由T3完成,在S1中,它也由T3完成。 因此,S和S1是等效視圖。第一個調度S1滿足所有三個條件,因此我們不需要檢查另一個調度。
因此,查看等效的串行調度是:
T1 → T2 → T3
上一篇:
DBMS衝突串行化調度
下一篇:
調度的可恢復性