9-1資料並行性與資料一致性 9-2常見的並行控制問題  
9-3排程(Schedule)的概念 9-4鎖定(Locks)  
9-5ORACLE的鎖定機制  
   
 
遺失更新問題(Lost Update Problem)

考慮下圖的情況,異動交易A在時間點t1讀取資料於暫存變數a1中;異動交易B在時間點t2讀取同一資料X暫存變數a2中,而且於時間點t3將a2的值加5;異動交易A在時間點t4將a1的值加20,並於時間點t5以a1的值更新X;而異動交易B於時間點t6也將a2的值更新X。此時原異動交易A於時間點t5更新的X值在時間點t6時被異動交易B覆蓋了。也就是異動交易A於時間點t5所做的更新遺失了。此類問題稱為遺失更新問題。

   
 
未委付確認相依問題(Uncommitted Dependency Problem)

假設系統允許某異動交易B去讀取或更新一個已經被另外的異動交易A更新但尚未委付確認的資料。就會發生未委付確認相依問題。因為如果該資料只是被異動交易A更新而已,但是尚未委付確認,若該異動交易A不做委付確認而做撤回,則此時異動交易B原所讀取的資料即為不正確的值。如下圖,異動交易A,於時間點t1-t2中更新了X的資料,隨後異動交易B讀取了X資料,也做了運算動作,但異動交易A於時間點t6做了撤回,此時使得原異動交易B於時間點t4所讀的資料為錯誤的,而且異動交易B時間點t4後所做的運算都白費了。此類的問題稱為宋委付確認相依問題。

   
 
不一致分析問題(Inconsistent Analysis Problem)

大部分的並行控制(Concurrency Control)機制,都是希望讓不同異動彼此間的更新異動交易動作能夠儘量不要互相干擾,但是有時有些異動交易即使只是讀取資料而已,在沒有做好並行控制的情況下,也可能會讀到不相容的結果。如下圖,異動交易A將10由帳戶X中轉到帳戶Y中,而異動交易B為加總帳戶X與Y的總和。假如X與Y的初始值為100與150,則如果正常情況下最後的正確總和sum應為250,但是事實上的結果總和為260,顯然是不正確的。在時間點t1與t2,異動交易A與B同時讀取X的值,此時的資料庫系統是處於一致的狀態,因為B讀到並且使用X的舊值,此時B確實相依於未委付確認的資料,但與前一個例子不同點,在於異動交易A最後並沒有撤回,並且當異動交易A發覺時,B已經委付確認了它的所有更新了。此類的問題稱為不一致分析問題。