![第7章數(shù)據庫保護_第1頁](http://file4.renrendoc.com/view/d74f801a674909b2414296c894455ccb/d74f801a674909b2414296c894455ccb1.gif)
![第7章數(shù)據庫保護_第2頁](http://file4.renrendoc.com/view/d74f801a674909b2414296c894455ccb/d74f801a674909b2414296c894455ccb2.gif)
![第7章數(shù)據庫保護_第3頁](http://file4.renrendoc.com/view/d74f801a674909b2414296c894455ccb/d74f801a674909b2414296c894455ccb3.gif)
![第7章數(shù)據庫保護_第4頁](http://file4.renrendoc.com/view/d74f801a674909b2414296c894455ccb/d74f801a674909b2414296c894455ccb4.gif)
![第7章數(shù)據庫保護_第5頁](http://file4.renrendoc.com/view/d74f801a674909b2414296c894455ccb/d74f801a674909b2414296c894455ccb5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第7章數(shù)據庫保護完整性保護并發(fā)控制恢復7.1
Oracle數(shù)據庫的完整性保護數(shù)據庫完整性的方法:定義完整性約束—易定義、修改,用于業(yè)務規(guī)則集中的地方,系統(tǒng)自動維護數(shù)據庫觸發(fā)器—用于復雜的業(yè)務規(guī)則應用代碼—PL/SQL存儲過程Oracle數(shù)據庫的完整性定義完整性約束的語法:CREATE
TABLEALTER
TABLE單列約束—列一級定義多列約束—表一級定義Oracle數(shù)據庫的完整性ORACLE
完整性約束的四種狀態(tài):ENABLE
VALIDATE:原有數(shù)據和待插數(shù)據要滿足約束
ENABLE
NOVALIDATE:待插數(shù)據要滿足約束
DISABLE
VALIDATE:約束失效不檢查,但定義在字典中
DISABLE
NOVALIDATE:約束失效Oracle數(shù)據庫的完整性完整性約束檢查時間:IMMEDIATE:立即約束,每一條更新語句結束均檢查是否滿足約束條件,若違反則回退。DEFERRABLE INITIALLAY
DEFERRED:延遲約束,在一個事務提交時才檢查約束條件,如違反則回退整個事務。Oracle數(shù)據庫的完整性例:為EMP加外鍵約束,且在事務結束時檢查約束。SQL>ADD CONSTRAINT
EMP_FK
FORIEIGN
KEY(DEPTNO)
REFERENCE
DEPT(DEPTNO)DEFERRABLE
INITIALLY
DEFERRED;Oracle數(shù)據庫的完整性使完整性約束失效:SQL>ALTER
TABLE
EMP
DISABLEPRIMARY
KEY
CASCADE;使完整性約束生效:SQL>ALTER
TABLE
EMP
ENABLEVALADATE
CONSTRAINT
EMP_FK;表鎖住,不允許更新Oracle數(shù)據庫的完整性EXCEPTIONS表:找出違反約束的行,其ROWID插入到EXCEPTIONS表。SQL>
ALTER
TABLE
EMP
ENABLE
VALADATECONSTRAINT
EMP_FKEXCEPTIONS
INTO
SYSTEM.EXCEPTIONS;EXCEPTIONS(ROW_ID,OWNER,TABLE_NAME,CONSTRINT)Oracle數(shù)據庫的完整性一般創(chuàng)建表時經常裝入大量數(shù)據,最好先將完整性約束失效,裝入數(shù)據后,再使完整性約束生效。ORACLE數(shù)據庫的完整性表結構設計-3NF、完整性定義、視圖定義、索引定義等表空間設計-數(shù)據分類存儲權限分配與角色設計-安全控制(安全等級:C3,C2》B)變化是永恒的--所有的創(chuàng)建命令、權限分配命令分別寫入.SQL,以便系統(tǒng)開發(fā)與實施時使用7.2
并發(fā)控制對多用戶并發(fā)存取同一數(shù)據的操作加以控制并發(fā)控制是衡量一個DBMS性能的重要標志之一,DBMS必須提供并發(fā)控制機制事務事務是用戶定義的一個數(shù)據庫操作序列,這些操作要么全做,要么全不做,是一個不可分割的工作單位。事務是恢復和并發(fā)控制的基本單位事務(續(xù))事務的ACID特性:原子性(Atomicity)一致性(Consistency)隔離性(Isolation)持續(xù)性(Durability
)1.原子性事務是數(shù)據庫的邏輯工作單位事務中包括的諸操作要么都做,要么都不做2.一致性事務執(zhí)行的結果必須是使數(shù)據庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。一致性狀態(tài):數(shù)據庫中只包含成功事務提交的結果不一致狀態(tài):數(shù)據庫中包含失敗事務的結果一致性(續(xù))一致性與原子性是密切相關的。例:銀行轉帳:從帳號A中取出一萬元,存入帳號B。定義一個事務,該事務包括兩個操作第一個操作是從帳號A中減去一萬元第二個操作是向帳號B中加入一萬元這兩個操作要么全做,要么全不做全做或者全不做,數(shù)據庫都處于一致性狀態(tài)。3.隔離性一個事務的執(zhí)行不能被其他事務干擾一個事務內部的操作及使用的數(shù)據對其他并發(fā)事務是隔離的,并發(fā)執(zhí)行的各個事務之間不能互相干擾。4.持續(xù)性持續(xù)性也稱永久性(Permanence)一個事務一旦提交,它對數(shù)據庫中數(shù)據的改變就應該是永久性的。并發(fā)操作與數(shù)據的不一致性例:飛機訂票系統(tǒng)中的一個活動序列:甲售票員讀出某航班的機票余額A,設A=16乙售票員讀出同一航班的機票余額A,也為16甲售票點賣出一張機票,修改機票余額A←A-1, 所以A=15,把A寫回數(shù)據庫乙售票點也賣出一張機票,修改機票余額A←A-1, 所以A=15,把A寫回數(shù)據庫結果:賣出兩張機票,但數(shù)據庫中機票余額只減少1。這種丟失修改情況也稱為數(shù)據庫的不一致性。并發(fā)控制(續(xù))產生原因由甲乙兩個售票員并發(fā)操作引起甲事務的修改被丟失。因為第4步中乙事務修改A并寫回后覆蓋了甲事務的修改并發(fā)控制(續(xù))并發(fā)操作帶來的數(shù)據不一致性丟失修改不可重復讀
讀“臟”數(shù)據1.丟失修改事務1與事務2從數(shù)據庫中讀入同一數(shù)據并修改事務2的提交結果破壞了事務1提交的結果導致事務1的修改被丟失。圖三種數(shù)據不一致性T1T2①讀A=16②讀A=16③
A←A-1寫回A=15④A←A-1寫回A=15(a)
丟失修改2.不可重復讀事務1讀取數(shù)據之后,事務2執(zhí)行更新操作從而使事務1無法再現(xiàn)前一次讀取結果。圖三種數(shù)據不一致性(續(xù))T1T2①讀A=50讀B=100求和=150②③讀A=50讀B=200求和=250(驗算不對)讀B=100B←B*2寫回B=200(b)T1不可重復讀3.讀“臟”數(shù)據事務1修改某一數(shù)據,并將其寫回磁盤事務2讀取同一數(shù)據之后,事務1由于某種原因被撤消,這時事務1已修改過的數(shù)據恢復原值事務2讀到的數(shù)據就與數(shù)據庫中的數(shù)據不一致,是不正確的數(shù)據,又稱為“臟”數(shù)據。圖三種數(shù)據不一致性(續(xù))T1T2①讀C=100C←C*2寫回C②③
ROLLBACKC恢復為100讀C=200(c)
T2讀“臟”數(shù)據保證并發(fā)操作正確性保證并發(fā)操作正確性的方法封鎖:兩段鎖協(xié)議兩段鎖協(xié)議:指每個事務的執(zhí)行可以分為兩個階段:加鎖階段和解鎖階段。事務開始后就處于加鎖階段,一直到執(zhí)行ROLLBACK或COMMIT之前都是加鎖階段。ROLLBACK或COMMIT后使事務進入解鎖階段,即
DBMS釋放所有封鎖。封鎖封鎖就是事務T在對某個數(shù)據對象(例如表、記錄等)操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖。加鎖后事務T就對該數(shù)據對象有了一定的控制,在事務T釋放它的鎖之前,其它的事務不能更新此數(shù)據對象。封鎖類型DBMS通常提供了多種類型的封鎖。一個事務對某個數(shù)據對象加鎖后究竟擁有什么樣的控制是由封鎖的類型決定的?;痉怄i類型排它鎖(記為X鎖)共享鎖(記為S鎖)封鎖類型(續(xù))排它鎖(X鎖)排它鎖又稱為寫鎖。若事務T對數(shù)據對象A加上X鎖,則只允許T讀取和修改A,其它任何事務都不能再對A加任何類型的鎖,直到T釋放A上的鎖。封鎖類型(續(xù))共享鎖(S鎖)共享鎖又稱為讀鎖。若事務T對數(shù)據對象A加上S鎖,則其它事務只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。封鎖粒度X鎖和S鎖都是加在某一個數(shù)據對象上的。封鎖的對象可以是邏輯單元,也可以是物理單元。邏輯單元:屬性值、屬性值集合、元組、關系、索引項、整個索引、整個數(shù)據庫等物理單元:頁(數(shù)據頁或索引頁)、塊等封鎖粒度(續(xù))一般原則需要處理大量元組的用戶事務:以關系為封鎖單元;需要處理多個關系的大量元組的用戶事務:以數(shù)據庫為封鎖單位;只處理少量元組的用戶事務:以元組為封鎖單位封鎖協(xié)議封鎖協(xié)議?對數(shù)據對象加鎖時,需要約定的一些規(guī)則。何時申請X鎖或S鎖持鎖時間何時釋放兩段鎖協(xié)議可串行性是并行調度正確性的唯一準則,兩段鎖協(xié)議就是為保證并行調度可串行性而提供的封鎖協(xié)議。兩段鎖協(xié)議的內容在對任何數(shù)據進行讀、寫操作之前,事務首先要獲得對該數(shù)據的封鎖在釋放一個封鎖之后,事務不再獲得任何其他封鎖。兩段鎖協(xié)議(續(xù))并行執(zhí)行的所有事務均遵守兩段鎖協(xié)議,則對這些事務的所有并行調度策略都是可串行化的。所有遵守兩段鎖協(xié)議的事務,其并行執(zhí)行的結果一定是正確的。死鎖-封鎖帶來的問題什么是死鎖T1
T2Xlock
R1.....Xlock
R2.Xlock
R2
.等待
Xlock
R1等待
等待等待
等待.
.死鎖(續(xù))解決死鎖的兩類方法死鎖的預防死鎖的診斷與解除死鎖的預防(續(xù))一般預防死鎖的方法一次封鎖法順序封鎖法(1)一次封鎖法一次封鎖法要求每個事務必須一次將所有要使用的數(shù)據全部加鎖,否則就不能繼續(xù)執(zhí)行。一次封鎖法存在的問題:降低并發(fā)度擴大封鎖范圍一次就將以后要用到的全部數(shù)據加鎖,勢必擴大了封鎖的范圍,從而降低了系統(tǒng)的并發(fā)度。(2)順序封鎖法順序封鎖法是預先對數(shù)據對象規(guī)定一個封鎖順序,所有事務都按這個順序實行封鎖。順序封鎖法存在的問題維護成本高數(shù)據庫系統(tǒng)中可封鎖的數(shù)據對象極其眾多,并且隨數(shù)據的插入、刪除等操作而不斷地變化,要維護這樣多而且變化的資源的封鎖順序非常困難,成本很高。死鎖的預防(續(xù))結論在操作系統(tǒng)中廣為采用的預防死鎖的策略并不適合數(shù)據庫的特點DBMS在解決死鎖的問題上更普遍采用的是診斷并解除死鎖的方法2.死鎖的診斷與解除方法由DBMS的并發(fā)控制子系統(tǒng)定期檢測系統(tǒng)中是否存在死鎖,一旦檢測到死鎖,就設法解除。死鎖的診斷與解除(續(xù))檢測死鎖超時法如果一個事務的等待時間超過了規(guī)定的時限,就認為發(fā)生了死鎖。優(yōu)點:實現(xiàn)簡單缺點:有可能誤判死鎖時限若設置得太長,死鎖發(fā)生后不能及時發(fā)現(xiàn)死鎖的診斷與解除(續(xù))解除死鎖選擇一個處理死鎖代價最小的事務,將其撤消,釋放此事務持有的所有的鎖,使其它事務能繼續(xù)運行下去。7.3
恢復故障是不可避免的計算機硬件故障系統(tǒng)軟件和應用軟件的錯誤操作員的失誤惡意的破壞故障的影響輕:造成運行事務非正常中斷,影響數(shù)據庫中數(shù)據的正確性重:破壞數(shù)據庫,使數(shù)據庫中數(shù)據部分或全部丟失?;謴停ɡm(xù))數(shù)據庫管理系統(tǒng)對故障的對策DBMS提供了恢復子系統(tǒng),用來保證各種故障發(fā)生后,能把數(shù)據庫中的數(shù)據從錯誤狀態(tài)恢復到某種邏輯一致的狀態(tài)。數(shù)據庫系統(tǒng)所采用的恢復技術是否行之有效是衡量系統(tǒng)性能優(yōu)劣的重要指標。故障類型事務故障系統(tǒng)故障介質故障事務故障事務故障:某個事務在運行過程中由于種種原因未運行至正常終止點事務故障的常見原因:輸入數(shù)據有誤運算溢出違反了某些完整性限制某些應用程序出錯并行事務發(fā)生死鎖事務故障(續(xù))事務故障的恢復事務故障的恢復:事務撤消(UNDO)恢復程序在不影響其它事務運行的情況下,強行回滾(ROLLBACK)該事務,即清除該事務對數(shù)據庫的所有修改,使得這個事務象根本沒有啟動過一樣系統(tǒng)故障系統(tǒng)故障由于某種原因造成整個系統(tǒng)的正常運行突然停止,致使所有正在運行的事務都以非正常方式終止。發(fā)生系統(tǒng)故障時,內存中數(shù)據庫緩沖區(qū)的信息全部丟失,但存儲在外部存儲設備上的數(shù)據未受影響系統(tǒng)故障(續(xù))系統(tǒng)故障的常見原因:操作系統(tǒng)或DBMS代碼錯誤操作員操作失誤特定類型的硬件錯誤(如CPU故障)突然停電系統(tǒng)故障(續(xù))系統(tǒng)故障的恢復清除未完成事務對數(shù)據庫的所有修改如果DBMS無法確定哪些事務已更新過數(shù)據庫,則系統(tǒng)重新啟動后,恢復程序要強行撤消(UNDO)所有未完成事務,使這些事務象沒有運行過一樣。將已完成事務提交的結果寫入數(shù)據庫如果DBMS無法確定哪些事務的提交結果尚未寫入物理數(shù)據庫,則系統(tǒng)重新啟動后,恢復程序需要重做(REDO)所有已提交的事務。介質故障介質故障:硬件故障使存儲在外存中的數(shù)據部分丟失或全部丟失介質故障比前兩類故障的可能性小得多,但破壞性最大。介質故障(續(xù))介質故障的常見原因:硬件故障磁盤損壞磁頭碰撞操作系統(tǒng)的某種潛在錯誤瞬時強磁場干擾介質故障(續(xù))介質故障的恢復裝入數(shù)據庫發(fā)生介質故障前某個時刻的數(shù)據副本
重做自此時始的所有成功事務,將這些事務已提交的結果重新記入數(shù)據庫故障的種類小結數(shù)據庫系統(tǒng)中各類故障對數(shù)據庫的影響數(shù)據庫本身被破壞(介質故障)數(shù)據庫處于不一致狀態(tài)數(shù)據庫中包含了未完成事務對數(shù)據庫的修改(事務故障、系統(tǒng)故障)數(shù)據庫中丟失了已提交事務對數(shù)據庫的修改(系統(tǒng)故障)不同類型的故障應采用不同的恢復操作故障的種類小結(續(xù))恢復操作的基本原理:利用存儲在系統(tǒng)其它地方的冗余數(shù)據來重建數(shù)據庫中已經被破壞或已經不正確的那部分數(shù)據恢復的實現(xiàn)技術:一般一個大型數(shù)據庫產品,恢復子系統(tǒng)的代碼要占全部代碼的10%以上恢復的實現(xiàn)技術恢復機制涉及的關鍵問題如何建立冗余數(shù)據數(shù)據轉儲日志文件如何利用這些冗余數(shù)據實施數(shù)據庫恢復什么是轉儲轉儲是指DBA將整個數(shù)據庫復制到磁帶或另一個磁盤上保存起來的過程。這些備用的數(shù)據文本稱為后備副本或后援副本。轉儲的用途用途:供介質故障恢復時使用一旦系統(tǒng)發(fā)生介質故障,數(shù)據庫遭到破壞,可以將后備副本重新裝入,把數(shù)據庫恢復起來?;謴偷某潭戎匮b后備副本只能將DB恢復到轉儲時的狀態(tài)要想恢復到故障發(fā)生時的狀態(tài),必須重新運行自轉儲以后的所有更新事務轉儲方法靜態(tài)轉儲與動態(tài)轉儲海量轉儲與增量轉儲1.靜態(tài)轉儲與動態(tài)轉儲靜態(tài)轉儲在系統(tǒng)中無運行事務時進行的轉儲操作轉儲操作開始的時刻,數(shù)據庫處于一致性狀態(tài)轉儲期間不允許(或不存在)對數(shù)據庫的任何存取、修改活動靜態(tài)轉儲得到的一定是個數(shù)據一致性的副本靜態(tài)轉儲與動態(tài)轉儲(續(xù))靜態(tài)轉儲的優(yōu)點實現(xiàn)簡單靜態(tài)轉儲的缺點降低了數(shù)據庫的可用性轉儲必須等待用戶事務結束才能進行新的事務必須等待轉儲結束才能執(zhí)行靜態(tài)轉儲與動態(tài)轉儲(續(xù))利用靜態(tài)轉儲得到的副本進行故障恢復只需要把靜態(tài)轉儲得到的后備副本裝入,就能把數(shù)據庫恢復到轉儲時刻的正確狀態(tài)靜態(tài)轉儲與動態(tài)轉儲(續(xù))動態(tài)轉儲動態(tài)轉儲是指轉儲操作與用戶事務并發(fā)進行,轉儲期間允許對數(shù)據庫進行存取或修改。動態(tài)轉儲的優(yōu)點不用等待正在運行的用戶事務結束不會影響新事務的運行動態(tài)轉儲的缺點不能保證副本中的數(shù)據正確有效靜態(tài)轉儲與動態(tài)轉儲(續(xù))利用動態(tài)轉儲得到的副本進行故障恢復需要把動態(tài)轉儲期間各事務對數(shù)據庫的修改活動登記下來,建立日志文件后備副本加上日志文件才能把數(shù)據庫恢復到某一時刻的正確狀態(tài)2.海量轉儲與增量轉儲海量轉儲每次轉儲全部數(shù)據庫增量轉儲只轉儲上次轉儲后更新過的數(shù)據海量轉儲與增量轉儲比較從恢復角度看,使用海量轉儲得到的后備副本進行恢復往往更方便但如果數(shù)據庫很大,事務處理又十分頻繁,則增量
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 瓦屋面施工合同(9篇)
- 2025年保險經紀公司經紀人合同協(xié)議
- 2025年信陽土地租賃合同規(guī)定
- 2025年住宅購置合同代理人職責
- 2025年農村資源互助共享協(xié)議書
- 2025年激光合作目標項目提案報告模板
- 2025年毛毯項目規(guī)劃申請報告
- 2025年貓爬架項目申請報告
- 2025年礦用電氣設備項目申請報告模范
- 2025年優(yōu)化法律咨詢服務協(xié)議的
- 中華小廚神(教學設計)-五年級下冊勞動人教版1
- 水工隧洞施工組織設計方案
- 公路橋梁工程施工安全風險評估指南
- 善讀無字之書(2023年廣東中考語文試卷議論文閱讀題及答案)
- 2024中智集團招聘重要崗位高頻500題難、易錯點模擬試題附帶答案詳解
- 八年級美術下冊第1課文明之光省公開課一等獎新名師課獲獎課件
- GB/T 4706.30-2024家用和類似用途電器的安全第30部分:廚房機械的特殊要求
- 食品安全管理制度可打印【7】
- 2024年山東省東營市中考數(shù)學試題 (原卷版)
- 2024全國能源行業(yè)火力發(fā)電集控值班員理論知識技能競賽題庫(多選題)
- 2024年山東新華書店集團限公司臨沂市縣分公司招聘錄取人員(高頻重點提升專題訓練)共500題附帶答案詳解
評論
0/150
提交評論