<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # DBMS 沖突可串行化 > 原文: [https://beginnersbook.com/2018/12/dbms-conflict-serializability/](https://beginnersbook.com/2018/12/dbms-conflict-serializability/) 在 [DBMS 調度](https://beginnersbook.com/2018/12/dbms-schedules/)指南中,我們了解到有兩種類型的調度 - 串行和調度。非串聯。串行調度不支持并發執行事務,而非串行調度支持并發。我們還在[可串行化](https://beginnersbook.com/2018/12/dbms-serializability/) 教程中了解到,非串行調度可能會使數據庫處于不一致狀態,因此我們需要檢查這些非串行調度以獲得可串行化。 **沖突可串行化**是可串行化類型之一,可用于檢查非串行調度是否可沖突串行化。 ## 什么是沖突可串行化? 如果我們可以在交換其非沖突操作后將其轉換為串行調度,則調度稱為沖突可串行化。 ### 沖突的操作 如果它們滿足以下三個條件,則說兩個操作存在沖突: 1. 這兩項業務都屬于不同的事務。 2. 兩個操作都在同一個數據項上運行。 3. 至少有一個操作是寫操作。 讓我們看一些例子來理解這一點: **例 1:**事務`T1`的操作`W(X)`和事務`T2`的操作`R(X)`是沖突操作,因為它們滿足上述所有三個條件。它們屬于不同的事務,它們正在處理相同的數據項 X,這是寫操作中的一個操作。 **示例 2:**類似地,`T1`的操作`W(X)`和`T2`的`W(X)`是沖突操作。 **例 3:**`T1`的操作`W(X)`和`T2`的`W(Y)`是非沖突操作,因為兩個寫操作都不在同一數據項上工作,因此這些操作不滿足第二個條件。 **例 4:**類似地,`T1`的`R(X)`和`T2`的`R(X)`是非沖突操作,因為它們都不是寫操作。 **示例 5:**類似地,`T1`的`R(X)`和`T1`的`W(X)`是非沖突操作,因為兩個操作屬于同一事務`T1`。 ## 沖突等價調度 如果在交換非沖突操作之后可以將一個調度轉換為其他調度,則稱兩個調度是沖突等效。 ## 沖突可串行化檢查 讓我們檢查一個調度是否可以沖突串行化。如果調度沖突等同于其序列調度,則稱為沖突可串行化調度。讓我們舉幾個調度的例子。 ### 沖突可串行化的示例 讓我們考慮這個調度: ``` T1 T2 ----- ------ R(A) R(B) R(A) R(B) W(B) W(A) ``` 要將此調度轉換為連續調度,我們必須將事務`T2`的`R(A)`操作與事務`T1`的`W(A)`操作交換。但是我們不能交換這兩個操作,因為它們是沖突操作,因此我們可以說這個給定的調度是**而不是沖突可串行化**。 讓我們再看一個例子: ``` T1 T2 ----- ------ R(A) R(A) R(B) W(B) R(B) W(A) ``` 讓**交換非沖突操作**: 在交換`T1`的`R(A)`和`T2`的`R(A)`后,我們得到: ``` T1 T2 ----- ------ R(A) R(A) R(B) W(B) R(B) W(A) ``` 在交換`T1`的`R(A)`和`T2`的`R(B)`后,我們得到: ``` T1 T2 ----- ------ R(A) R(B) R(A) W(B) R(B) W(A) ``` 在交換`T1`的`R(A)`和`T2`的`W(B)`后,我們得到: ``` T1 T2 ----- ------ R(A) R(B) W(B) R(A) R(B) W(A) ``` 在交換所有非沖突操作后,我們終于得到了一個連續的調度,因此我們可以說給定的調度是**沖突可串行化**。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看