DBMS查看可序列化

如果視圖相當於一個串行調度,那麼視圖將序列化。
如果調度是衝突可序列化的,那麼它將是可序列化的。
可序列化的視圖可序列化包含盲寫。

查看等效

如果滿足以下條件,則兩個調度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衝突串行化調度 下一篇: 調度的可恢復性