库系统的基础观念课件_第1页
库系统的基础观念课件_第2页
库系统的基础观念课件_第3页
库系统的基础观念课件_第4页
库系统的基础观念课件_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、認識交易(transaction)的定義。了解交易與同時性控制的問題。了解資料庫系統處理交易與同時性控制的方法。 交易管理(transaction management)是什麼 ?同時性控制(concurrency control)是什麼 ?這是一個腦力激盪的園地!交易管理(transaction management)並行控制(concurrency control)復原(recovery) 交易(transaction)是資料庫裡頭很特別的觀念一個資料庫的交易可以看成是一連串針對資料進行的讀取與更新的作業交易可能是由使用者或是應用程式所啟動執行資料庫中的交易看起來可能像是一整個程式、程式的

2、一部分或是單一的指令 同時存取控制的程序管理資料庫的同時存取作業,確保同時進行的操作之間不會互相干擾(interfere)所謂的並行是指一項作業還沒完全完成就進行另一項作業假如把交易看成是一種邏輯上的作業單位的話,同時存取控制的目的就是要避免同時進行的交易互相干擾 (READ) 先取得含有資料項目的disk block的address,接著把disk block複製(copy)到主記憶體的buffer,最後把資料項目從buffer複製到程式變數(program variable)中。(WRITE) 先取得含有資料項目的disk block的address,接著把disk block複製(cop

3、y)到主記憶體的buffer,然後把程式變數複製到該buffer,最後把disk block存回磁碟。 交易可以看成是一連串的Read與Write 交易本身應該具有所謂的獨立性或孤立性(isolation) 交易應該具有所謂的單元性(Atomicity) 交易應該具有所謂的一致性(consistency) 資料庫系統要保障交易結果的正確性 電腦的失敗(computer failure) 系統錯誤(system error)交易執行發生例外(exception)狀況同時控制(concurrency control)的要求磁碟毀壞環境災難或實際設備發生問題begin_transaction : 表

4、示交易開始進行。read/write : 交易對資料庫進行讀(read)與寫(write)的作業。end_transaction : 表示交易結束,但是可能還沒有確認(commit)。commit : 確定交易成功地完成了 ! 造成的改變不會被取消(undone) 。rollback/abort : 表示交易沒有成功,造成的改變必須取消(undone)。 start_transaction, T : 表示交易T開始執行。write_item, T, X, old_value, new_value : 交易T將資料庫的資料X從原來的old_value更新為new_value。read_item,

5、 T, X : 交易T讀取資料庫的資料Xcommit, T : 交易T成功執行完畢,其效應已經永久地儲存到資料庫中。abort, T : 交易T被取消(aborted) 。暫時停止所有交易的進行。將所有被更新過的main memory buffer強制寫入(force-writing)磁碟中。將checkpoint記錄寫入log,通時把log強制寫入(force-writing)磁碟中。繼續開始執行交易。兩個操作屬於不同的交易。兩個操作用到(access)相同的資料。其中的一個操作是對資料進行寫入(write) 。 result equivalentconflict equivalent vi

6、ew equivalent資料的鎖定(locking)時間戳記 (timestamp)多版同時控制(multiversion concurrency control) 資料鎖(lock)是與資料項目相關的變數(variable) ,用來描述資料本身與操作之間的相關性以及目前的狀態資料庫中的資料項目都有一個對應的lock,用來控制多個交易對於資料的同時存取二元鎖(binary lock)有兩種狀態 : locked與unlocked,也可以分別用1與0來表示當某個資料項目的lock值是1時表示該資料項目目前無法被存取,當某個資料項目的lock值是0時則代表該資料項目可以被存取 DBMS會為交易建

7、立一個時間戳記 (timestamp) ,用來辨識交易通常timestamp的值是以系統開始處理交易的順序來決定的,所以也可以看成是一個交易T的開始執行時間,以TS(T)來表示一般可以運用計數器(counter)或是系統的時間來產生timestamp我們可以利用timestamp來安排交易執行的順序,讓這樣安排出來的schedule有serializable的特性,這也稱為所謂的timestamp ordering 多版同時控制會保存資料多個版本的值,當有交易需要存取資料時,會在維持schedule的serializability的前提下選擇適當的版本對於read的操作來說,讀取目前的值可能會違反規則,但是讀取之前的值就不會有影響write的操作則需要連同原來的值也保存起來 在分散式的資料庫系統中,所有執行一個交易T的節點必須對於T

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论