華科數(shù)據(jù)庫課件_第1頁
華科數(shù)據(jù)庫課件_第2頁
華科數(shù)據(jù)庫課件_第3頁
華科數(shù)據(jù)庫課件_第4頁
華科數(shù)據(jù)庫課件_第5頁
已閱讀5頁,還剩259頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

數(shù)據(jù)庫技術與應用1第三篇系統(tǒng)篇第十章數(shù)據(jù)庫恢復技術第十一章并發(fā)控制第四章數(shù)據(jù)庫安全性第五章數(shù)據(jù)庫完整性數(shù)據(jù)庫技術與應用1第三篇系統(tǒng)篇數(shù)據(jù)庫技術與應用2第十章數(shù)據(jù)庫恢復技術10.1事務的基本概念10.2數(shù)據(jù)庫恢復概述10.3故障的種類10.4恢復的實現(xiàn)技術10.5恢復策略10.6具有檢查點的恢復技術10.7數(shù)據(jù)庫鏡像10.8Oracle的恢復技術10.9小結(jié)數(shù)據(jù)庫技術與應用2第十章數(shù)據(jù)庫數(shù)據(jù)庫技術與應用3銀行轉(zhuǎn)帳銀行轉(zhuǎn)帳:張三從帳號A中取出一萬元,存入帳號B。第一步:A賬號扣減1萬元;第二步:B賬號增加1萬元;問題:第一步完成后,突然停電,怎么辦?1萬元消失了,找誰去喊冤?

A=A-1BB=B+1A數(shù)據(jù)庫技術與應用3銀行轉(zhuǎn)帳銀行轉(zhuǎn)帳數(shù)據(jù)庫技術與應用4最后賬上只有14萬!蒼天呀!大地呀!同時,老婆在商場逛街,消費了2萬元

讀A=余額16萬

14萬←16萬–2萬寫回數(shù)據(jù)庫A=14張三辛苦打工,掙了3萬元,存入銀行;①A=余額16萬

③19萬←16萬+3萬

寫入數(shù)據(jù)庫A=19

④張三老婆張三數(shù)據(jù)庫技術與應用4最后賬上只有14數(shù)據(jù)庫技術與應用510.1事務的基本概念一、什么是事務二、如何定義事務三、事務的特性數(shù)據(jù)庫技術與應用510.1事務數(shù)據(jù)庫技術與應用6一、什么是事務事務(Transaction)是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全做,要么全不做,是一個不可分割的工作單位事務和程序是兩個概念在關系數(shù)據(jù)庫中,一個事務可以是一條SQL語句,一組SQL語句或整個程序一個應用程序通常包含多個事務事務是恢復和并發(fā)控制的基本單位數(shù)據(jù)庫技術與應用6一、什么是事務事數(shù)據(jù)庫技術與應用7二、如何定義事務顯式定義方式

BEGINTRANSACTIONBEGINTRANSACTIONSQL語句1SQL語句1

SQL語句2SQL語句2

。。。。。。。。。。

COMMITROLLBACK隱式方式當用戶沒有顯式地定義事務時,DBMS按缺省規(guī)定自動劃分事務數(shù)據(jù)庫技術與應用7二、如何定義事務數(shù)據(jù)庫技術與應用8事務結(jié)束COMMIT事務正常結(jié)束提交事務的所有操作(讀+更新)事務中所有對數(shù)據(jù)庫的更新永久生效ROLLBACK事務異常終止事務運行的過程中發(fā)生了故障,不能繼續(xù)執(zhí)行回滾事務的所有更新操作事務滾回到開始時的狀態(tài)數(shù)據(jù)庫技術與應用8事務結(jié)束COMM數(shù)據(jù)庫技術與應用9三、事務的特性(ACID特性)事務的ACID特性:原子性(Atomicity)一致性(Consistency)隔離性(Isolation)持續(xù)性(Durability)數(shù)據(jù)庫技術與應用9三、事務的特性(數(shù)據(jù)庫技術與應用101.原子性(Atomicity)事務是數(shù)據(jù)庫的邏輯工作單位事務中包括的諸操作要么都做,要么都不做數(shù)據(jù)庫技術與應用101.原子性(數(shù)據(jù)庫技術與應用112.一致性(Consistency)事務執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)一致性狀態(tài):數(shù)據(jù)庫中只包含成功事務提交的結(jié)果不一致狀態(tài):數(shù)據(jù)庫中包含失敗事務的結(jié)果數(shù)據(jù)庫技術與應用112.一致性(數(shù)據(jù)庫技術與應用12一致性與原子性銀行轉(zhuǎn)帳:從帳號A中取出一萬元,存入帳號B。定義一個事務,該事務包括兩個操作這兩個操作要么全做,要么全不做全做或者全不做,數(shù)據(jù)庫都處于一致性狀態(tài)。如果只做一個操作,數(shù)據(jù)庫就處于不一致性狀態(tài)。

B=B+1

A=A-1BA數(shù)據(jù)庫技術與應用12一致性與原子性數(shù)據(jù)庫技術與應用133.隔離性(Isolation)對并發(fā)執(zhí)行而言一個事務的執(zhí)行不能被其他事務干擾一個事務內(nèi)部的操作及使用的數(shù)據(jù)對其他并發(fā)事務是隔離的并發(fā)執(zhí)行的各個事務之間不能互相干擾數(shù)據(jù)庫技術與應用133.隔離性(數(shù)據(jù)庫技術與應用14T1的修改被T2覆蓋了!

讀A=16

A←A-3寫回A=13①讀A=16

③A←A-1

寫回A=15

④T2T1數(shù)據(jù)庫技術與應用14T1的修改被T數(shù)據(jù)庫技術與應用154.持續(xù)性(Durability)持續(xù)性也稱永久性(Permanence)一個事務一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應該是永久性的。接下來的其他操作或故障不應該對其執(zhí)行結(jié)果有任何影響。數(shù)據(jù)庫技術與應用154.持續(xù)性(數(shù)據(jù)庫技術與應用16事務的特性保證事務ACID特性是事務處理的任務破壞事務ACID特性的因素多個事務并行運行時,不同事務的操作交叉執(zhí)行事務在運行過程中被強行停止數(shù)據(jù)庫技術與應用16事務的特性保數(shù)據(jù)庫技術與應用17第十章數(shù)據(jù)庫恢復技術10.1事務的基本概念10.2數(shù)據(jù)庫恢復概述10.3故障的種類10.4恢復的實現(xiàn)技術10.5恢復策略10.6具有檢查點的恢復技術10.7數(shù)據(jù)庫鏡像10.8Oracle的恢復技術10.9小結(jié)數(shù)據(jù)庫技術與應用17第十章數(shù)據(jù)數(shù)據(jù)庫技術與應用1810.2數(shù)據(jù)庫恢復概述故障是不可避免的計算機硬件故障系統(tǒng)軟件和應用軟件的錯誤操作員的失誤惡意的破壞故障的影響運行事務非正常中斷破壞數(shù)據(jù)庫數(shù)據(jù)庫技術與應用1810.2數(shù)數(shù)據(jù)庫技術與應用19第十章數(shù)據(jù)庫恢復技術10.1事務的基本概念10.2數(shù)據(jù)庫恢復概述10.3故障的種類10.4恢復的實現(xiàn)技術10.5恢復策略10.6具有檢查點的恢復技術10.7數(shù)據(jù)庫鏡像10.8Oracle的恢復技術10.9小結(jié)數(shù)據(jù)庫技術與應用19第十章數(shù)據(jù)數(shù)據(jù)庫技術與應用20一、事務故障什么是事務故障某個事務在運行過程中由于種種原因未運行至正常終止點就夭折了事務故障的常見原因輸入數(shù)據(jù)有誤運算溢出違反了某些完整性限制某些應用程序出錯并行事務發(fā)生死鎖…數(shù)據(jù)庫技術與應用20一、事務故障什數(shù)據(jù)庫技術與應用21事務故障的恢復發(fā)生事務故障時,夭折的事務可能已把對數(shù)據(jù)庫的部分修改寫回磁盤事務故障的恢復:撤消事務(UNDO)強行回滾(ROLLBACK)該事務清除該事務對數(shù)據(jù)庫的所有修改,使得這個事務象根本沒有啟動過一樣數(shù)據(jù)庫技術與應用21事務故障的恢復數(shù)據(jù)庫技術與應用22二、系統(tǒng)故障什么是系統(tǒng)故障整個系統(tǒng)的正常運行突然被破壞所有正在運行的事務都非正常終止內(nèi)存中數(shù)據(jù)庫緩沖區(qū)的信息全部丟失外部存儲設備上的數(shù)據(jù)未受影響數(shù)據(jù)庫技術與應用22二、系統(tǒng)故障什數(shù)據(jù)庫技術與應用23系統(tǒng)故障的常見原因操作系統(tǒng)或DBMS代碼錯誤操作員操作失誤特定類型的硬件錯誤(如CPU故障)突然停電數(shù)據(jù)庫技術與應用23系統(tǒng)故障的常見數(shù)據(jù)庫技術與應用24系統(tǒng)故障的恢復

清除尚未完成的事務對數(shù)據(jù)庫的所有修改系統(tǒng)重新啟動時,恢復程序要強行撤消(UNDO)所有未完成事務將緩沖區(qū)中已完成事務提交的結(jié)果寫入數(shù)據(jù)庫系統(tǒng)重新啟動時,恢復程序需要重做(REDO)所有已提交的事務數(shù)據(jù)庫技術與應用24系統(tǒng)故障的恢復數(shù)據(jù)庫技術與應用2510.3故障的種類事務故障系統(tǒng)故障介質(zhì)故障數(shù)據(jù)庫技術與應用2510.3故數(shù)據(jù)庫技術與應用26三、介質(zhì)故障硬件故障使存儲在外存中的數(shù)據(jù)部分丟失或全部丟失介質(zhì)故障比前兩類故障的可能性小得多,但破壞性大得多數(shù)據(jù)庫技術與應用26三、介質(zhì)故障硬數(shù)據(jù)庫技術與應用27介質(zhì)故障的常見原因硬件故障磁盤損壞磁頭碰撞操作系統(tǒng)的某種潛在錯誤瞬時強磁場干擾數(shù)據(jù)庫技術與應用27介質(zhì)故障的常見數(shù)據(jù)庫技術與應用28介質(zhì)故障的恢復裝入數(shù)據(jù)庫發(fā)生介質(zhì)故障前某個時刻的數(shù)據(jù)副本重做自此時始的所有成功事務,將這些事務已提交的結(jié)果重新記入數(shù)據(jù)庫數(shù)據(jù)庫技術與應用28介質(zhì)故障的恢復數(shù)據(jù)庫技術與應用29恢復操作的基本原理恢復操作的基本原理:冗余利用存儲在系統(tǒng)其它地方的冗余數(shù)據(jù)來重建數(shù)據(jù)庫中已被破壞或不正確的那部分數(shù)據(jù)恢復的實現(xiàn)技術:復雜一個大型數(shù)據(jù)庫產(chǎn)品,恢復子系統(tǒng)的代碼要占全部代碼的10%以上數(shù)據(jù)庫技術與應用29恢復操作的基本數(shù)據(jù)庫技術與應用30第十章數(shù)據(jù)庫恢復技術10.1事務的基本概念10.2數(shù)據(jù)庫恢復概述10.3故障的種類10.4恢復的實現(xiàn)技術10.5恢復策略10.6具有檢查點的恢復技術10.7數(shù)據(jù)庫鏡像10.8Oracle的恢復技術10.9小結(jié)數(shù)據(jù)庫技術與應用30第十章數(shù)據(jù)數(shù)據(jù)庫技術與應用3110.4恢復的實現(xiàn)技術恢復機制涉及的關鍵問題1.如何建立冗余數(shù)據(jù)數(shù)據(jù)轉(zhuǎn)儲(backup)日志文件(logging)2.如何利用這些冗余數(shù)據(jù)實施數(shù)據(jù)庫恢復

數(shù)據(jù)庫技術與應用3110.4恢數(shù)據(jù)庫技術與應用32日志文件的內(nèi)容1.什么是日志文件日志文件(log)是用來記錄事務對數(shù)據(jù)庫的更新操作的文件2.日志文件的格式以記錄為單位的日志文件以數(shù)據(jù)塊為單位的日志文件數(shù)據(jù)庫技術與應用32日志文件的內(nèi)容數(shù)據(jù)庫技術與應用33日志文件的內(nèi)容(續(xù))3.日志文件內(nèi)容各個事務的開始標記(BEGINTRANSACTION)各個事務的結(jié)束標記(COMMIT或ROLLBACK)各個事務的所有更新操作與事務有關的內(nèi)部更新操作數(shù)據(jù)庫技術與應用33日志文件的內(nèi)容數(shù)據(jù)庫技術與應用3410.4.1數(shù)據(jù)轉(zhuǎn)儲一、什么是轉(zhuǎn)儲二、轉(zhuǎn)儲的用途三、轉(zhuǎn)儲方法數(shù)據(jù)庫技術與應用3410.4.1數(shù)據(jù)庫技術與應用35一、什么是轉(zhuǎn)儲轉(zhuǎn)儲是指DBA將整個數(shù)據(jù)庫復制到磁帶或另一個磁盤上保存起來的過程。這些備用的數(shù)據(jù)文本稱為后備副本或后援副本。數(shù)據(jù)庫技術與應用35一、什么是轉(zhuǎn)儲數(shù)據(jù)庫技術與應用36轉(zhuǎn)儲

故障發(fā)生點

轉(zhuǎn)儲

運行事務↓正常運行─┼───────┼─────────────

Ta

TbTf

重裝后備副本

重新運行事務恢復

─┼───────┴------------→數(shù)據(jù)庫技術與應用36轉(zhuǎn)儲數(shù)據(jù)庫技術與應用37三、轉(zhuǎn)儲方法1.靜態(tài)轉(zhuǎn)儲與動態(tài)轉(zhuǎn)儲2.海量轉(zhuǎn)儲與增量轉(zhuǎn)儲3.轉(zhuǎn)儲方法小結(jié)數(shù)據(jù)庫技術與應用37三、轉(zhuǎn)儲方法1數(shù)據(jù)庫技術與應用381.靜態(tài)轉(zhuǎn)儲在系統(tǒng)中無運行事務時進行轉(zhuǎn)儲轉(zhuǎn)儲開始時數(shù)據(jù)庫處于一致性狀態(tài)轉(zhuǎn)儲期間不允許對數(shù)據(jù)庫的任何存取、修改活動優(yōu)點:實現(xiàn)簡單缺點:降低了數(shù)據(jù)庫的可用性轉(zhuǎn)儲必須等用戶事務結(jié)束新的事務必須等轉(zhuǎn)儲結(jié)束數(shù)據(jù)庫技術與應用381.靜態(tài)轉(zhuǎn)儲在數(shù)據(jù)庫技術與應用39利用靜態(tài)轉(zhuǎn)儲副本進行恢復

故障發(fā)生點

靜態(tài)轉(zhuǎn)儲

運行事務↓正常運行─┼───────┼─────────────

Ta

TbTf

重裝后備副本

恢復

─┼───────┥數(shù)據(jù)庫技術與應用39利用靜態(tài)轉(zhuǎn)儲副數(shù)據(jù)庫技術與應用40動態(tài)轉(zhuǎn)儲轉(zhuǎn)儲操作與用戶事務并發(fā)進行轉(zhuǎn)儲期間允許對數(shù)據(jù)庫進行存取或修改優(yōu)點不用等待正在運行的用戶事務結(jié)束不會影響新事務的運行動態(tài)轉(zhuǎn)儲的缺點不能保證副本中的數(shù)據(jù)正確有效數(shù)據(jù)庫技術與應用40動態(tài)轉(zhuǎn)儲轉(zhuǎn)儲操數(shù)據(jù)庫技術與應用41動態(tài)轉(zhuǎn)儲利用動態(tài)轉(zhuǎn)儲得到的副本進行故障恢復需要把動態(tài)轉(zhuǎn)儲期間各事務對數(shù)據(jù)庫的修改活動登記下來,建立日志文件后備副本加上日志文件才能把數(shù)據(jù)庫恢復到某一時刻的正確狀態(tài)數(shù)據(jù)庫技術與應用41動態(tài)轉(zhuǎn)儲利用動數(shù)據(jù)庫技術與應用42利用動態(tài)轉(zhuǎn)儲副本進行恢復

運行事務

故障發(fā)生點

動態(tài)轉(zhuǎn)儲

運行事務↓正常運行─┼───────┼─────────────

Ta

TbTf重裝后備副本

利用日志文件恢復恢復

━╋━━━━┥數(shù)據(jù)庫技術與應用42利用動態(tài)轉(zhuǎn)儲副數(shù)據(jù)庫技術與應用43利用動態(tài)轉(zhuǎn)儲副本進行恢復

Ta

TbTf

動態(tài)轉(zhuǎn)儲

運行事務

故障發(fā)生點正常運行─┼───────┼─────────────登記日志文件登記新日志文件─────────┼─────────────

轉(zhuǎn)儲日志文件

重裝后備副本,然后利用轉(zhuǎn)儲的日志文件恢復恢復到一

━━━━━━┥致性狀態(tài)數(shù)據(jù)庫技術與應用43利用動態(tài)轉(zhuǎn)儲副數(shù)據(jù)庫技術與應用442.海量轉(zhuǎn)儲與增量轉(zhuǎn)儲海量轉(zhuǎn)儲:每次轉(zhuǎn)儲全部數(shù)據(jù)庫增量轉(zhuǎn)儲:只轉(zhuǎn)儲上次轉(zhuǎn)儲后更新過的數(shù)據(jù)海量轉(zhuǎn)儲與增量轉(zhuǎn)儲比較從恢復角度看,使用海量轉(zhuǎn)儲得到的后備副本進行恢復往往更方便但如果數(shù)據(jù)庫很大,事務處理又十分頻繁,則增量轉(zhuǎn)儲方式更實用更有效數(shù)據(jù)庫技術與應用442.海量轉(zhuǎn)儲與數(shù)據(jù)庫技術與應用453.轉(zhuǎn)儲方法小結(jié)轉(zhuǎn)儲方法分類

轉(zhuǎn)儲狀態(tài)動態(tài)轉(zhuǎn)儲靜態(tài)轉(zhuǎn)儲轉(zhuǎn)儲方式海量轉(zhuǎn)儲動態(tài)海量轉(zhuǎn)儲靜態(tài)海量轉(zhuǎn)儲增量轉(zhuǎn)儲動態(tài)增量轉(zhuǎn)儲靜態(tài)增量轉(zhuǎn)儲數(shù)據(jù)庫技術與應用453.轉(zhuǎn)儲方法小數(shù)據(jù)庫技術與應用46轉(zhuǎn)儲策略應定期進行數(shù)據(jù)轉(zhuǎn)儲,制作后備副本。但轉(zhuǎn)儲又是十分耗費時間和資源的,不能頻繁進行。DBA應該根據(jù)數(shù)據(jù)庫使用情況確定適當?shù)霓D(zhuǎn)儲周期和轉(zhuǎn)儲方法。例:每天晚上進行動態(tài)增量轉(zhuǎn)儲每周進行一次動態(tài)海量轉(zhuǎn)儲每月進行一次靜態(tài)海量轉(zhuǎn)儲數(shù)據(jù)庫技術與應用46轉(zhuǎn)儲策略應定期數(shù)據(jù)庫技術與應用4710.4恢復的實現(xiàn)技術10.4.1數(shù)據(jù)轉(zhuǎn)儲10.4.2登記日志文件數(shù)據(jù)庫技術與應用4710.4恢數(shù)據(jù)庫技術與應用48數(shù)據(jù)庫系統(tǒng)概論AnIntroductiontoDatabaseSystem第十一章并發(fā)控制數(shù)據(jù)庫技術與應用48數(shù)據(jù)庫系統(tǒng)概論數(shù)據(jù)庫技術與應用49第十一章并發(fā)控制11.1并發(fā)控制概述11.2封鎖11.3封鎖協(xié)議11.4活鎖和死鎖11.5并發(fā)調(diào)度的可串行性11.6兩段鎖協(xié)議11.7封鎖的粒度11.8Oracle的并發(fā)控制11.9小結(jié)數(shù)據(jù)庫技術與應用49第十一章并數(shù)據(jù)庫技術與應用50

并發(fā)控制概述多事務執(zhí)行方式(1)事務串行執(zhí)行每個時刻只有一個事務運行,其他事務必須等到這個事務結(jié)束以后方能運行不能充分利用系統(tǒng)資源,發(fā)揮數(shù)據(jù)庫共享資源的特點數(shù)據(jù)庫技術與應用50并發(fā)控制概述數(shù)據(jù)庫技術與應用51并發(fā)控制(續(xù))(2)交叉并發(fā)方式(interleavedconcurrency)事務的并行執(zhí)行是這些并行事務的并行操作輪流交叉運行是單處理機系統(tǒng)中的并發(fā)方式,能夠減少處理機的空閑時間,提高系統(tǒng)的效率數(shù)據(jù)庫技術與應用51并發(fā)控制(續(xù))數(shù)據(jù)庫技術與應用52并發(fā)控制(續(xù))(3)同時并發(fā)方式(simultaneousconcurrency)多處理機系統(tǒng)中,每個處理機可以運行一個事務,多個處理機可以同時運行多個事務,實現(xiàn)多個事務真正的并行運行最理想的并發(fā)方式,但受制于硬件環(huán)境更復雜的并發(fā)方式機制數(shù)據(jù)庫技術與應用52并發(fā)控制(續(xù))數(shù)據(jù)庫技術與應用53事務并發(fā)執(zhí)行帶來的問題可能會存取和存儲不正確的數(shù)據(jù),破壞事務的隔離性和數(shù)據(jù)庫的一致性DBMS必須提供并發(fā)控制機制并發(fā)控制機制是衡量一個DBMS性能的重要標志之一數(shù)據(jù)庫技術與應用53事務并發(fā)執(zhí)行帶數(shù)據(jù)庫技術與應用548.1并發(fā)控制概述并發(fā)控制機制的任務對并發(fā)操作進行正確調(diào)度保證事務的隔離性保證數(shù)據(jù)庫的一致性數(shù)據(jù)庫技術與應用548.1并發(fā)數(shù)據(jù)庫技術與應用55T1的修改被T2覆蓋了!

讀A=16

A←A-3寫回A=13①讀A=16

③A←A-1

寫回A=15

④事務T2事務T1數(shù)據(jù)不一致實例:飛機訂票系統(tǒng)數(shù)據(jù)庫技術與應用55T1的修改被T數(shù)據(jù)庫技術與應用56并發(fā)操作帶來的數(shù)據(jù)不一致性丟失修改(lostupdate)不可重復讀(non-repeatableread)讀“臟”數(shù)據(jù)(dirtyread)數(shù)據(jù)庫技術與應用56并發(fā)操作帶來的數(shù)據(jù)庫技術與應用571.丟失修改丟失修改是指事務1與事務2從數(shù)據(jù)庫中讀入同一數(shù)據(jù)并修改事務2的提交結(jié)果破壞了事務1提交的結(jié)果,導致事務1的修改被丟失。數(shù)據(jù)庫技術與應用571.丟失修改數(shù)據(jù)庫技術與應用58圖11.1三種數(shù)據(jù)不一致性T1T2①讀A=16

③A←A-1

寫回A=15

讀A=16

A←A-3寫回A=13(a)丟失修改數(shù)據(jù)庫技術與應用58圖11.1數(shù)據(jù)庫技術與應用592.不可重復讀不可重復讀是指事務1讀取數(shù)據(jù)后,事務2執(zhí)行更新操作,使事務1無法再現(xiàn)前一次讀取結(jié)果。數(shù)據(jù)庫技術與應用592.不可重復數(shù)據(jù)庫技術與應用60圖11.1三種數(shù)據(jù)不一致性(續(xù))

讀B=100B←B*2寫回B=200

讀A=50

讀B=100

求和=150②

③讀A=50

讀B=200

求和=250(驗算不對)T2T1(b)不可重復讀數(shù)據(jù)庫技術與應用60圖11.1數(shù)據(jù)庫技術與應用61三類不可重復讀事務1讀取某一數(shù)據(jù)后:1。事務2對其做了修改,當事務1再次讀該數(shù)據(jù)時,得到與前一次不同的值。2.事務2刪除了其中部分記錄,當事務1再次讀取數(shù)據(jù)時,發(fā)現(xiàn)某些記錄神密地消失了。3.事務2插入了一些記錄,當事務1再次按相同條件讀取數(shù)據(jù)時,發(fā)現(xiàn)多了一些記錄。后兩種不可重復讀有時也稱為幻影現(xiàn)象(phantomrow)數(shù)據(jù)庫技術與應用61三類不可重復讀數(shù)據(jù)庫技術與應用623.讀“臟”數(shù)據(jù)事務1修改某一數(shù)據(jù),并將其寫回磁盤事務2讀取同一數(shù)據(jù)后事務1由于某種原因被撤消,這時事務1已修改過的數(shù)據(jù)恢復原值事務2讀到的數(shù)據(jù)就與數(shù)據(jù)庫中的數(shù)據(jù)不一致,是不正確的數(shù)據(jù),又稱為“臟”數(shù)據(jù)。數(shù)據(jù)庫技術與應用623.讀“臟”數(shù)據(jù)庫技術與應用63圖11.1三種數(shù)據(jù)不一致性(續(xù))

讀C=200

①讀C=100C←C*2

寫回C②

③ROLLBACKC恢復為100T2T1(c)讀“臟”數(shù)據(jù)數(shù)據(jù)庫技術與應用63圖11.1數(shù)據(jù)庫技術與應用64第十一章并發(fā)控制11.1并發(fā)控制概述11.2封鎖11.3封鎖協(xié)議11.4活鎖和死鎖11.5并發(fā)調(diào)度的可串行性11.6兩段鎖協(xié)議11.7封鎖的粒度11.8Oracle的并發(fā)控制11.9小結(jié)數(shù)據(jù)庫技術與應用64第十一章并數(shù)據(jù)庫技術與應用6511.2封鎖一、什么是封鎖二、基本封鎖類型三、基本鎖的相容矩陣數(shù)據(jù)庫技術與應用6511.2封數(shù)據(jù)庫技術與應用66一、什么是封鎖封鎖就是事務T在對某個數(shù)據(jù)對象(例如表、記錄等)操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖加鎖后事務T就對該數(shù)據(jù)對象有了一定的控制,在事務T釋放它的鎖之前,其它的事務不能更新此數(shù)據(jù)對象。封鎖是實現(xiàn)并發(fā)控制的一個非常重要的技術數(shù)據(jù)庫技術與應用66一、什么是封鎖數(shù)據(jù)庫技術與應用6711.2封鎖一、什么是封鎖二、基本封鎖類型三、基本鎖的相容矩陣數(shù)據(jù)庫技術與應用6711.2封數(shù)據(jù)庫技術與應用68二、基本封鎖類型DBMS通常提供了多種類型的封鎖。一個事務對某個數(shù)據(jù)對象加鎖后究竟擁有什么樣的控制是由封鎖的類型決定的?;痉怄i類型排它鎖(eXclusivelock,簡記為X鎖)共享鎖(Sharelock,簡記為S鎖)數(shù)據(jù)庫技術與應用68二、基本封鎖類數(shù)據(jù)庫技術與應用69

排它鎖

排它鎖又稱為寫鎖若事務T對數(shù)據(jù)對象A加上X鎖,則只允許T讀取和修改A,其它任何事務都不能再對A加任何類型的鎖,直到T釋放A上的鎖數(shù)據(jù)庫技術與應用69

排它鎖

排它數(shù)據(jù)庫技術與應用70共享鎖共享鎖又稱為讀鎖若事務T對數(shù)據(jù)對象A加上S鎖,則其它事務只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖數(shù)據(jù)庫技術與應用70共享鎖共享鎖又數(shù)據(jù)庫技術與應用7111.2封鎖一、什么是封鎖二、基本封鎖類型三、基本鎖的相容矩陣數(shù)據(jù)庫技術與應用7111.2封數(shù)據(jù)庫技術與應用72三、鎖的相容矩陣Y=Yes,相容的請求N=No,不相容的請求

T1T2XS-XNNYSNYY-YYY數(shù)據(jù)庫技術與應用72三、鎖的相容矩數(shù)據(jù)庫技術與應用73第十一章并發(fā)控制11.1并發(fā)控制概述11.2封鎖11.3封鎖協(xié)議11.4活鎖和死鎖11.5并發(fā)調(diào)度的可串行性11.6兩段鎖協(xié)議11.7封鎖的粒度11.8Oracle的并發(fā)控制11.9小結(jié)數(shù)據(jù)庫技術與應用73第十一章并數(shù)據(jù)庫技術與應用7411.3封鎖協(xié)議在運用X鎖和S鎖對數(shù)據(jù)對象加鎖時,需要約定一些規(guī)則:封鎖協(xié)議(LockingProtocol)何時申請X鎖或S鎖持鎖時間、何時釋放不同的封鎖協(xié)議,在不同的程度上為并發(fā)操作的正確調(diào)度提供一定的保證常用的封鎖協(xié)議:三級封鎖協(xié)議數(shù)據(jù)庫技術與應用7411.3封數(shù)據(jù)庫技術與應用751級封鎖協(xié)議事務T在修改數(shù)據(jù)R之前必須先對其加X鎖,直到事務結(jié)束才釋放正常結(jié)束(COMMIT)非正常結(jié)束(ROLLBACK)1級封鎖協(xié)議可防止丟失修改在1級封鎖協(xié)議中,如果是讀數(shù)據(jù),不需要加鎖的,所以它不能保證可重復讀和不讀“臟”數(shù)據(jù)。數(shù)據(jù)庫技術與應用751級封鎖協(xié)議事數(shù)據(jù)庫技術與應用762級封鎖協(xié)議1級封鎖協(xié)議+事務T在讀取數(shù)據(jù)R前必須先加S鎖,讀完后即可釋放S鎖2級封鎖協(xié)議可以防止丟失修改和讀“臟”數(shù)據(jù)。在2級封鎖協(xié)議中,由于讀完數(shù)據(jù)后即可釋放S鎖,所以它不能保證可重復讀。數(shù)據(jù)庫技術與應用762級封鎖協(xié)議數(shù)據(jù)庫技術與應用773級封鎖協(xié)議1級封鎖協(xié)議+事務T在讀取數(shù)據(jù)R之前必須先對其加S鎖,直到事務結(jié)束才釋放3級封鎖協(xié)議可防止丟失修改、讀臟數(shù)據(jù)和不可重復讀。數(shù)據(jù)庫技術與應用773級封鎖協(xié)議數(shù)據(jù)庫技術與應用784.封鎖協(xié)議小結(jié)三級協(xié)議的主要區(qū)別什么操作需要申請封鎖何時釋放鎖(即持鎖時間)數(shù)據(jù)庫技術與應用784.封鎖協(xié)議小數(shù)據(jù)庫技術與應用79封鎖協(xié)議小結(jié)(續(xù))數(shù)據(jù)庫技術與應用79封鎖協(xié)議小結(jié)(數(shù)據(jù)庫技術與應用80第十一章并發(fā)控制11.1并發(fā)控制概述11.2封鎖11.3封鎖協(xié)議11.4活鎖和死鎖11.5并發(fā)調(diào)度的可串行性11.6兩段鎖協(xié)議11.7封鎖的粒度11.8Oracle的并發(fā)控制11.9小結(jié)數(shù)據(jù)庫技術與應用80第十一章并數(shù)據(jù)庫技術與應用8111.4活鎖和死鎖封鎖技術可以有效地解決并行操作的一致性問題,但也帶來一些新的問題死鎖數(shù)據(jù)庫技術與應用8111.4活數(shù)據(jù)庫技術與應用82采用先來先服務的策略:當多個事務請求封鎖同一數(shù)據(jù)對象時按請求封鎖的先后次序?qū)@些事務排隊該數(shù)據(jù)對象上的鎖一旦釋放,首先批準申請隊列中第一個事務獲得鎖。11.4.1活鎖,如何避免數(shù)據(jù)庫技術與應用82采用先來先服務數(shù)據(jù)庫技術與應用8311.4.2死鎖 T1T2

XlockR1...XlockR2等待等待等待...XlockR2..XlockR1等待等待.數(shù)據(jù)庫技術與應用8311.4.2數(shù)據(jù)庫技術與應用84

解決死鎖的方法兩類方法1.預防死鎖2.死鎖的診斷與解除數(shù)據(jù)庫技術與應用84

解決死鎖的方數(shù)據(jù)庫技術與應用851.死鎖的預防產(chǎn)生死鎖的原因是兩個或多個事務都已封鎖了一些數(shù)據(jù)對象,然后又都請求對已為其他事務封鎖的數(shù)據(jù)對象加鎖,從而出現(xiàn)死等待。預防死鎖的發(fā)生就是要破壞產(chǎn)生死鎖的條件數(shù)據(jù)庫技術與應用851.死鎖的預數(shù)據(jù)庫技術與應用86死鎖的預防(續(xù))預防死鎖的方法一次封鎖法順序封鎖法數(shù)據(jù)庫技術與應用86死鎖的預防(續(xù)數(shù)據(jù)庫技術與應用87(1)一次封鎖法要求每個事務必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行一次封鎖法存在的問題:降低并發(fā)度擴大封鎖范圍將以后要用到的全部數(shù)據(jù)加鎖,勢必擴大了封鎖的范圍,從而降低了系統(tǒng)的并發(fā)度數(shù)據(jù)庫技術與應用87(1)一次封鎖數(shù)據(jù)庫技術與應用88一次封鎖法(續(xù))難于事先精確確定封鎖對象數(shù)據(jù)庫中數(shù)據(jù)是不斷變化的,原來不要求封鎖的數(shù)據(jù),在執(zhí)行過程中可能會變成封鎖對象,所以很難事先精確地確定每個事務所要封鎖的數(shù)據(jù)對象解決方法:將事務在執(zhí)行過程中可能要封鎖的數(shù)據(jù)對象全部加鎖,這就進一步降低了并發(fā)度。數(shù)據(jù)庫技術與應用88一次封鎖法(續(xù)數(shù)據(jù)庫技術與應用89(2)順序封鎖法順序封鎖法是預先對數(shù)據(jù)對象規(guī)定一個封鎖順序,所有事務都按這個順序?qū)嵭蟹怄i。順序封鎖法存在的問題維護成本高數(shù)據(jù)庫系統(tǒng)中可封鎖的數(shù)據(jù)對象極其眾多,并且隨數(shù)據(jù)的插入、刪除等操作而不斷地變化,要維護這樣極多而且變化的資源的封鎖順序非常困難,成本很高數(shù)據(jù)庫技術與應用89(2)順序封鎖數(shù)據(jù)庫技術與應用90順序封鎖法(續(xù))難于實現(xiàn)事務的封鎖請求可以隨著事務的執(zhí)行而動態(tài)地決定,很難事先確定每一個事務要封鎖哪些對象,因此也就很難按規(guī)定的順序去施加封鎖。例:規(guī)定數(shù)據(jù)對象的封鎖順序為A,B,C,D,E。事務T3起初要求封鎖數(shù)據(jù)對象B,C,E,但當它封鎖了B,C后,才發(fā)現(xiàn)還需要封鎖A,這樣就破壞了封鎖順序.數(shù)據(jù)庫技術與應用90順序封鎖法(續(xù)數(shù)據(jù)庫技術與應用91死鎖的預防(續(xù))結(jié)論在操作系統(tǒng)中廣為采用的預防死鎖的策略并不很適合數(shù)據(jù)庫的特點DBMS在解決死鎖的問題上更普遍采用的是診斷并解除死鎖的方法數(shù)據(jù)庫技術與應用91死鎖的預防(續(xù)數(shù)據(jù)庫技術與應用922.死鎖的診斷與解除允許死鎖發(fā)生解除死鎖由DBMS的并發(fā)控制子系統(tǒng)定期檢測系統(tǒng)中是否存在死鎖一旦檢測到死鎖,就要設法解除數(shù)據(jù)庫技術與應用922.死鎖的診數(shù)據(jù)庫技術與應用93檢測死鎖:超時法如果一個事務的等待時間超過了規(guī)定的時限,就認為發(fā)生了死鎖優(yōu)點:實現(xiàn)簡單缺點有可能誤判死鎖時限若設置得太長,死鎖發(fā)生后不能及時發(fā)現(xiàn)數(shù)據(jù)庫技術與應用93檢測死鎖:超時數(shù)據(jù)庫技術與應用94死鎖的診斷與解除(續(xù))解除死鎖選擇一個處理死鎖代價最小的事務,將其撤消,釋放此事務持有的所有的鎖,使其它事務能繼續(xù)運行下去。數(shù)據(jù)庫技術與應用94死鎖的診斷與解數(shù)據(jù)庫技術與應用95數(shù)據(jù)庫系統(tǒng)概論AnIntroductiontoDatabaseSystem第四章數(shù)據(jù)庫安全性/8265033739131616數(shù)據(jù)庫技術與應用95數(shù)據(jù)庫系統(tǒng)概論數(shù)據(jù)庫技術與應用96第四章數(shù)據(jù)庫安全性

問題的提出數(shù)據(jù)庫的一大特點是數(shù)據(jù)可以共享但數(shù)據(jù)共享必然帶來數(shù)據(jù)庫的安全性問題數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)共享不能是無條件的共享例:軍事秘密、國家機密、新產(chǎn)品實驗數(shù)據(jù)、市場需求分析、市場營銷策略、銷售計劃、客戶檔案、醫(yī)療檔案、銀行儲蓄數(shù)據(jù)數(shù)據(jù)庫技術與應用96第四章數(shù)據(jù)數(shù)據(jù)庫技術與應用97數(shù)據(jù)庫安全性(續(xù))數(shù)據(jù)庫中數(shù)據(jù)的共享是在DBMS統(tǒng)一的嚴格的控制之下的共享,即只允許有合法使用權限的用戶訪問允許他存取的數(shù)據(jù)數(shù)據(jù)庫系統(tǒng)的安全保護措施是否有效是數(shù)據(jù)庫系統(tǒng)主要的性能指標之一數(shù)據(jù)庫技術與應用97數(shù)據(jù)庫安全性(數(shù)據(jù)庫技術與應用98數(shù)據(jù)庫安全性(續(xù))什么是數(shù)據(jù)庫的安全性數(shù)據(jù)庫的安全性是指保護數(shù)據(jù)庫,防止因用戶非法使用數(shù)據(jù)庫造成數(shù)據(jù)泄露、更改或破壞。什么是數(shù)據(jù)的保密數(shù)據(jù)保密是指用戶合法地訪問到機密數(shù)據(jù)后能否對這些數(shù)據(jù)保密。通過制訂法律道德準則和政策法規(guī)來保證。數(shù)據(jù)庫技術與應用98數(shù)據(jù)庫安全性(數(shù)據(jù)庫技術與應用99第四章數(shù)據(jù)庫安全性4.1計算機安全性概論4.2數(shù)據(jù)庫安全性控制4.3統(tǒng)計數(shù)據(jù)庫安全性4.4Oracle數(shù)據(jù)庫的安全性措施4.5小結(jié)數(shù)據(jù)庫技術與應用99第四章數(shù)據(jù)數(shù)據(jù)庫技術與應用1004.1計算機安全性概論4.1.1計算機系統(tǒng)的三類安全性問題

4.1.2可信計算機系統(tǒng)評測標準數(shù)據(jù)庫技術與應用1004.1計數(shù)據(jù)庫技術與應用1014.1.1計算機系統(tǒng)的三類安全性問題

什么是計算機系統(tǒng)安全性為計算機系統(tǒng)建立和采取的各種安全保護措施,以保護計算機系統(tǒng)中的硬件、軟件及數(shù)據(jù),防止其因偶然或惡意的原因使系統(tǒng)遭到破壞,數(shù)據(jù)遭到更改或泄露等。數(shù)據(jù)庫技術與應用1014.1.1數(shù)據(jù)庫技術與應用102計算機系統(tǒng)的三類安全性問題(續(xù))

三類計算機系統(tǒng)安全性問題技術安全類管理安全類政策法律類數(shù)據(jù)庫技術與應用102計算機系統(tǒng)的數(shù)據(jù)庫技術與應用103計算機系統(tǒng)的三類安全性問題(續(xù))

技術安全指計算機系統(tǒng)中采用具有一定安全性的硬件、軟件來實現(xiàn)對計算機系統(tǒng)及其所存數(shù)據(jù)的安全保護,當計算機系統(tǒng)受到無意或惡意的攻擊時仍能保證系統(tǒng)正常運行,保證系統(tǒng)內(nèi)的數(shù)據(jù)不增加、不丟失、不泄露。數(shù)據(jù)庫技術與應用103計算機系統(tǒng)的數(shù)據(jù)庫技術與應用104計算機系統(tǒng)的三類安全性問題(續(xù))

管理安全軟硬件意外故障、場地的意外事故、管理不善導致的計算機設備和數(shù)據(jù)介質(zhì)的物理破壞、丟失等安全問題數(shù)據(jù)庫技術與應用104計算機系統(tǒng)的數(shù)據(jù)庫技術與應用105計算機系統(tǒng)的三類安全性問題(續(xù))

政策法律類政府部門建立的有關計算機犯罪、數(shù)據(jù)安全保密的法律道德準則和政策法規(guī)、法令數(shù)據(jù)庫技術與應用105計算機系統(tǒng)的數(shù)據(jù)庫技術與應用106第四章數(shù)據(jù)庫安全性4.1計算機安全性概論4.2數(shù)據(jù)庫安全性控制4.3統(tǒng)計數(shù)據(jù)庫安全性4.4Oracle數(shù)據(jù)庫的安全性措施4.5小結(jié)數(shù)據(jù)庫技術與應用106第四章數(shù)數(shù)據(jù)庫技術與應用107數(shù)據(jù)庫安全性控制概述(續(xù))數(shù)據(jù)庫安全性控制的常用方法用戶標識和鑒定存取控制視圖審計密碼存儲數(shù)據(jù)庫技術與應用107數(shù)據(jù)庫安全性數(shù)據(jù)庫技術與應用1084.2數(shù)據(jù)庫安全性控制4.2.1數(shù)據(jù)庫安全性控制概述4.2.2用戶標識與鑒別4.2.3存取控制4.2.4自主存取控制方法4.2.5強制存取控制方法4.2.6視圖機制4.2.7審計4.2.8數(shù)據(jù)加密數(shù)據(jù)庫技術與應用1084.2數(shù)數(shù)據(jù)庫技術與應用1094.2.2用戶標識與鑒別用戶標識與鑒別(Identification&Authentication)系統(tǒng)提供的最外層安全保護措施數(shù)據(jù)庫技術與應用1094.2.2數(shù)據(jù)庫技術與應用1104.2.2用戶標識與鑒別基本方法系統(tǒng)提供一定的方式讓用戶標識自己的名字或身份;系統(tǒng)內(nèi)部記錄著所有合法用戶的標識;每次用戶要求進入系統(tǒng)時,由系統(tǒng)核對用戶提供的身份標識;通過鑒定后才提供機器使用權。用戶標識和鑒定可以重復多次數(shù)據(jù)庫技術與應用1104.2.2數(shù)據(jù)庫技術與應用1114.2數(shù)據(jù)庫安全性控制4.2.1數(shù)據(jù)庫安全性控制概述4.2.2用戶標識與鑒別4.2.3存取控制4.2.4自主存取控制方法4.2.5強制存取控制方法4.2.6視圖機制4.2.7審計4.2.8數(shù)據(jù)加密數(shù)據(jù)庫技術與應用1114.2數(shù)數(shù)據(jù)庫技術與應用1124.2.3存取控制存取控制機制的功能存取控制機制的組成定義存取權限檢查存取權限用戶權限定義和合法權檢查機制一起組成了DBMS的安全子系統(tǒng)數(shù)據(jù)庫技術與應用1124.2.3數(shù)據(jù)庫技術與應用113存取控制(續(xù))定義存取權限在數(shù)據(jù)庫系統(tǒng)中,為了保證用戶只能訪問他有權存取的數(shù)據(jù),必須預先對每個用戶定義存取權限。檢查存取權限對于通過鑒定獲得上機權的用戶(即合法用戶),系統(tǒng)根據(jù)他的存取權限定義對他的各種操作請求進行控制,確保他只執(zhí)行合法操作。數(shù)據(jù)庫技術與應用113存取控制(續(xù)數(shù)據(jù)庫技術與應用1144.2數(shù)據(jù)庫安全性控制4.2.1數(shù)據(jù)庫安全性控制概述4.2.2用戶標識與鑒別4.2.3存取控制4.2.4自主存取控制方法4.2.5強制存取控制方法4.2.6視圖機制4.2.7審計4.2.8數(shù)據(jù)加密數(shù)據(jù)庫技術與應用1144.2數(shù)數(shù)據(jù)庫技術與應用1154.2.4自主存取控制方法定義存取權限存取權限存取權限由兩個要素組成數(shù)據(jù)對象操作類型數(shù)據(jù)庫技術與應用1154.2.4數(shù)據(jù)庫技術與應用116自主存取控制方法(續(xù))關系系統(tǒng)中的存取權限類型

數(shù)據(jù)對象 操作類型模式 模式 建立、修改、刪除、檢索 外模式建立、修改、刪除、檢索 內(nèi)模式 建立、刪除、檢索數(shù)據(jù) 表 查找、插入、修改、刪除 屬性列 查找、插入、修改、刪除數(shù)據(jù)庫技術與應用116自主存取控制數(shù)據(jù)庫技術與應用1174.2數(shù)據(jù)庫安全性控制4.2.1數(shù)據(jù)庫安全性控制概述4.2.2用戶標識與鑒別4.2.3存取控制4.2.4自主存取控制方法4.2.5強制存取控制方法4.2.6視圖機制4.2.7審計4.2.8數(shù)據(jù)加密數(shù)據(jù)庫技術與應用1174.2數(shù)數(shù)據(jù)庫技術與應用1184.2.5強制存取控制方法什么是強制存取控制強制存取控制(MAC)是指系統(tǒng)為保證更高程度的安全性,按照TDI/TCSEC標準中安全策略的要求,所采取的強制存取檢查手段。MAC不是用戶能直接感知或進行控制的。MAC適用于對數(shù)據(jù)有嚴格而固定密級分類的部門軍事部門政府部門數(shù)據(jù)庫技術與應用1184.2.5數(shù)據(jù)庫技術與應用1194.2數(shù)據(jù)庫安全性控制4.2.1數(shù)據(jù)庫安全性控制概述4.2.2用戶標識與鑒別4.2.3存取控制4.2.4自主存取控制方法4.2.5強制存取控制方法4.2.6視圖機制4.2.7審計4.2.8數(shù)據(jù)加密數(shù)據(jù)庫技術與應用1194.2數(shù)數(shù)據(jù)庫技術與應用1204.2.6視圖機制視圖機制把要保密的數(shù)據(jù)對無權存取這些數(shù)據(jù)的用戶隱藏起來,視圖機制更主要的功能在于提供數(shù)據(jù)獨立性,其安全保護功能太不精細,往往遠不能達到應用系統(tǒng)的要求。數(shù)據(jù)庫技術與應用1204.2.6數(shù)據(jù)庫技術與應用121視圖機制(續(xù))視圖機制與授權機制配合使用:首先用視圖機制屏蔽掉一部分保密數(shù)據(jù)視圖上面再進一步定義存取權限間接實現(xiàn)了支持存取謂詞的用戶權限定義數(shù)據(jù)庫技術與應用121視圖機制(續(xù)數(shù)據(jù)庫技術與應用1224.2數(shù)據(jù)庫安全性控制4.2.1數(shù)據(jù)庫安全性控制概述4.2.2用戶標識與鑒別4.2.3存取控制4.2.4自主存取控制方法4.2.5強制存取控制方法4.2.6視圖機制4.2.7審計4.2.8數(shù)據(jù)加密數(shù)據(jù)庫技術與應用1224.2數(shù)數(shù)據(jù)庫技術與應用1234.2.7審計什么是審計啟用一個專用的審計日志(AuditLog)將用戶對數(shù)據(jù)庫的所有操作記錄在上面DBA可以利用審計日志中的追蹤信息找出非法存取數(shù)據(jù)的人C2以上安全級別的DBMS必須具有審計功能數(shù)據(jù)庫技術與應用1234.2.7數(shù)據(jù)庫技術與應用1244.2數(shù)據(jù)庫安全性控制4.2.1數(shù)據(jù)庫安全性控制概述4.2.2用戶標識與鑒別4.2.3存取控制4.2.4自主存取控制方法4.2.5強制存取控制方法4.2.6視圖機制4.2.7審計4.2.8數(shù)據(jù)加密數(shù)據(jù)庫技術與應用1244.2數(shù)數(shù)據(jù)庫技術與應用1254.2.8數(shù)據(jù)加密數(shù)據(jù)加密防止數(shù)據(jù)庫中數(shù)據(jù)在存儲和傳輸中失密的有效手段加密的基本思想根據(jù)一定的算法將原始數(shù)據(jù)(術語為明文,Plaintext)變換為不可直接識別的格式(術語為密文,Ciphertext)不知道解密算法的人無法獲知數(shù)據(jù)的內(nèi)容數(shù)據(jù)庫技術與應用1254.2.8數(shù)據(jù)庫技術與應用126數(shù)據(jù)加密(續(xù))加密方法

替換方法使用密鑰(EncryptionKey)將明文中的每一個字符轉(zhuǎn)換為密文中的一個字符置換方法將明文的字符按不同的順序重新排列混合方法美國1977年制定的官方加密標準:數(shù)據(jù)加密標準(DataEncryptionStandard,簡稱DES)數(shù)據(jù)庫技術與應用126數(shù)據(jù)加密(續(xù)數(shù)據(jù)庫技術與應用127數(shù)據(jù)加密(續(xù))DBMS中的數(shù)據(jù)加密有些數(shù)據(jù)庫產(chǎn)品提供了數(shù)據(jù)加密例行程序有些數(shù)據(jù)庫產(chǎn)品本身未提供加密程序,但提供了接口數(shù)據(jù)庫技術與應用127數(shù)據(jù)加密(續(xù)數(shù)據(jù)庫技術與應用128第五章數(shù)據(jù)庫安全性5.1數(shù)據(jù)庫完整性5.2完整性控制數(shù)據(jù)庫技術與應用128第五章數(shù)數(shù)據(jù)庫技術與應用129完整性約束條件數(shù)據(jù)庫的完整性指數(shù)據(jù)的正確性和相容性,完整性約束條件的作用對象可以是:關系:若干元組間、關系集合上以及關系之間的聯(lián)系的約束元組:元組中各字段間聯(lián)系的約束列:列類型、取值范圍、精度和排序等數(shù)據(jù)庫技術與應用129完整性約束條數(shù)據(jù)庫技術與應用130靜態(tài)約束、動態(tài)約束靜態(tài)約束:數(shù)據(jù)庫每一確定狀態(tài)時的數(shù)據(jù)對象應滿足的約束條件,它是反映數(shù)據(jù)庫狀態(tài)合理性的約束動態(tài)約束:數(shù)據(jù)庫從一種狀態(tài)轉(zhuǎn)變?yōu)榱硪环N狀態(tài)時,新、舊值之間所應滿足的約束條件,它反映數(shù)據(jù)庫狀態(tài)變遷的約束。數(shù)據(jù)庫技術與應用130靜態(tài)約束、動數(shù)據(jù)庫技術與應用131各種約束舉例靜態(tài)列級約束:成績?nèi)≈捣秶?~100靜態(tài)元組約束:訂貨關系中包含訂貨量和發(fā)貨量,發(fā)貨量不能夠大于訂貨量靜態(tài)關系約束:實體完整性、參照完整性動態(tài)列級約束:學生年齡只能增長動態(tài)元組約束:工資調(diào)整時新工資等于原工資+工齡×1.5動態(tài)關系約束:加在關系變化前后狀態(tài)上的限制條件,如事務一致性、原子性數(shù)據(jù)庫技術與應用131各種約束舉例數(shù)據(jù)庫技術與應用1325.2完整性控制DBMS完整性控制的三方面功能:定義功能:定義完整性約束的機制檢查功能:檢查用戶的操作請求是否違背完整性約束當發(fā)現(xiàn)操作請求違背完整性約束時,采取一定措施來保證完整性約束數(shù)據(jù)庫技術與應用1325.2完整數(shù)據(jù)庫技術與應用133第三篇系統(tǒng)篇第十章數(shù)據(jù)庫恢復技術第十一章并發(fā)控制第四章數(shù)據(jù)庫安全性第五章數(shù)據(jù)庫完整性數(shù)據(jù)庫技術與應用1第三篇系統(tǒng)篇數(shù)據(jù)庫技術與應用134第十章數(shù)據(jù)庫恢復技術10.1事務的基本概念10.2數(shù)據(jù)庫恢復概述10.3故障的種類10.4恢復的實現(xiàn)技術10.5恢復策略10.6具有檢查點的恢復技術10.7數(shù)據(jù)庫鏡像10.8Oracle的恢復技術10.9小結(jié)數(shù)據(jù)庫技術與應用2第十章數(shù)據(jù)庫數(shù)據(jù)庫技術與應用135銀行轉(zhuǎn)帳銀行轉(zhuǎn)帳:張三從帳號A中取出一萬元,存入帳號B。第一步:A賬號扣減1萬元;第二步:B賬號增加1萬元;問題:第一步完成后,突然停電,怎么辦?1萬元消失了,找誰去喊冤?

A=A-1BB=B+1A數(shù)據(jù)庫技術與應用3銀行轉(zhuǎn)帳銀行轉(zhuǎn)帳數(shù)據(jù)庫技術與應用136最后賬上只有14萬!蒼天呀!大地呀!同時,老婆在商場逛街,消費了2萬元

讀A=余額16萬

14萬←16萬–2萬寫回數(shù)據(jù)庫A=14張三辛苦打工,掙了3萬元,存入銀行;①A=余額16萬

③19萬←16萬+3萬

寫入數(shù)據(jù)庫A=19

④張三老婆張三數(shù)據(jù)庫技術與應用4最后賬上只有14數(shù)據(jù)庫技術與應用13710.1事務的基本概念一、什么是事務二、如何定義事務三、事務的特性數(shù)據(jù)庫技術與應用510.1事務數(shù)據(jù)庫技術與應用138一、什么是事務事務(Transaction)是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全做,要么全不做,是一個不可分割的工作單位事務和程序是兩個概念在關系數(shù)據(jù)庫中,一個事務可以是一條SQL語句,一組SQL語句或整個程序一個應用程序通常包含多個事務事務是恢復和并發(fā)控制的基本單位數(shù)據(jù)庫技術與應用6一、什么是事務事數(shù)據(jù)庫技術與應用139二、如何定義事務顯式定義方式

BEGINTRANSACTIONBEGINTRANSACTIONSQL語句1SQL語句1

SQL語句2SQL語句2

。。。。。。。。。。

COMMITROLLBACK隱式方式當用戶沒有顯式地定義事務時,DBMS按缺省規(guī)定自動劃分事務數(shù)據(jù)庫技術與應用7二、如何定義事務數(shù)據(jù)庫技術與應用140事務結(jié)束COMMIT事務正常結(jié)束提交事務的所有操作(讀+更新)事務中所有對數(shù)據(jù)庫的更新永久生效ROLLBACK事務異常終止事務運行的過程中發(fā)生了故障,不能繼續(xù)執(zhí)行回滾事務的所有更新操作事務滾回到開始時的狀態(tài)數(shù)據(jù)庫技術與應用8事務結(jié)束COMM數(shù)據(jù)庫技術與應用141三、事務的特性(ACID特性)事務的ACID特性:原子性(Atomicity)一致性(Consistency)隔離性(Isolation)持續(xù)性(Durability)數(shù)據(jù)庫技術與應用9三、事務的特性(數(shù)據(jù)庫技術與應用1421.原子性(Atomicity)事務是數(shù)據(jù)庫的邏輯工作單位事務中包括的諸操作要么都做,要么都不做數(shù)據(jù)庫技術與應用101.原子性(數(shù)據(jù)庫技術與應用1432.一致性(Consistency)事務執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)一致性狀態(tài):數(shù)據(jù)庫中只包含成功事務提交的結(jié)果不一致狀態(tài):數(shù)據(jù)庫中包含失敗事務的結(jié)果數(shù)據(jù)庫技術與應用112.一致性(數(shù)據(jù)庫技術與應用144一致性與原子性銀行轉(zhuǎn)帳:從帳號A中取出一萬元,存入帳號B。定義一個事務,該事務包括兩個操作這兩個操作要么全做,要么全不做全做或者全不做,數(shù)據(jù)庫都處于一致性狀態(tài)。如果只做一個操作,數(shù)據(jù)庫就處于不一致性狀態(tài)。

B=B+1

A=A-1BA數(shù)據(jù)庫技術與應用12一致性與原子性數(shù)據(jù)庫技術與應用1453.隔離性(Isolation)對并發(fā)執(zhí)行而言一個事務的執(zhí)行不能被其他事務干擾一個事務內(nèi)部的操作及使用的數(shù)據(jù)對其他并發(fā)事務是隔離的并發(fā)執(zhí)行的各個事務之間不能互相干擾數(shù)據(jù)庫技術與應用133.隔離性(數(shù)據(jù)庫技術與應用146T1的修改被T2覆蓋了!

讀A=16

A←A-3寫回A=13①讀A=16

③A←A-1

寫回A=15

④T2T1數(shù)據(jù)庫技術與應用14T1的修改被T數(shù)據(jù)庫技術與應用1474.持續(xù)性(Durability)持續(xù)性也稱永久性(Permanence)一個事務一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應該是永久性的。接下來的其他操作或故障不應該對其執(zhí)行結(jié)果有任何影響。數(shù)據(jù)庫技術與應用154.持續(xù)性(數(shù)據(jù)庫技術與應用148事務的特性保證事務ACID特性是事務處理的任務破壞事務ACID特性的因素多個事務并行運行時,不同事務的操作交叉執(zhí)行事務在運行過程中被強行停止數(shù)據(jù)庫技術與應用16事務的特性保數(shù)據(jù)庫技術與應用149第十章數(shù)據(jù)庫恢復技術10.1事務的基本概念10.2數(shù)據(jù)庫恢復概述10.3故障的種類10.4恢復的實現(xiàn)技術10.5恢復策略10.6具有檢查點的恢復技術10.7數(shù)據(jù)庫鏡像10.8Oracle的恢復技術10.9小結(jié)數(shù)據(jù)庫技術與應用17第十章數(shù)據(jù)數(shù)據(jù)庫技術與應用15010.2數(shù)據(jù)庫恢復概述故障是不可避免的計算機硬件故障系統(tǒng)軟件和應用軟件的錯誤操作員的失誤惡意的破壞故障的影響運行事務非正常中斷破壞數(shù)據(jù)庫數(shù)據(jù)庫技術與應用1810.2數(shù)數(shù)據(jù)庫技術與應用151第十章數(shù)據(jù)庫恢復技術10.1事務的基本概念10.2數(shù)據(jù)庫恢復概述10.3故障的種類10.4恢復的實現(xiàn)技術10.5恢復策略10.6具有檢查點的恢復技術10.7數(shù)據(jù)庫鏡像10.8Oracle的恢復技術10.9小結(jié)數(shù)據(jù)庫技術與應用19第十章數(shù)據(jù)數(shù)據(jù)庫技術與應用152一、事務故障什么是事務故障某個事務在運行過程中由于種種原因未運行至正常終止點就夭折了事務故障的常見原因輸入數(shù)據(jù)有誤運算溢出違反了某些完整性限制某些應用程序出錯并行事務發(fā)生死鎖…數(shù)據(jù)庫技術與應用20一、事務故障什數(shù)據(jù)庫技術與應用153事務故障的恢復發(fā)生事務故障時,夭折的事務可能已把對數(shù)據(jù)庫的部分修改寫回磁盤事務故障的恢復:撤消事務(UNDO)強行回滾(ROLLBACK)該事務清除該事務對數(shù)據(jù)庫的所有修改,使得這個事務象根本沒有啟動過一樣數(shù)據(jù)庫技術與應用21事務故障的恢復數(shù)據(jù)庫技術與應用154二、系統(tǒng)故障什么是系統(tǒng)故障整個系統(tǒng)的正常運行突然被破壞所有正在運行的事務都非正常終止內(nèi)存中數(shù)據(jù)庫緩沖區(qū)的信息全部丟失外部存儲設備上的數(shù)據(jù)未受影響數(shù)據(jù)庫技術與應用22二、系統(tǒng)故障什數(shù)據(jù)庫技術與應用155系統(tǒng)故障的常見原因操作系統(tǒng)或DBMS代碼錯誤操作員操作失誤特定類型的硬件錯誤(如CPU故障)突然停電數(shù)據(jù)庫技術與應用23系統(tǒng)故障的常見數(shù)據(jù)庫技術與應用156系統(tǒng)故障的恢復

清除尚未完成的事務對數(shù)據(jù)庫的所有修改系統(tǒng)重新啟動時,恢復程序要強行撤消(UNDO)所有未完成事務將緩沖區(qū)中已完成事務提交的結(jié)果寫入數(shù)據(jù)庫系統(tǒng)重新啟動時,恢復程序需要重做(REDO)所有已提交的事務數(shù)據(jù)庫技術與應用24系統(tǒng)故障的恢復數(shù)據(jù)庫技術與應用15710.3故障的種類事務故障系統(tǒng)故障介質(zhì)故障數(shù)據(jù)庫技術與應用2510.3故數(shù)據(jù)庫技術與應用158三、介質(zhì)故障硬件故障使存儲在外存中的數(shù)據(jù)部分丟失或全部丟失介質(zhì)故障比前兩類故障的可能性小得多,但破壞性大得多數(shù)據(jù)庫技術與應用26三、介質(zhì)故障硬數(shù)據(jù)庫技術與應用159介質(zhì)故障的常見原因硬件故障磁盤損壞磁頭碰撞操作系統(tǒng)的某種潛在錯誤瞬時強磁場干擾數(shù)據(jù)庫技術與應用27介質(zhì)故障的常見數(shù)據(jù)庫技術與應用160介質(zhì)故障的恢復裝入數(shù)據(jù)庫發(fā)生介質(zhì)故障前某個時刻的數(shù)據(jù)副本重做自此時始的所有成功事務,將這些事務已提交的結(jié)果重新記入數(shù)據(jù)庫數(shù)據(jù)庫技術與應用28介質(zhì)故障的恢復數(shù)據(jù)庫技術與應用161恢復操作的基本原理恢復操作的基本原理:冗余利用存儲在系統(tǒng)其它地方的冗余數(shù)據(jù)來重建數(shù)據(jù)庫中已被破壞或不正確的那部分數(shù)據(jù)恢復的實現(xiàn)技術:復雜一個大型數(shù)據(jù)庫產(chǎn)品,恢復子系統(tǒng)的代碼要占全部代碼的10%以上數(shù)據(jù)庫技術與應用29恢復操作的基本數(shù)據(jù)庫技術與應用162第十章數(shù)據(jù)庫恢復技術10.1事務的基本概念10.2數(shù)據(jù)庫恢復概述10.3故障的種類10.4恢復的實現(xiàn)技術10.5恢復策略10.6具有檢查點的恢復技術10.7數(shù)據(jù)庫鏡像10.8Oracle的恢復技術10.9小結(jié)數(shù)據(jù)庫技術與應用30第十章數(shù)據(jù)數(shù)據(jù)庫技術與應用16310.4恢復的實現(xiàn)技術恢復機制涉及的關鍵問題1.如何建立冗余數(shù)據(jù)數(shù)據(jù)轉(zhuǎn)儲(backup)日志文件(logging)2.如何利用這些冗余數(shù)據(jù)實施數(shù)據(jù)庫恢復

數(shù)據(jù)庫技術與應用3110.4恢數(shù)據(jù)庫技術與應用164日志文件的內(nèi)容1.什么是日志文件日志文件(log)是用來記錄事務對數(shù)據(jù)庫的更新操作的文件2.日志文件的格式以記錄為單位的日志文件以數(shù)據(jù)塊為單位的日志文件數(shù)據(jù)庫技術與應用32日志文件的內(nèi)容數(shù)據(jù)庫技術與應用165日志文件的內(nèi)容(續(xù))3.日志文件內(nèi)容各個事務的開始標記(BEGINTRAN

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論