版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第六章數(shù)據(jù)庫保護(hù)主要內(nèi)容:事務(wù)的概念并發(fā)控制數(shù)據(jù)庫完整性數(shù)據(jù)庫安全性數(shù)據(jù)庫恢復(fù)第一節(jié)事務(wù)的概念事務(wù)(Transaction)是數(shù)據(jù)庫恢復(fù)與并發(fā)控制的基本單位。所謂事務(wù),是一個操作序列,這些操作要么都執(zhí)行,要么都不執(zhí)行,是一個不可分割的工作單位。例如,在銀行轉(zhuǎn)賬工作中,先從一個賬號取款,然后向另一個賬號存款,這兩個操作要么都執(zhí)行,要么都不執(zhí)行。所以,這樣兩個操作應(yīng)該看成一個事務(wù)。事務(wù)是數(shù)據(jù)庫維護(hù)數(shù)據(jù)一致性的單位,在每個事務(wù)結(jié)束時,都能保持?jǐn)?shù)據(jù)一致性。第一節(jié)事務(wù)的概念具體到RDBMS中,事務(wù)可以是一條或一組SQL語句。SQL語言提供了以下的事務(wù)相關(guān)的定義語句:(1)BEGIN
TRANSACTION定義事務(wù)的開始;(2)COMMIT
TRANSACTION定義事務(wù)的結(jié)束,即提交事務(wù),具體是將事務(wù)對數(shù)據(jù)庫的更改永久寫入磁盤中;(3)ROLLBACK
TRANSACTION定義回滾操作,將事務(wù)對數(shù)據(jù)庫所做的所有更改全部還原,數(shù)據(jù)庫返回到事務(wù)開始執(zhí)行前的狀態(tài)。第一節(jié)事務(wù)的概念事務(wù)包含四個特性,分別是(Atomicity)、一致性(Consistency)、隔離性(Isolation),以及持久性(Durability),這些性質(zhì)又稱為事務(wù)的ACID特性。原子性:是指事務(wù)包含的多個操作是一個不可分割的整體,這些操作要么全部成功,要么全部失敗。事務(wù)如果執(zhí)行成功則其中所有的操作結(jié)構(gòu)都必須應(yīng)用到數(shù)據(jù)庫,如果執(zhí)行失敗則其中的任一操作都不能對數(shù)據(jù)庫有任何影響。第一節(jié)事務(wù)的概念一致性:是指事務(wù)執(zhí)行的結(jié)果必須使數(shù)據(jù)庫從一個一致性狀態(tài)變換到另一個一致性狀態(tài),也就是說一個事務(wù)執(zhí)行之前和執(zhí)行之后數(shù)據(jù)庫都必須處于一致性狀態(tài)。仍然用轉(zhuǎn)賬來舉例,假設(shè)用戶A和用戶B的存款總數(shù)一共是5000元,那么不管A和B之間如何進(jìn)行轉(zhuǎn)賬操作,轉(zhuǎn)賬對應(yīng)的事務(wù)結(jié)束后兩個用戶的存款總數(shù)應(yīng)該還是5000元,這就是事務(wù)的一致性。第一節(jié)事務(wù)的概念隔離性:當(dāng)多個用戶并發(fā)訪問數(shù)據(jù)庫時,一個事務(wù)的執(zhí)行不能被其它事務(wù)所干擾。比如操作同一張表時,數(shù)據(jù)庫為每一個用戶開啟的事務(wù),不能被其他事務(wù)的操作所干擾,多個并發(fā)事務(wù)之間要相互隔離。簡單的說,就是達(dá)到如下效果:對于任意兩個并發(fā)的事務(wù)T1和T2,對事務(wù)T1來說,T2要么在T1開始之前就已經(jīng)結(jié)束,要么在T1結(jié)束之后才開始。對事務(wù)T2來說也是如此,這樣每個事務(wù)在執(zhí)行時都感覺不到其它事務(wù)的執(zhí)行。第一節(jié)事務(wù)的概念持久性:是指一個事務(wù)一旦被提交了,那么對數(shù)據(jù)庫中的數(shù)據(jù)的改變就是永久的,即便是在以后數(shù)據(jù)庫系統(tǒng)遇到故障的情況下也不會改變或丟失事務(wù)提交的結(jié)果。在日常運(yùn)行過程中,事務(wù)是數(shù)據(jù)庫系統(tǒng)的基本工作單元,因此保證事務(wù)的ACID特性是DBMS的重要任務(wù)??赡芷茐倪@些事務(wù)特性的因素包括:(1)務(wù)正常運(yùn)行過程中,由于故障、惡意攻擊等原因使得事務(wù)運(yùn)行意外終止;(2)事多用戶并發(fā)訪問數(shù)據(jù)庫時,多個事務(wù)交叉運(yùn)行。第二節(jié)事務(wù)的并發(fā)控制數(shù)據(jù)庫是一個共享資源,可以提供多個用戶使用。串行執(zhí)行時,每個時刻只有一個用戶程序運(yùn)行,執(zhí)行對數(shù)據(jù)庫的存取。一個用戶程序的操作可能涉及數(shù)據(jù)的計算、存取和I/O等,單個操作執(zhí)行期間,與該操作無關(guān)的數(shù)據(jù)庫系統(tǒng)資源將處于閑置狀態(tài)。為了充分利用數(shù)據(jù)庫資源,發(fā)揮數(shù)據(jù)庫共享資源的特點(diǎn),應(yīng)該允許多個用戶同時訪問數(shù)據(jù)庫,稱為并發(fā)訪問。第二節(jié)事務(wù)的并發(fā)控制并發(fā)執(zhí)行的問題在銀行系統(tǒng)中的一個活動序列如下:①甲用戶查詢某賬戶余額,得到的結(jié)果是余額為1000元;②乙用戶在同一時間也查詢該賬戶余額(假設(shè)甲、乙兩人共同擁有該賬戶),得到的結(jié)果也是余額為1000元;③甲用戶從賬戶中取走500元,這時賬戶余額更新為500元,并寫回數(shù)據(jù)庫;④乙用戶同時也從賬戶中取走500元,這時由于乙用戶之前已經(jīng)讀出的余額是1000元,因此賬戶余額更新為500元,并寫回數(shù)據(jù)庫。上述操作的結(jié)果是甲、乙兩人從同一個賬戶一共取出了1000元,但賬戶余額仍然顯示為500元。第二節(jié)事務(wù)的并發(fā)控制這種情況稱為數(shù)據(jù)庫的不一致性。這種不一致性是由甲、乙兩人并發(fā)操作引起的。在并發(fā)操作情況下,對甲、乙兩個事務(wù)操作序列的調(diào)度是隨機(jī)的。若按上面的調(diào)度序列行,甲事務(wù)對數(shù)據(jù)庫的修改就丟失了。這是由于最后乙事務(wù)修改賬戶余額并寫回數(shù)據(jù)庫,覆蓋了甲事務(wù)的修改。并發(fā)操作帶來的數(shù)據(jù)庫不一致性可以分為4類:丟失更新、臟讀、不可重復(fù)讀和幻象讀,上例屬于其中的丟失更新,只是并發(fā)問題的一種。第二節(jié)事務(wù)的并發(fā)控制丟失更新當(dāng)兩個或多個事務(wù)操作同一數(shù)據(jù),并且基于最初查詢的值更新該數(shù)據(jù)時,就會發(fā)生丟失更新問題。臟讀并發(fā)執(zhí)行的兩個事務(wù)中,事務(wù)1讀取了尚未提交的事務(wù)2寫入數(shù)據(jù)庫的數(shù)據(jù),當(dāng)事務(wù)2由于某種原因進(jìn)行了回滾,撤銷了對數(shù)據(jù)的修改,則事務(wù)1讀取的就是不正確的數(shù)據(jù),稱為臟讀。例如當(dāng)T1、T2兩個事務(wù)并發(fā)執(zhí)行時,T1從賬戶中轉(zhuǎn)走500元,這時T2讀取賬戶余額為500元,但T1在轉(zhuǎn)賬到另一賬戶時發(fā)
生了錯誤,事務(wù)回滾,原有賬戶余額恢復(fù)為1000元,這時T2讀取的余額就是錯誤的。第二節(jié)事務(wù)的并發(fā)控制不可重復(fù)讀一個事務(wù)重新讀取前面讀取過的數(shù)據(jù)時,該數(shù)據(jù)已經(jīng)被另一個事務(wù)修改過,因此無法再現(xiàn)前一次讀取的結(jié)果,稱為不可重復(fù)讀。例如當(dāng)T1、T2兩個事務(wù)并發(fā)執(zhí)行時,T1查詢賬戶余額為1000元,這時T2從賬戶中轉(zhuǎn)走500元,當(dāng)T1再次查詢賬戶余額時,得到的賬戶余額就變成了500元。第二節(jié)事務(wù)的并發(fā)控制幻象讀幻象讀是不可重復(fù)讀的特例,是指一個事務(wù)重新讀取前面讀取過的記錄集合時,另一個事務(wù)向該數(shù)據(jù)集合中添加或刪除了某些記錄。例如當(dāng)T1、T2兩個事務(wù)并發(fā)執(zhí)行時,T1查詢本月交易記錄明細(xì),明細(xì)中共有10條記錄,這時T2進(jìn)行了轉(zhuǎn)賬操作,則增加了一條交易記錄,當(dāng)T1再次查詢本月交易記錄明細(xì)時,就會發(fā)現(xiàn)多了一條記錄。第二節(jié)事務(wù)的并發(fā)控制(a)丟失修改T1T2T1T2①讀余額為1000元③取款500余額為500元②讀余額為1000元④取款500①取款500余額為500元③事務(wù)回滾余額為1000元②讀余額為500元余額為500元(b)臟讀T2T1①讀余額為1000元②取款500余額為500元③讀余額為500元(c)不可重復(fù)讀T2T1①查交易明細(xì)共10條記錄②轉(zhuǎn)賬
增加1條記錄③查交易明細(xì)共11條記錄(d)幻象讀第二節(jié)事務(wù)的并發(fā)控制(2)封鎖技術(shù)產(chǎn)生上述問題的主要原因是并發(fā)操作破壞了事務(wù)的隔離性,這時需要進(jìn)行并發(fā)控制。封鎖是事務(wù)并發(fā)控制的一個非常重要的技術(shù)。所謂封鎖就是一個事務(wù)在對某些數(shù)據(jù)對象進(jìn)行操作之前,先向系統(tǒng)發(fā)出請求,對其上鎖。上鎖后該事務(wù)就對這些數(shù)據(jù)庫對象有了一定的控制,在事務(wù)釋放申請的鎖之前,其它事務(wù)不能訪問此數(shù)據(jù)對象。第二節(jié)事務(wù)的并發(fā)控制封鎖類型事務(wù)對某個數(shù)據(jù)對象加鎖后如何對其進(jìn)行控制是由封鎖類型決定的。基本的封鎖類型有兩種:排他鎖(eXclusivelock,簡記為X鎖)和共享鎖(Share
lock簡記為S鎖)。排他鎖又稱為寫鎖。若事務(wù)T對數(shù)據(jù)對象A加上X鎖,則只允許T讀取和修改A,其它任何事務(wù)都不能再對A加任何類型的鎖,直到T釋放A上的X鎖。共享鎖又稱為讀鎖。若事務(wù)T對數(shù)據(jù)對象A加上S鎖,則其他事務(wù)只能再對A加S鎖,而不能加X鎖,直到T釋放A上的鎖。第二節(jié)事務(wù)的并發(fā)控制封鎖粒度X鎖和S鎖都是加在某一個數(shù)據(jù)對象上的。封鎖的對象可以是邏輯單元,也可以是物理單元。例如,在關(guān)系數(shù)據(jù)庫中,封鎖對象可以是屬性值、屬性值集合、元組、關(guān)系、索引項(xiàng)、整個索引、整個數(shù)據(jù)庫等邏輯單元;也可以是頁(數(shù)據(jù)頁或索引頁)、塊等物理單元。封鎖對象可以很大,比如對整個數(shù)據(jù)庫加鎖,也可以很小,比如只對某個屬性值加鎖。封鎖對象的大小稱為封鎖的粒度(granularity)。第二節(jié)事務(wù)的并發(fā)控制封鎖粒度與系統(tǒng)的并發(fā)度和并發(fā)控制的開銷密切相關(guān)。封鎖的粒度越大,系統(tǒng)中能夠被封鎖的對象就越少,并發(fā)度也就越小,但同時系統(tǒng)開銷也越小;相反,封鎖的粒度越小,系統(tǒng)中能夠被封鎖的對象就越多,并發(fā)度越高,但系統(tǒng)開銷也就越大。一般說來,需要處理大量元組的用戶事務(wù)可以以關(guān)系為封鎖單元;需要處理多個關(guān)系的大量元組的用戶事務(wù)可以以數(shù)據(jù)庫為封鎖單位;而對于一個處理少量元組的用戶事務(wù),可以以元組為封鎖單位以提高并發(fā)度。第二節(jié)事務(wù)的并發(fā)控制封鎖協(xié)議封鎖的目的是為了保證能夠正確地調(diào)度并發(fā)操作。為此,在運(yùn)用X鎖和S鎖對一定粒度的數(shù)據(jù)對象加鎖時,還需要約定一些規(guī)則。例如,應(yīng)何時申請X鎖或S鎖、何時釋放等,這些規(guī)則稱為封鎖協(xié)議(locking
protocol)。第二節(jié)事務(wù)的并發(fā)控制三級封鎖協(xié)議對并發(fā)操作的不正確調(diào)度可能會帶來四種數(shù)據(jù)不一致性:丟失或覆蓋更新、臟讀、不可重復(fù)讀和幻象讀。三級封鎖協(xié)議分別在不同程度上解決了這一問題。一級封鎖協(xié)議:事務(wù)T在修改數(shù)據(jù)R之前必須先對其加X鎖,直到事務(wù)結(jié)束才釋放。事務(wù)結(jié)束包括正常提交和故障回滾。一級封鎖協(xié)議可以防止丟失修改問題,并保證事務(wù)T是可以恢復(fù)的。第二節(jié)事務(wù)的并發(fā)控制(a)丟失修改T1T2T1T2①讀余額為1000元③取款500余額為500元②讀余額為1000元④取款500①取款500余額為500元③事務(wù)回滾余額為1000元②讀余額為500元余額為500元(b)臟讀T2T1①讀余額為1000元②取款500余額為500元③讀余額為500元(c)不可重復(fù)讀T2T1①查交易明細(xì)共10條記錄②轉(zhuǎn)賬
增加1條記錄③查交易明細(xì)共11條記錄(d)幻象讀第二節(jié)事務(wù)的并發(fā)控制在一級封鎖協(xié)議中,如果僅僅是讀數(shù)據(jù)不對其進(jìn)行修改,是不需要加鎖的,所以它不能防止不可重復(fù)讀和臟讀。二級封鎖協(xié)議:在一級封鎖協(xié)議的基礎(chǔ)上,事務(wù)T在讀取數(shù)據(jù)對象A之前必須先對其加S鎖,讀完后立即釋放S鎖。二級封鎖協(xié)議除了可以防止丟失更新,還可進(jìn)一步防止臟讀。第二節(jié)事務(wù)的并發(fā)控制(a)丟失修改T1T2T1T2①讀余額為1000元③取款500余額為500元②讀余額為1000元④取款500①取款500余額為500元③事務(wù)回滾余額為1000元②讀余額為500元余額為500元(b)臟讀T2T1①讀余額為1000元②取款500余額為500元③讀余額為500元(c)不可重復(fù)讀T2T1①查交易明細(xì)共10條記錄②轉(zhuǎn)賬
增加1條記錄③查交易明細(xì)共11條記錄(d)幻象讀第二節(jié)事務(wù)的并發(fā)控制在二級封鎖協(xié)議中,由于讀完數(shù)據(jù)后立即釋放S鎖,所以它不能避免不可重復(fù)讀問題。三級封鎖協(xié)議:在一級封鎖協(xié)議的基礎(chǔ)上,事務(wù)T在讀取數(shù)據(jù)對象A之前必須先對其加S鎖,直到事務(wù)結(jié)束才釋放。三級封鎖協(xié)議除了防止丟失更新和讀臟數(shù)據(jù)外,還進(jìn)一步防止了不可重復(fù)讀和幻象讀。第二節(jié)事務(wù)的并發(fā)控制(a)丟失修改T1T2T1T2①讀余額為1000元③取款500余額為500元②讀余額為1000元④取款500①取款500余額為500元③事務(wù)回滾余額為1000元②讀余額為500元余額為500元(b)臟讀T2T1①讀余額為1000元②取款500余額為500元③讀余額為500元(c)不可重復(fù)讀T2T1①查交易明細(xì)共10條記錄②轉(zhuǎn)賬
增加1條記錄③查交易明細(xì)共11條記錄(d)幻象讀第二節(jié)事務(wù)的并發(fā)控制兩段封鎖協(xié)議數(shù)據(jù)庫系統(tǒng)對并發(fā)事務(wù)中并發(fā)操作的調(diào)度是隨機(jī)的,不同的調(diào)度可能會產(chǎn)生不同的結(jié)果。在計算機(jī)中,多個事務(wù)的并發(fā)執(zhí)行是正確的,當(dāng)且僅當(dāng)其結(jié)果與按某一次序串行地執(zhí)行它們時的結(jié)果相同,我們稱這種調(diào)度策略為可串行化(Serializable)調(diào)度??纱谢遣⑿姓{(diào)度正確性的唯一準(zhǔn)則,兩段鎖(two-phase
locking,簡稱2PL)協(xié)議是為保證并行調(diào)度可串行化而提供的封鎖協(xié)議。第二節(jié)事務(wù)的并發(fā)控制兩段封鎖協(xié)議規(guī)定:①
在對任何數(shù)據(jù)進(jìn)行讀、寫操作之前,事務(wù)首先要獲得對該數(shù)據(jù)的封鎖;②
在釋放一個封鎖之后,事務(wù)不再獲得任何其它封鎖。所謂“兩段”鎖的含義是,事務(wù)分為兩個階段,第一階段是獲得封鎖,也稱為擴(kuò)展階段,即只能申請鎖,不能釋放鎖。第二階段是釋放封鎖,也稱為收縮階段,即只能釋放鎖,不能申請鎖。第二節(jié)事務(wù)的并發(fā)控制例如,事務(wù)T1的封鎖序列是:Slock
A...
Slock
B…
Xlock
C…
Unlock
B…
Unlock
A…Unlock
C;事務(wù)T2的封鎖序列是:Slock
A...
Unlock
A…
Slock
B…
Xlock
C…
Unlock
C…Unlock
B;顯然,T1在擴(kuò)展階段申請了兩個S鎖和一個X鎖,在收縮階段將這些所全部釋放,因此遵守兩段封鎖協(xié)議,而T2在擴(kuò)展階段釋放了一個S鎖,因此破壞了兩段封鎖協(xié)議的規(guī)定。第二節(jié)事務(wù)的并發(fā)控制活鎖與死鎖活鎖:事務(wù)T1封鎖了數(shù)據(jù)R,事務(wù)T2又請求封鎖R,于是T2等待。T3也請求封鎖R,當(dāng)T1釋放了R上的封鎖之后系統(tǒng)首先批準(zhǔn)了T3的請求,T2仍然等待。然后T4又請求封鎖R,當(dāng)
T3釋放了R上的封鎖之后系統(tǒng)又批準(zhǔn)了T4的請求,...,T2有可能永遠(yuǎn)等待,這是活鎖的例子。事務(wù)T1封鎖了數(shù)據(jù)R1,T2封鎖了數(shù)據(jù)R2,然后T1又請求封鎖R2,因T2已封鎖了R2,于是T1等待T2釋放R2上的鎖。接著T2又申請封鎖R1,因T1已封鎖了R1,T2也只能等待T1釋放R1上的鎖。因此兩事務(wù)將永遠(yuǎn)等待,這是死鎖的例子。第三節(jié)數(shù)據(jù)庫完整性數(shù)據(jù)庫完整性(DatabaseIntegrity)是指數(shù)據(jù)庫中數(shù)據(jù)在邏輯上的一致性、正確性、有效性和相容性。數(shù)據(jù)庫完整性由各種各樣的完整性約束來保證,完整性約束保證合法用戶對數(shù)據(jù)庫進(jìn)行修改時不會對數(shù)據(jù)造成意外破壞。實(shí)體完整性實(shí)體完整性在SQL語句的CREATE
TABLE中用PRIMARYKEY關(guān)鍵字定義。如果是單個屬性構(gòu)成主碼,則可以將PRIMARYKEY用于列級約束或者表級約束。如果主碼由多個屬性構(gòu)成,則PRIMARY
KEY必須用于表級約束。第三節(jié)數(shù)據(jù)庫完整性在使用PRIMARY
KEY定義了關(guān)系的主碼后,DBMS就按照實(shí)體完整性的定義自動進(jìn)行檢查,如果插入一條元組時其主碼的值為空或者不唯一,則拒絕插入。為了避免每次插入元組時,都在數(shù)據(jù)庫中掃描所有數(shù)據(jù),一般會在主碼上建立索引,通過查找索引來確定插入元組的主碼值是否唯一。第三節(jié)數(shù)據(jù)庫完整性(2)參照完整性參照完整性在SQL語句的CREATE
TABLE中用FOREIGNKEY關(guān)鍵字定義哪些屬性為外碼,用REFERENCES關(guān)鍵字定義外碼參照了哪些關(guān)系的主碼。由于參照參照被關(guān)破系壞操時作,完整性涉及到多個被要參區(qū)照分關(guān)破系壞操原作因關(guān)系,因此當(dāng)該完整性約束條件是違由約參處照理關(guān)系還是被參照關(guān)系引插入起元的組,并根無據(jù)具體情況采取不拒同絕違插約入處理措施。修改外碼值無拒絕修改無刪除元組拒絕刪除/級聯(lián)刪除/設(shè)置為空值無修改主碼值拒絕修改/級聯(lián)修改/設(shè)置為空值第三節(jié)數(shù)據(jù)庫完整性(3)用戶定義完整性用戶定義完整性在SQL語句的CREATETABLE中用以下三種關(guān)鍵字來定義屬性上的約束條件:①
非空約束NOT
NULL;②
唯一性約束UNIQUE;③
檢查約束CHECK(檢查屬性值是否滿足某一布爾型表達(dá)式)。當(dāng)用戶插入或修改元組時破壞了上述三類約束條件時,DBMS就拒絕執(zhí)行這些操作。第三節(jié)數(shù)據(jù)庫完整性(4)斷言除了上述的幾種約束以外,還有一種全局性的約束,稱為斷言。斷言是用于一個或多個表的CHECK約束,需要在表定
義之外獨(dú)立創(chuàng)建。例如,不允許余額小于零的賬戶存在,斷言如下:CREATE
ASSERTION
assl
CHECK
(NOT
EXISTS
(SELECT
*
FROM
accountWHERE
balance<0));該斷言建立后,其定義存放在數(shù)據(jù)字典中。當(dāng)銀行賬戶信息變動時,如果插入一條余額小于零的賬戶,或者將某個賬戶的余額修改為小于零,則拒絕更新,并給出錯誤信息。第三節(jié)數(shù)據(jù)庫完整性(5)完整性約束命名子句除了上述的完整性約束條件之外,SQL語言還在CREATETABLE語句中提供了完整性約束命名子句CONSTRAINT,用于命名完整性約束條件,其語法結(jié)構(gòu)如下:CONSTRAINT<完整性約束條件名>[PRIMARY
KEY約束表達(dá)式|
FOREIGN
KEY約束表達(dá)式|
CHECK約束表達(dá)式]建立完整性約束后,可以使用ALTERTABLE語句來修改或刪除這些約束條件。ALTER
TABLE
R
DROP
CONSTRAINT
C1;ALTER
TABLE
R
ADD
CONSTRAINT
C1
CHECK
(SnoBETWEEN
20000
AND
30000);第三節(jié)數(shù)據(jù)庫完整性(6)觸發(fā)器觸發(fā)器是一種特殊類型的存儲過程,當(dāng)數(shù)據(jù)庫更新時,相應(yīng)的觸發(fā)器就會自動執(zhí)行,從而確保對數(shù)據(jù)的操作符合所定義的完整性規(guī)則。為了設(shè)置觸發(fā)器,主要是滿足兩個要求,一是告訴數(shù)據(jù)庫系統(tǒng),觸發(fā)器什么時候被觸發(fā),即觸發(fā)條件,二是觸發(fā)后完成什么動作,即執(zhí)行的內(nèi)容。當(dāng)不再需要一個觸發(fā)器時,還需要對其進(jìn)行刪除。第三節(jié)數(shù)據(jù)庫完整性SQL語言使用CREATETRIGGER語句創(chuàng)建觸發(fā)器,其語句格式為:CREATE
TRIGGER<觸發(fā)器名>{BEFORE
|
AFTER}<觸發(fā)事件>ON<表名>FOR
EACH
{ROW
|
STATEMENT}[WHEN<觸發(fā)條件>]AS<觸發(fā)動作>;其中,只有表的創(chuàng)建者才能在表上創(chuàng)建觸發(fā)器,并且每個表上允許創(chuàng)建的觸發(fā)器數(shù)量是一定的,不能無限創(chuàng)建。第三節(jié)數(shù)據(jù)庫完整性觸發(fā)器分為語句級觸發(fā)器和行級觸發(fā)器。語句級觸發(fā)器(FOREACH
ROW)是由相應(yīng)的SQL語句執(zhí)行進(jìn)行觸發(fā),而行級觸發(fā)器(FOR
EACH
STATEMENT)則是由一行中的數(shù)據(jù)被更新進(jìn)行觸發(fā)。<觸發(fā)動作>既可以是一個PL/SQL語句塊,也可以是調(diào)用一個存儲過程。對于行級觸發(fā)器來說,可以在<觸發(fā)動作>通過
OLD和NEW關(guān)鍵字引用數(shù)據(jù)更新前和更新后的值。第三節(jié)數(shù)據(jù)庫完整性例6.1為emploee關(guān)系定義一條行級觸發(fā)器,要求用戶年齡在20以下時,自動改為20,語句如下:CREATE
TRIGGER
Update_ageBEFORE
INSERT
OR
UPDATE
ON
emploeeFOR
EACH
ROWASBEGINIF
NEW.age
<
20
THENNEW.age
=
20;END
IF;END;第三節(jié)數(shù)據(jù)庫完整性當(dāng)一個表上存在多個觸發(fā)器時,其執(zhí)行一條SQL語句的過程是:先觸發(fā)并執(zhí)行相關(guān)的BEFORE觸發(fā)器,然后執(zhí)行該SQL語句,最后觸發(fā)并執(zhí)行相關(guān)的AFTER觸發(fā)器。對于多個同類觸發(fā)器,先創(chuàng)建則先執(zhí)行。刪除觸發(fā)器的語句格式為:DROP
TRIGGER<觸發(fā)器名>ON<表名>;第四節(jié)數(shù)據(jù)庫安全性數(shù)據(jù)庫安全屬于計算機(jī)安全研究領(lǐng)域的一個分支,包括數(shù)據(jù)庫系統(tǒng)運(yùn)行安全和數(shù)據(jù)庫系統(tǒng)信息安全兩個部分。通用安全標(biāo)準(zhǔn)美國國防部于1983年推出了歷史上第一個計算機(jī)安全評價標(biāo)準(zhǔn)——《可信計算機(jī)系統(tǒng)評測準(zhǔn)則》(Trusted
ComputerSystem
Evaluation
Criteria,TCSEC)。在此基礎(chǔ)上,美國政府同加拿大及歐共體又進(jìn)一步共同提出了“信息技術(shù)安全評價通用準(zhǔn)則”(The
Common
Criteriafor
Information
Technology
security
Evaluation,CC),目的是建立一個各國都能接受的通用的信息安全產(chǎn)品和系統(tǒng)的安全性評估準(zhǔn)則。第四節(jié)數(shù)據(jù)庫安全性TCSEC標(biāo)準(zhǔn)在用戶登錄、授權(quán)管理、訪問控制、審計跟蹤、隱蔽通道分析、可信通路建立、安全檢測、生命周期保障、文檔寫作等各方面,均提出了規(guī)范性要求,并根據(jù)所采用的安全策略、系統(tǒng)所具備的安全功能將系統(tǒng)分為四類7個安全級別。D類只包含一個級別——D級,是安全性最低的級別。不滿足任何較高安全可信性的系統(tǒng)全部劃入D級。該級別說明整個系統(tǒng)都是不可信任的。第四節(jié)數(shù)據(jù)庫安全性C類為自主保護(hù)類(DiscretionaryProtection)。該類的安全特點(diǎn)在于系統(tǒng)的對象可由其主體自定義訪問權(quán)。自主保護(hù)類依據(jù)安全從低到高又分為C1、C2兩個安全等級。C1級:又稱自主安全保護(hù)(DiscretionarySecurityProtecti級。用戶必須通過用戶注冊名和口令系統(tǒng)識別,這種組合用來確定每個用戶對程序和信息擁有什么樣的訪問權(quán)限,存在一定的自主訪問控制機(jī)制(DAC)。C2級:又稱受控制的訪問控制級。它具有以用戶為單位的DAC機(jī)制,且引入了審計機(jī)制。第四節(jié)數(shù)據(jù)庫安全性B類為強(qiáng)制保護(hù)類(MandatoryProtection)。該類的安全特點(diǎn)在于由系統(tǒng)強(qiáng)制的安全保護(hù)。在強(qiáng)制保護(hù)模式中,每個系統(tǒng)對象(如文件、目錄等資源)及主體(如系統(tǒng)管理員、用戶、應(yīng)用程序)都有自己的安全標(biāo)簽(Security
Label),系統(tǒng)依據(jù)主體和對象的安全標(biāo)簽賦予他對訪問對象的訪問權(quán)限。強(qiáng)制保護(hù)類依據(jù)安全從低到高又分為B1、B2、B3三個安全等級。第四節(jié)數(shù)據(jù)庫安全性A類為驗(yàn)證設(shè)計(VerifyDesign)類:最高的安全級別,它包含了一個嚴(yán)格的設(shè)計、控制和驗(yàn)證過程。設(shè)計必須是從數(shù)學(xué)上經(jīng)過驗(yàn)證的,而且必須進(jìn)行隱蔽通道和可信任分布的分析。可信任分布(TrustedDistribution)的含義是,硬件和軟件在傳輸過程中已經(jīng)受到保護(hù),不可能破壞安全系統(tǒng)。驗(yàn)證保護(hù)類只有一個安全等級,即A1級。A1級要求具有系統(tǒng)形式化頂層設(shè)計說明(FTDS),并形式化驗(yàn)證FTDS與形式化模型的一致性,以及用形式化技術(shù)解決隱蔽通道問題等。第四節(jié)數(shù)據(jù)庫安全性CC開發(fā)的目的是使各種安全評估結(jié)果具有可比性,在安全性評估過程中為信息系統(tǒng)及其產(chǎn)品的安全功能和保證措施提供一組通用要求,并確定一個可信級別。應(yīng)用CC的結(jié)果是,可使用戶確定信息系統(tǒng)及安全產(chǎn)品對他們的應(yīng)用來說是否足夠安全、使用中的安全風(fēng)險是否可以容忍。要評估的信息系統(tǒng)和產(chǎn)品被稱為評估對象(TOE),如操作系統(tǒng)、分布式系統(tǒng)、網(wǎng)絡(luò)及其應(yīng)用等。第四節(jié)數(shù)據(jù)庫安全性CC由三部分組成,包括:第一部分:簡介和一般模型。它定義了IT安全評估的通用概念和原理,提出了評估的通用模型。它還提出了一些概念,這些概念可用來表達(dá)IT安全目的,用于選擇和定義IT安全要求、書寫系統(tǒng)與產(chǎn)品的高層規(guī)范。第二部分:安全功能要求。它建立了一系列功能組件,作為表示TOE功能要求的標(biāo)準(zhǔn)方法。第三部分:安全保證要求。它建立了一系列保證組件,作為表示TOE保證要求的標(biāo)準(zhǔn)方法。它也定義了保護(hù)輪廓(PP)和安全目標(biāo)(ST)的評估準(zhǔn)則,提出了評估保證級別,即評估TOE保證的CC預(yù)定義等級。所謂PP是指一組獨(dú)立實(shí)現(xiàn)的、滿足特定用戶需求的TOE安全要求,而ST則是指作為指定的TOE評估基礎(chǔ)的一組安全要求和規(guī)范。第四節(jié)數(shù)據(jù)庫安全性(2)數(shù)據(jù)庫安全機(jī)制用戶標(biāo)識與鑒別:最外層的防護(hù)措施,它保證合法的用戶才能進(jìn)入數(shù)據(jù)庫系統(tǒng)。具體方式是讓用戶提供能夠鑒別自己身份的相關(guān)信息,常見的方法是由用戶提供用戶名或者用戶標(biāo)識號(UID)來表名身份,同時提供口令信息以供系統(tǒng)進(jìn)行核實(shí)。訪問控制(Access
Control,AC):顯式地定義用戶的訪問權(quán)限(訪問能力及范圍),這些定義存儲在數(shù)據(jù)字典中,在用戶進(jìn)行實(shí)際操作時,DBMS對照數(shù)據(jù)字典中的定義來判斷操作的合法性,并拒絕非法操作,從而控制用戶和程序?qū)?shù)據(jù)庫的操作。訪問控制保證只有授權(quán)用戶才能訪問數(shù)據(jù)庫中相應(yīng)的數(shù)據(jù),防止了非授權(quán)用戶對數(shù)據(jù)的訪問。第四節(jié)數(shù)據(jù)庫安全性當(dāng)前常見的DBMS產(chǎn)品一般都支持TCSEC標(biāo)準(zhǔn)中C2級的自主訪問控制(DAC),部分產(chǎn)品還支持B1級中的強(qiáng)制訪問控制(MAC)。自主訪問控制(Discretionary
Access
Control,DAC)是基于主體(用戶)身份或者主體所屬組的身份或者二者的結(jié)合,對客體(數(shù)據(jù)對象)訪問操作進(jìn)行限制的一種方法,其粒度是單個用戶。在自主訪問控制技術(shù)中,用戶對數(shù)據(jù)的訪問控制主要是基于對用戶身份的鑒別和訪問規(guī)則來確定。并且,對某個信息資源擁有某種權(quán)限的用戶可以把該權(quán)限授予其他用戶,即選擇與其他用戶共享數(shù)據(jù)資源。第四節(jié)數(shù)據(jù)庫安全性在關(guān)系數(shù)據(jù)庫中,自主訪問控制的客體除了數(shù)據(jù)之外,還有數(shù)據(jù)庫模式、基本表、視圖和索引等。客體操作權(quán)限數(shù)據(jù)庫模式CREATE基本表CREATE,
ALTER視圖CREATE索引CREATE表中的數(shù)據(jù)SELECT,
INSERT,
UPDATE,
DELETE,
REFERENCES,ALL
PRIVILEGES屬性列SELECT,
INSERT,
UPDATE,
REFERENCES,
ALLPRIVILEGES第四節(jié)數(shù)據(jù)庫安全性SQL語言使用GRANT語句賦予用戶一定的操作權(quán)限,其語法結(jié)構(gòu)如下:GRANT<權(quán)限>[,<權(quán)限>…]ON<客體類型><客體名>[,<客體類型><客體名>…]
TO<用戶>[,<用戶>…][WITH
GRANT
OPTION];其中,如果使用了WITH
GRANT
OPTION,則得到相應(yīng)權(quán)限的用戶還可以把該權(quán)限賦予其他用戶,但不能進(jìn)行循環(huán)授權(quán)。第四節(jié)數(shù)據(jù)庫安全性例6.2向用戶U1授予user表的查詢權(quán)限,并允許其將該權(quán)限再授予其他用戶,語句如下:GRANT
SELECTON
TABLE
userTO
U1WITH
GRANT
OPTION;例6.3向所有用戶授予user表的所有操作權(quán)限,語句如下:GRANT
ALL
PRIVILEGESON
TABLE
userTO
PUBLIC;第四節(jié)數(shù)據(jù)庫安全性在授予權(quán)限后,可以通過REVOKE語句收回權(quán)限,其語法結(jié)構(gòu)如下:REVOKE<權(quán)限>[,<權(quán)限>…]ON<客體類型><客體名>[,<客體類型><客體名>…]
FROM<用戶>[,<用戶>…][CASCADE
|
RESTRICT];其中,CASCADE表示級聯(lián)回收權(quán)限,RESTRICT表示限制回收,即指定用戶將權(quán)限賦予其他用戶時,不能直接回收該用戶的權(quán)限。一般情況下,RESTRICT為默認(rèn)選項(xiàng)。第四節(jié)數(shù)據(jù)庫安全性例6.3級聯(lián)收回用戶U1在user表上的查詢權(quán)限,語句如下:REVOKE
SELECTON
TABLE
userFROM
U1;這一操作將一并收回用戶U1在user表上的查詢權(quán)限。第四節(jié)數(shù)據(jù)庫安全性SQL語言使用CREATE
ROLE來創(chuàng)建角色,然后使用GRANT和REVOKE語句來賦予和回收角色的權(quán)限,其語法結(jié)構(gòu)分別如下。創(chuàng)建角色:CREATE
ROLE<角色名>;為角色授予權(quán)限:GRANT<權(quán)限>[,<權(quán)限>…]ON<客體類型><客體名>TO<角色>[,<角色>…];第四節(jié)數(shù)據(jù)庫安全性為用戶或角色授予角色權(quán)限,一個角色的權(quán)限等于直接授予該角色的權(quán)限和其他角色授予該角色的權(quán)限:GRANT<角色>[,<角色>…]TO<用戶>[,<角色>…]
[WITH
ADMIN
OPTION];收回角色的權(quán)限:REVOKE<權(quán)限>[,<權(quán)限>…]ON<客體類型><客體名>FROM<角色>[,<角色>…];第四節(jié)數(shù)據(jù)庫安全性例6.5創(chuàng)建角色R1,語句如下:CREATE
ROLE
R1;剛創(chuàng)建好的角色沒有任何權(quán)限,這時使用GRANT語句為其分配權(quán)限。例6.6為角色R1授予user表的所有操作權(quán)限,語句如下:GRANT
ALL
PRIVILEGESON
TABLE
userTO
R1;角色的權(quán)限還可以進(jìn)一步賦予其他用戶或角色。第四節(jié)數(shù)據(jù)庫安全性例6.7為用戶U6、U7授予角色R1的權(quán)限,語句如下:GRANT
R1TO
U6,
U7WITH
ADMIN
OPTION;由于指定了WITH
ADMIN
OPTION,則得到權(quán)限的角色或用戶還可以進(jìn)一步將權(quán)限賦予其他角色??梢允褂肦EVOKE語句來回收角色的權(quán)限。例6.8對用戶U6收回角色R1的權(quán)限,語句如下:REVOKE
R1FROM
U6;第四節(jié)數(shù)據(jù)庫安全性強(qiáng)制訪問控制(Mandatory
Access
Control,MAC)的基本思想是通過給主體和客體指定安全級,并根據(jù)安全級匹配規(guī)則來確定主體能夠訪問的客體范圍。主體的安全級反映主體的可信度,稱為許可證級別??腕w的安全級反映客體的敏感度,稱為敏感度標(biāo)記。主、客體的安全級都被分為不同等級,如秘密、機(jī)密、絕密等。MAC中為了保證信息的機(jī)密性,要求:(1)無向上讀,不允許低安全級的主體讀取高安全級的客體信息;(2)無向下寫,不允許高安全級的信息寫入低安全級的區(qū)域,或者說不允許高安全級用戶向低安全級的客體寫入信息。上述規(guī)則保證了信息的不會從高安全級別流向低安全級別。第四節(jié)數(shù)據(jù)庫安全性除了授權(quán)機(jī)制以外,使用視圖機(jī)制也可以限制用戶對數(shù)據(jù)的訪問。為不同用戶定義不同的視圖,使得每個用戶的訪問范圍限制在相應(yīng)的視圖之內(nèi),可以為數(shù)據(jù)庫提供一定程度的安全保護(hù),同時也實(shí)現(xiàn)了數(shù)據(jù)庫的邏輯獨(dú)立性。但視圖機(jī)制所能提供的保護(hù)精細(xì)度有限,一般達(dá)不到實(shí)際應(yīng)用的要求,因此常常與訪問控制機(jī)制結(jié)合使用。首先使用視圖機(jī)制對用戶和數(shù)據(jù)進(jìn)行初步劃分,然后再使用訪問控制機(jī)制做進(jìn)一步細(xì)分。第四節(jié)數(shù)據(jù)庫安全性加密技術(shù)是一種防止數(shù)據(jù)泄露的技術(shù)。它的核心技術(shù)是密碼學(xué),密碼學(xué)是研究密碼系統(tǒng)或通信安全的一門學(xué)科,它又分為密碼編碼學(xué)和密碼分析學(xué)。任何一個加密系統(tǒng)都是由明文、密文、算法和密鑰組成。其中,明文是原始的或未加密的數(shù)據(jù),通過加密算法對其進(jìn)行加密,加密算法的輸入信息為明文和密鑰。密文是明文加密后的格式,是加密算法的輸出信息。加密算法是公開的,而密鑰則是不公開的。密文不應(yīng)為無密鑰的用戶理解,用于數(shù)據(jù)的存儲以及傳輸。密鑰,是由數(shù)字、字母或特殊符號組成的字符串,用它控制數(shù)據(jù)加密、解密的過程。第四節(jié)數(shù)據(jù)庫安全性前面討論的安全機(jī)制從不同方面對可能存在的惡意攻擊行為進(jìn)行了防護(hù),但任何系統(tǒng)都不可能做到百分之百安全。當(dāng)系統(tǒng)安全遭到破壞時,根據(jù)操作記錄分析原因,找出相關(guān)責(zé)任人也是非常重要的一項(xiàng)任務(wù),這項(xiàng)任務(wù)由安全審計來完成。在TCSEC標(biāo)準(zhǔn)中,達(dá)到C2以上級別的系統(tǒng)必須具備審計功能。安全審計是一種對數(shù)據(jù)庫系統(tǒng)的監(jiān)視措施,對哪些用戶對哪些數(shù)據(jù)進(jìn)行了什么操作進(jìn)行記錄,并將記錄結(jié)果存放在審計日志中。根據(jù)審計日志,系統(tǒng)可以對安全事故進(jìn)行權(quán)責(zé)追查。審計功能通常耗費(fèi)較多的系統(tǒng)資源,因此在實(shí)際應(yīng)用中需要根據(jù)情況來選擇是否開啟、什么時候開啟審計功能。第四節(jié)數(shù)據(jù)庫安全性SQL語言使用AUDIT語句來設(shè)置審計功能,相應(yīng)的NOAUDIT語句取消審計功能。例6.9對user表上的數(shù)據(jù)插入和修改操作開啟審計功能,語句如下:AUDIT
INSERT,
UPDATEON
user;例6.10對user表的修改操作開啟審計功能,語句如下:AUDIT
ALTERON
user;例6.11取消user表的修所有審計功能,語句如下:NO
AUDIT
ALTER,INSERT,UPDATEON
user;第五節(jié)數(shù)據(jù)庫恢復(fù)數(shù)據(jù)庫恢復(fù)技術(shù)的主要內(nèi)容包括兩方面,了解造成數(shù)據(jù)庫中數(shù)據(jù)損壞或丟失的故障類型,以及針對這些故障的恢復(fù)措施。數(shù)據(jù)庫系統(tǒng)中常見的故障類型有三種,包括事務(wù)內(nèi)部故障、系統(tǒng)故障和存儲設(shè)備(介質(zhì))故障。事務(wù)故障可分為預(yù)期的和非預(yù)期的,其中大部分的故障都是非預(yù)期的。預(yù)期的事務(wù)故障是指可以通過事務(wù)程序本身發(fā)現(xiàn)的故障,非預(yù)期的事務(wù)故障是不能由事務(wù)程序處理的故障。第五節(jié)數(shù)據(jù)庫恢復(fù)系統(tǒng)故障及其恢復(fù)系統(tǒng)故障是指系統(tǒng)在運(yùn)行過程中,由于某種原因,造成系統(tǒng)停止運(yùn)轉(zhuǎn),致使所有正在運(yùn)行的事務(wù)都以非正常方式終止,要求系統(tǒng)重新啟動。存儲介質(zhì)故障主要指數(shù)據(jù)庫在運(yùn)行過程中,由于磁頭碰撞、磁盤損壞、強(qiáng)磁干擾、天災(zāi)人禍等情況,導(dǎo)致外存儲設(shè)備損壞,使得數(shù)據(jù)庫中的數(shù)據(jù)部分或全部丟失。第五節(jié)數(shù)據(jù)庫恢復(fù)對于各種各樣的故障類型,恢復(fù)技術(shù)通過預(yù)先存儲的冗余數(shù)據(jù)來重建數(shù)據(jù)庫,其中涉及到兩個關(guān)鍵問題,一是如何建立冗余數(shù)據(jù),二是如何通過冗余數(shù)據(jù)來重建數(shù)據(jù)庫。其中,問題一涉及到數(shù)據(jù)轉(zhuǎn)儲技術(shù),問題二涉及到數(shù)據(jù)庫日志文件。數(shù)據(jù)轉(zhuǎn)儲也稱為數(shù)據(jù)備份,是指由DBA定期將整個數(shù)據(jù)庫從本地系統(tǒng)存儲設(shè)備復(fù)制到另一存儲設(shè)備進(jìn)行保存的過程。轉(zhuǎn)儲得到的備份數(shù)據(jù)稱為后備副本。第五節(jié)數(shù)據(jù)庫恢復(fù)一般來說,數(shù)據(jù)轉(zhuǎn)儲分為靜態(tài)轉(zhuǎn)儲和動態(tài)轉(zhuǎn)儲兩類。靜態(tài)轉(zhuǎn)儲是在系統(tǒng)中無運(yùn)行事務(wù)時進(jìn)行轉(zhuǎn)儲,轉(zhuǎn)儲開始時數(shù)據(jù)庫處于一致狀態(tài),轉(zhuǎn)儲期間不允許對數(shù)據(jù)庫的任何存取、修改活動。動態(tài)轉(zhuǎn)儲可以與用戶事務(wù)并發(fā)執(zhí)行,轉(zhuǎn)儲期間允許對數(shù)據(jù)庫進(jìn)行存取或修改。第五節(jié)數(shù)據(jù)庫恢復(fù)數(shù)據(jù)庫日志文件是用于記錄事務(wù)對數(shù)據(jù)庫所做的更新操作的文件,是日志記錄的有序集合。其中,一般的日志記錄的內(nèi)容包括:各個事務(wù)的開始標(biāo)記(BEGIN
TRANSACTION)、各個事務(wù)的結(jié)束標(biāo)記(COMMITTRANSACTION/ROLLBACK
TRANSACTION),以及各個事務(wù)的所有更新操作。在數(shù)據(jù)庫系統(tǒng)的運(yùn)行過程中,每條事務(wù)的執(zhí)行都會導(dǎo)致生成一條新的日志記錄。在事務(wù)的更新操作對數(shù)據(jù)庫修改生效之前,必須先將相應(yīng)的日志記錄寫入到日志文件中(先寫日志,后提交事務(wù))。第五節(jié)數(shù)據(jù)庫恢復(fù)事務(wù)故障恢復(fù)事務(wù)故障分為預(yù)期的事務(wù)故障和非預(yù)期的事務(wù)故障。對于預(yù)期的事務(wù)故障,相應(yīng)的恢復(fù)方法是將事務(wù)回滾,撤銷對數(shù)據(jù)庫的修改。對于非預(yù)期的事務(wù)內(nèi)部故障,恢復(fù)方法是強(qiáng)制回滾事務(wù),在保證該事務(wù)對其他事務(wù)沒有影響的條件下,利用日志文件撤銷(UNDO)其對數(shù)據(jù)庫的修改。第五節(jié)數(shù)據(jù)庫恢復(fù)系統(tǒng)故障恢復(fù)系統(tǒng)故障導(dǎo)致數(shù)據(jù)庫不一致的情況有兩種:一種是某些未完成事務(wù)對數(shù)據(jù)庫的更新已寫入物理數(shù)據(jù)庫中,另一種是某些已提交事務(wù)對數(shù)據(jù)庫的更新結(jié)果還保留在緩沖區(qū)中,尚未寫到物理數(shù)據(jù)庫中。對于這兩種情況,恢復(fù)操作需要撤銷故障發(fā)生時所有未提交的事務(wù),重做所有已提交的事務(wù)。具體的說,需要查找該事務(wù)對應(yīng)的所有更新日志記錄,并根據(jù)記錄內(nèi)容將數(shù)據(jù)庫中的相應(yīng)數(shù)據(jù)項(xiàng)恢復(fù)到更新前的值。第五節(jié)數(shù)據(jù)庫恢復(fù)存儲設(shè)備故障恢復(fù)當(dāng)存儲設(shè)備發(fā)生故障時,數(shù)據(jù)庫中的部分或全部數(shù)據(jù)丟失,同時日志文件也丟失了。這時需要借助于數(shù)據(jù)轉(zhuǎn)儲技術(shù)的后備副本進(jìn)行數(shù)據(jù)庫恢復(fù),具體是先裝入最近一次轉(zhuǎn)儲的副本,如果是動態(tài)轉(zhuǎn)儲,還要同時裝入轉(zhuǎn)儲過程中記錄的日志文件,將數(shù)據(jù)庫恢復(fù)到離故障發(fā)生時刻最近的一致性狀態(tài)上。然后,根據(jù)轉(zhuǎn)儲時刻起到故障發(fā)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司年會策劃服務(wù)合同協(xié)議2026
- 保密協(xié)議(知識產(chǎn)權(quán)版2026年)
- 產(chǎn)品經(jīng)理競業(yè)禁止協(xié)議2026年細(xì)則
- 2026年涉外保密協(xié)議(中英文版)
- 2026年保密信息披露協(xié)議(中英文版)
- 課件技能培訓(xùn)
- 溶解乙炔生產(chǎn)工春節(jié)假期安全告知書
- 煮呢機(jī)擋車工節(jié)假日后復(fù)工安全考核試卷含答案
- 企業(yè)質(zhì)量管理與持續(xù)改進(jìn)措施
- 項(xiàng)目管理試題及答案
- 【地理】期末重點(diǎn)復(fù)習(xí)課件-2025-2026學(xué)年八年級地理上學(xué)期(人教版2024)
- 2026年鄉(xiāng)村治理體系現(xiàn)代化試題含答案
- 通風(fēng)設(shè)備采購與安裝合同范本
- 化工設(shè)備清洗安全課件
- 2026元旦主題班會:馬年猜猜樂新春祝福版 教學(xué)課件
- T∕ZZB 1815-2020 塑料 汽車配件用再生聚碳酸酯(PC)專用料
- 2025~2026學(xué)年吉林省吉林市一中高一10月月考語文試卷
- 天津市南開中學(xué)2025-2026學(xué)年高一上數(shù)學(xué)期末調(diào)研模擬試題含解析
- 麻辣燙創(chuàng)業(yè)商業(yè)計劃書范文
- 東呈集團(tuán)內(nèi)部控制中存在的問題及對策研究
- 高科技產(chǎn)業(yè)園區(qū)運(yùn)營管理手冊
評論
0/150
提交評論