Please enable JavaScript.
Coggle requires JavaScript to display documents.
(交易狀態 (Transaction State) (1.啟動狀態 (Active State), 2.部分確認交易狀態 (Partially…
交易狀態
(Transaction State)
1.啟動狀態
(Active State)
2.部分確認交易狀態
(Partially Committed State)
3.確認交易狀態
(Committed State)
4.失敗狀態
(Failed State)
5.放棄或中止狀態
(Aborted or Terminated State)
交易四大特性
1.單元性
(Atomicity)
交易過程的所有資料庫單元
操作視為同一項工作
全部執行完
通通不執行
(其中過程有錯)_
2.一致性
(Consistency)
交易之前和之後的資料一致。
:star:轉帳
3.隔離性
(Isolation)
指在執行多個交易時,不會影響到其他交易
4.永久性
(Durability)
將資料寫入資料庫(硬碟)
交易停止
2.交易失敗
中止交易
1.系統負載問題
2.死結(Deadlock)
資料庫管理系統送出放棄指令
放棄交易
1.條件錯誤
2.輸入錯誤資料
3.使用者送出放棄指令
(Abort或Rollback)
3.交易未完成
1.系統錯誤
2.硬體錯誤
3.當機
重新啟動後,其回復處理(Recovery)機制會從中斷點開始,重新執行交易至交易成功或失敗來結束交易的執行。
1.交易成功
正常結束交易的執行,交易狀態1~3
並行控制
三種問題
1.遺失更新
(Lost Update)
是指交易已經更新的資料
被另一個交易 :!:覆寫
同一個變數會被存放在
相同的記憶體空間中。
:checkered_flag:訂票
2.未確認交易相依
(Uncommitted Dependency)
讀取到的資料後來被還原
3.不一致分析
(Inconsistent Analysis)
不正確總合
(Incorrect Summary)
獨到的不是最新的值
:red_flag:讓多個交易可以在同一時間存取同一筆資料
排程是的衝突情況
都讀取資料:讀取資料並不會產生衝突。
一個讀取和一個寫入資料:可能產生衝突
都寫入資料:可能產生衝突。
並行控制的排程
1.循序性排程
(Serial Schedules)
2.可循序性排程
(Serializable Schedules)
先行圖
:check:沒有,迴圈滿足可循序性
:red_cross:有迴圈,不滿足可循序性
鎖定法
(Locking)
共享與互斥鎖定
(Shared/Exclusive Locks)
互斥鎖定
(Exclusive Lock)
共享鎖定
(Shared Lock)
是否相容
共 斥
共 :check: :red_cross:
斥 :red_cross: :red_cross:
不相容有衝突
1.兩個交易同時鎖定相同資料。
2.其中有一個鎖定是互斥鎖定
:checkered_flag:P53
二元鎖定
(Binary Locks)
鎖定
(Locked)
非鎖定
(Unlocked)
並行控制演算法
可循序性(Serializable)
可以保持資料的一致性