文章專區

網頁程式技術探討

網頁程式設計-交易的基礎

交易的基礎
網頁設計開發交易平台作業時,會將多項工作連繫在一起。如同應用程式正在執行兩項工作,一開始會在資料庫中建立新的表格,之後呼叫特定物件來收集與格式化資料,然後將資料插入新的表格中。這兩項工作都是相關的,在單一交易範圍內執行這兩項工作,會將這兩項工作強制串聯在一起。如果其中一項工作失敗,另一項工作就會復原至建立新表格之前的時間點,簡單來說,確保一組相關工作會全部成功或失敗。
 
資料庫系統最主要的操作就是存取資料庫中的資料,如果有多個存取操作要執行,且這些操作視無法分割的單位,則整個操作過程,對於資料庫系統是一個「交易」(Transaction)。
 
基本資料庫單元操作(Atomic Database Actions)
交易是將資料庫單元操作的集合,視為一個不可分割的邏輯單位(Logical Unit)。並且使用並行控制(Concurrency Control)和回復處理(Recovery)機制來保障交易能夠成功的執行。資料庫單元操作只有兩種:讀取和寫入。
 
交易狀態

交易是將多個資料庫單元操作視為同一個不可分割的邏輯單元,這些資料庫單元的操作,只有兩種結果:一種是全部執行完成;另一種就是通通不執行,不可能有執行一半的情形發生。 

交易狀態的種類

◎啟動狀態:當交易開始執行,就是進入啟動狀態的初始狀態,依序執行交易的讀取或寫入。

◎部分確認交易狀態:當交易的最後一個單元操作執行完後,也就是交易結束,就進入部分確認交易狀態。

◎確認交易狀態:在成功完成交易進入部分確認交易狀態後,還需要確認系統沒有錯誤,可以真正交資料寫入資料庫。

◎失敗狀態:當發現交易不能繼續執行下去時,交易就進入失敗狀態,準備執行回復交易。

◎放棄或中止狀態:交易需要回復到交易前的狀態,在取消所有寫入資料庫操作單元操作影響的資料後,就進入此狀態。

交易停止執行的原因

◎交易成功:就是正常結束交易的執行,指交易的資料庫單元操作全部執行完成。

◎交易失敗:交易失敗是放出放棄指令(Abort或Rollback)來結束交易的執行。

◎放棄交易:交意本身因為條件錯誤,輸入錯誤資料或使用者操作而送出放棄指令來放棄交易的執行。

◎中止交易:因為系統負載問題或死結情況,由資料庫管理系統送出放棄指令,讓交易進入中止狀態。

◎交易未完成:交易可能因為系統錯誤、硬體錯誤或當機而停止交易執行,因為沒有送出放棄指令,此時交易是未完成的中斷狀態。