T2-德明财经科技大学!.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
T2-德明财经科技大学!.ppt

Chapter 16 交易 Transaction;;現今社會的交易都改成買賣關係,也就是以金錢來換取貨物 在交易的過程當,『一手交錢,一手交貨』,已經道出了『交易』的意義 兩者的交付關係缺一不可,否則就不能稱為一個完整的交易 [狀況一] A君在時間t1將購買貨物之費用先行交付給B君 B君於時間t2點收到,並隔一段時間後,於時間點t3將貨品交付給A君 完成整個交易動作 [狀況二] A君已將金錢付於B君 B君因為某種原因下,無法順利將貨品交付,付出金錢的A君,勢必要將金錢取回 不能成功完成的交易,回復到交易開始之前的最原始狀態,也就是彼此互不交付任何東西的狀況;交錢;支付現金;由ATM提款的工作程序 輸入密碼、提領金額 傳遞資訊至伺服器端 (網路傳遞資訊) 動作:提領、金額:3000元 帳戶餘額 =帳戶餘額 – 3000 (伺服器端計算) 錯誤檢查:例如餘額是否足夠 傳遞資訊至ATM端 (網路傳遞資訊) 吐出金額:3000元 ATM將錢放至出鈔口 列印明細表 Q: 請問哪邊可能出錯?出錯後怎麼辦?;現實的交易觀念都是透過人的交易行為 如果是透過電腦系統的交易,可能會因為突發事件而導致交易的中斷,造成資料的不正確性,那又該如何處理呢? 例如某君要將A帳戶轉出3,000元至B帳戶 由A帳戶先行扣除3,000元後,再將金額轉入B帳戶 如果在A帳戶完成扣款動作當下,突然停電,導致B帳戶無法正確地入帳 該君是否就白白損失該筆金額呢? 或是在電力恢復正常之後,將前半段完成的動作取消,並還原到使用者尚未轉帳前的狀況?;A 帳戶扣款;單元性(Atomicity) 不論其中包括多少個,或多少種不同操作的一個交易,應該都被視為一個最小的處理單位,且不可再被切割 當一個交易開始處理之後,應該要完整且正確地執行完成,否則就應該將其所有操作取消,還原到最原始未開始處理前的情形 一致性的保留(Consistency Preservation) 在交易進行前,資料庫內的資料狀態彼此應該是一致性 在交易進行後,資料庫內的資料狀態應該也要保留此一致性,不應該在交易後破壞資料的一致性 獨立性(Isolation) 永久性(Durability or Permanency);單元性(Atomicity) 一致性的保留(Consistency Preservation) 獨立性(Isolation) 無論電腦系統是如何執行,對於任何一個交易而言,在進行時,每一個交易應該具有獨立性,也就是交易進行中,彼此不應該影響執行的結果 永久性(Durability or Permanency) 當一個交易進行完成也被確認(committed)之後,所有資料項目應該永久地被記錄在資料庫中 不應該隨著時間或任何狀況導致其資料改變 除非下一次的交易進行改變;交易執行時可能的錯誤;Read(X)或是簡單表示成r(X) 從資料庫中讀取一個資料項目X,存入相同的區域變數(Local Variable)名稱為X Write(X)或是簡單表示成w(X) 將區域變數(Local Variable)名稱為X,寫入資料庫的資料項目X 此操作有可能是新增、刪除或修改等其中之一;一個交易皆可包括多個Read及Write的不同存取操作在其中 每一個『交易』(Transaction)的表示方式皆會以Ti來表示之,下標i代表不同交易的編號;時間;;;;;;使用Lock的機制解決並行運作可能的錯誤 也是作業系統常用的技巧 類型 『獨佔模式』 『二元鎖定』 (Binary Locks) 『分享模式』 『共享/互斥鎖定』(Shared/Exclusive Locks) 或稱為『讀/寫鎖定』(Read/Write Locks);二元鎖定(Binary Locks)的狀態情形只會有兩種 『鎖定』 『非鎖定』 任何一個資料項目X,皆會結合一個,也僅會結合一個鎖定狀態值 二元鎖定的操作中,主要可分為兩種操作 如果要將資料項目X鎖定,則使用lock(X)將資料項目X的鎖定狀態設為『鎖定』狀態 如果要將資料項目X由鎖定狀態轉為『非鎖定』狀態,則使用unlock(X)來解除鎖定,也就是將資料項目X釋放出給其他交易鎖定後使用;;任何一個交易T中,在對資料項目X執行讀取Read(X)操作或寫入Write(X)操作之前,必須先執行鎖定操作lock(X) 任何一個交易T中,在對資料項目X完成所有的讀取Read(X)操作和寫入Write(X)操作之後,必須要執行解除鎖定指令unlock(X) 如果一個交易T已經對資料項目X鎖定,則不可再執行一次的鎖定操作lock(X),也就是不可以對同個資料項目執行兩次或兩次以上的鎖定 除非交易T已經對資料項目X鎖定,否則不可以執行解鎖操作unlock(X);優點 在實作上很容易達成,只需要兩種基本指令

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档