




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
7.1系統(tǒng)目錄7.2事務(wù)7.3數(shù)據(jù)庫的恢復(fù)7.4數(shù)據(jù)庫的并發(fā)控制7.5并發(fā)事務(wù)的可串行化和可恢復(fù)性(略)7.6數(shù)據(jù)庫的完整性7.7數(shù)據(jù)庫的安全性第七章系統(tǒng)實(shí)現(xiàn)技術(shù)第七章系統(tǒng)實(shí)現(xiàn)技術(shù)元數(shù)據(jù):數(shù)據(jù)庫的定義和描述信息←三級模式、兩級映像系統(tǒng)目錄(或數(shù)據(jù)目錄)與數(shù)據(jù)字典數(shù)據(jù)目錄--DATACATALOG(DIRECTORY)
是DBMS的一個(gè)組成部分,面向系統(tǒng)數(shù)據(jù)字典--DATADICTIONARY
是用DBMS或?qū)S密浖?shí)現(xiàn)的一個(gè)應(yīng)用系統(tǒng)面向數(shù)據(jù)庫設(shè)計(jì)人員和用戶用來管理元數(shù)據(jù)第七章
系統(tǒng)實(shí)現(xiàn)技術(shù)7.1系統(tǒng)目錄
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.1系統(tǒng)目錄一.RDBMS的系統(tǒng)目錄
1.存儲(chǔ)的內(nèi)容
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.1系統(tǒng)目錄
?
關(guān)系名,屬性名,屬性域(數(shù)據(jù)類型)
?
各種約束,主鍵,輔助鍵(候補(bǔ)鍵),外鍵,空/非空
?
視圖的外部級描述,存儲(chǔ)結(jié)構(gòu)和索引等內(nèi)部級描述
?
安全性和授權(quán)規(guī)則
?
數(shù)據(jù)完整性規(guī)則
?
運(yùn)行統(tǒng)計(jì)信息:用于查詢優(yōu)化的統(tǒng)計(jì)數(shù)據(jù)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.1系統(tǒng)目錄SYSTAB:SYSTAB682…關(guān)系名屬性數(shù)元組大小表所有者表創(chuàng)建者元組數(shù)SYSVWATRSC33……221810SYSSYSUSER1…DBADBAUSER1…一般內(nèi)容舉例:↘SYSCOL:SYSTAB關(guān)系名Char(10)…關(guān)系名屬性名屬性類型外鍵引自關(guān)系主鍵成員SYSTABSCSNOCNO……IntegerYesStudentNoNo…外鍵成員NULL不同屬性值數(shù)缺省值屬性數(shù)Char(7)NoYesYes…………NoNoYesYesNoNoCourseNoNoYes558NULL…GRADEChar(6)Dec(4,1)SCSC
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.1系統(tǒng)目錄
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.1系統(tǒng)目錄SYSIDX:…關(guān)系名索引名成員屬性升、降序索引類型SCSC_INDEXSC_INDEX……ASC屬性序號SNOUNIQUEUNIQUE………12DESCCNOSC………………
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.1系統(tǒng)目錄SYSVIEW:…視圖名視圖定義GRADE_AVG……SELECTSNAME,AVG(GRADE)FROMSC,STUDENTWHERESC.SNO=STUDENT.SNOGROUPBYSNAME;SYSVWATR:…視圖名視圖屬性名GRADE_AVG……SNAMEAVGGRADEGRADE_AVG………12視圖屬性序號
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.1系統(tǒng)目錄
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.1系統(tǒng)目錄2.數(shù)據(jù)目錄與普通表的區(qū)別:數(shù)據(jù)目錄也是表,可以用數(shù)據(jù)庫語言的語句對其查詢但其作用、內(nèi)容、定義方法、使用范圍與一般數(shù)據(jù)不同:
◆主要由DBMS管理和使用(查詢、更新、維護(hù)),
是被頻繁訪問又非常重要的數(shù)據(jù),幾乎DBMS每一部分的運(yùn)行都離不開它
◆
DBMS一般不允許用戶對數(shù)據(jù)目錄進(jìn)行更新操作只允許用戶對它進(jìn)行受控制的查詢。◆
數(shù)據(jù)目錄本身不能用SQL語句定義,只能由系統(tǒng)定義。
(數(shù)據(jù)目錄未定義,任何SQL語句都無法執(zhí)行)在初始化時(shí)由系統(tǒng)生成,為DBMS服務(wù),由DBMS來維護(hù)。
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.1系統(tǒng)目錄DDL編譯程序查詢和DML的分析程序和校驗(yàn)程序查詢和DML的編譯程序查詢和DML的優(yōu)化程序授權(quán)和安全性檢查程序查詢和DML命令的外部級到概念級的映象二、系統(tǒng)目錄和DBMS各子系統(tǒng)的聯(lián)系自學(xué)7.1系統(tǒng)目錄7.2事務(wù)7.3數(shù)據(jù)庫的恢復(fù)7.4數(shù)據(jù)庫的并發(fā)控制7.5并發(fā)事務(wù)的可串行化和可恢復(fù)性(略)7.6數(shù)據(jù)庫的完整性7.7數(shù)據(jù)庫的安全性第七章系統(tǒng)實(shí)現(xiàn)技術(shù)一、事務(wù)的定義
事務(wù)(transaction):是構(gòu)成單一邏輯工作單元的操作集合是DBMS執(zhí)行的工作單位由有限的數(shù)據(jù)庫操作序列組成7.2
事務(wù)一個(gè)事務(wù)由應(yīng)用程序中的一組操作序列組成
程序可以是一組數(shù)據(jù)庫語言的語句
或是宿主語言的程序一個(gè)應(yīng)用程序的運(yùn)行包含多個(gè)事務(wù)同一程序的幾次獨(dú)立執(zhí)行將產(chǎn)生不同的事務(wù)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.2事務(wù)(a)用戶沒有顯式定義,則由DBMS按缺省規(guī)定自動(dòng)劃分
(b)用SQL語句顯式控制一個(gè)事務(wù)的開始和終止
定義事務(wù)的有關(guān)語句:
STARTTRANSACTION
顯式地定義一個(gè)事務(wù)的開始
COMMIT
提交事務(wù)的所有操作,成功結(jié)束事務(wù),使該事務(wù)對數(shù)據(jù)庫的改變對其它事務(wù)開放
SAVEPOINT<保留點(diǎn)名>
在當(dāng)前事務(wù)的當(dāng)前點(diǎn)建立保留點(diǎn)
補(bǔ)充:事務(wù)的劃分
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.2事務(wù)
(a)原子性(Atomicity):
事務(wù)的所有操作“要么全做,要么全不做”
在故障恢復(fù)時(shí)要消除未完成事務(wù)對數(shù)據(jù)庫的影響是數(shù)據(jù)庫系統(tǒng)本身的職責(zé),由DBMS事務(wù)管理子系統(tǒng)實(shí)現(xiàn)二、事務(wù)的ACID特性
――保證數(shù)據(jù)庫中數(shù)據(jù)的正確性P253
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.2事務(wù)例如:銀行數(shù)據(jù)庫中一轉(zhuǎn)帳事務(wù)T,從A帳號轉(zhuǎn)100元到B帳號
read(A);A:=A-100;
write(A);
read(B);B:=B+100;
write(B);不一致狀態(tài)一致狀態(tài)一個(gè)事務(wù)
(b)一致性(Consistency)
:事務(wù)獨(dú)立執(zhí)行的結(jié)果應(yīng)保持?jǐn)?shù)據(jù)庫的一致性*數(shù)據(jù)庫的一致性狀態(tài)――DB中的數(shù)據(jù)滿足完整性約束
*完整性約束由編寫事務(wù)的應(yīng)用程序員創(chuàng)建,
由DBMS完整性子系統(tǒng)測試
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.2事務(wù)例如:銀行數(shù)據(jù)庫中一轉(zhuǎn)帳事務(wù)T,從A帳號轉(zhuǎn)100元到B帳號
read(A);A:=A-100;
write(A);
read(B);B:=B+100;
write(B);一致狀態(tài)
(c)隔離性(Isolation):
多個(gè)事務(wù)并發(fā)執(zhí)行時(shí),系統(tǒng)應(yīng)保證與這些事務(wù)先后單獨(dú)執(zhí)行時(shí)的結(jié)果一樣由DBMS的并發(fā)控制子系統(tǒng)實(shí)現(xiàn)(d)持久性(Durability):一個(gè)已成功執(zhí)行的事務(wù)對數(shù)據(jù)庫的更新應(yīng)該永久地反映在數(shù)據(jù)庫中,故障后可恢復(fù)由DBMS的恢復(fù)子管理系統(tǒng)實(shí)現(xiàn)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.2事務(wù)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.2事務(wù)例:事務(wù):將款項(xiàng)S從A帳號撥給B帳號或P217
STARTTRANSACTIONread(A);A=A-S;write(A);/*暫不寫入磁盤*/ifA<0/*A款不足*/then
begin
display“A款不足”
ROLLBACK
end
else
begin
B=B+Sdisplay“撥款完成”
COMMIT
/*可寫入磁盤*/
end
三、事務(wù)的狀態(tài)變遷提交(commit)
:標(biāo)志事務(wù)已成功執(zhí)行對數(shù)據(jù)庫的更新結(jié)果可用事務(wù)失?。阂龑?shù)據(jù)庫的影響相應(yīng)的處理稱為回滾(rollback),undo撤銷操作局部提交后檢查有否并發(fā)干擾,若無,則commit,寫磁盤
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.2事務(wù)事務(wù)開始活動(dòng)狀態(tài)局部提交狀態(tài)提交狀態(tài)失敗狀態(tài)異常中止?fàn)顟B(tài)讀/寫事務(wù)正常執(zhí)行要求:
ACID準(zhǔn)則在系統(tǒng)正常時(shí)應(yīng)滿足在系統(tǒng)故障時(shí)應(yīng)滿足在單事務(wù)執(zhí)行時(shí)應(yīng)滿足在多事務(wù)并發(fā)執(zhí)行時(shí)應(yīng)滿足補(bǔ)充:事務(wù)管理概述恢復(fù)――保證事務(wù)在系統(tǒng)故障時(shí)滿足ACID準(zhǔn)則的技術(shù)并發(fā)控制――并發(fā)執(zhí)行時(shí)滿足ACID準(zhǔn)則的技術(shù)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.2事務(wù)7.1系統(tǒng)目錄7.2事務(wù)7.3數(shù)據(jù)庫的恢復(fù)7.4數(shù)據(jù)庫的并發(fā)控制7.5并發(fā)事務(wù)的可串行化和可恢復(fù)性(略)7.6數(shù)據(jù)庫的完整性7.7數(shù)據(jù)庫的安全性第七章系統(tǒng)實(shí)現(xiàn)技術(shù)可恢復(fù)性――把數(shù)據(jù)庫從被破壞、不正確的狀態(tài)恢復(fù)到最近一個(gè)正確狀態(tài)的能力P219定義7.2系統(tǒng)故障時(shí),DBMS的恢復(fù)機(jī)制保證事務(wù)的原子性和持久性7.2數(shù)據(jù)庫的恢復(fù)撤消所有未完成事務(wù)對數(shù)據(jù)庫的一切影響→事務(wù)的原子性
恢復(fù)已提交的事務(wù)對數(shù)據(jù)庫的更改→事務(wù)的持久性
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.3數(shù)據(jù)庫的恢復(fù)一、存儲(chǔ)器結(jié)構(gòu)易失性存儲(chǔ)器
——內(nèi)存和Cache非易失性存儲(chǔ)器
——磁盤、磁帶穩(wěn)定存儲(chǔ)器
——理論概念,其中的信息決不會(huì)丟失通過對非易失存儲(chǔ)器的技術(shù)處理實(shí)現(xiàn)1.存儲(chǔ)器類型:
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.3數(shù)據(jù)庫的恢復(fù)二、恢復(fù)的基本原則和實(shí)現(xiàn)方法恢復(fù)丟失的數(shù)據(jù)修復(fù)被破壞的或不正確的數(shù)據(jù)1.恢復(fù)的內(nèi)容:3.補(bǔ)充:恢復(fù)技術(shù)及實(shí)現(xiàn)方法--僅使用后備副本的恢復(fù)技術(shù)--使用后備副本和日志文件的恢復(fù)技術(shù)--利用多個(gè)副本的恢復(fù)技術(shù)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.3數(shù)據(jù)庫的恢復(fù)2.恢復(fù)的原則:冗余后備副本日志文件冗余數(shù)據(jù)原理:由DBA定期地將整個(gè)數(shù)據(jù)庫轉(zhuǎn)儲(chǔ)(DUMP)到磁帶或另一個(gè)磁盤上,形成數(shù)據(jù)庫副本,稱后備副本。脫機(jī)存放,故障時(shí)取最近的后備副本來恢復(fù)(1)僅使用后備副本的恢復(fù)技術(shù)效果:#數(shù)據(jù)庫只能恢復(fù)到最近轉(zhuǎn)儲(chǔ)時(shí)狀態(tài)
#從最近轉(zhuǎn)儲(chǔ)點(diǎn)至故障時(shí)所有數(shù)據(jù)庫的更新將丟失
#需重新運(yùn)行更新事務(wù)恢復(fù)重新運(yùn)行事務(wù)裝入后備副本轉(zhuǎn)儲(chǔ)最近轉(zhuǎn)儲(chǔ)點(diǎn)故障發(fā)生點(diǎn)運(yùn)行事務(wù)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.3數(shù)據(jù)庫的恢復(fù)問題:數(shù)據(jù)量大時(shí)轉(zhuǎn)儲(chǔ)費(fèi)時(shí),
且轉(zhuǎn)儲(chǔ)期間一般不允許對數(shù)據(jù)庫操作
轉(zhuǎn)儲(chǔ)周期:不可太長,否則丟失的數(shù)據(jù)多不可太短,否則轉(zhuǎn)儲(chǔ)頻繁,影響數(shù)據(jù)庫的正常工作辦法:只轉(zhuǎn)儲(chǔ)更新過的數(shù)據(jù),轉(zhuǎn)儲(chǔ)量小,轉(zhuǎn)儲(chǔ)快,丟失數(shù)據(jù)少
增量轉(zhuǎn)儲(chǔ)――只轉(zhuǎn)儲(chǔ)更新過的數(shù)據(jù)(每晚)
海量轉(zhuǎn)儲(chǔ)――轉(zhuǎn)儲(chǔ)數(shù)據(jù)庫中的所有數(shù)據(jù)(每周)優(yōu)點(diǎn):實(shí)現(xiàn)簡單,不增加數(shù)據(jù)庫的運(yùn)行開銷缺點(diǎn):不能恢復(fù)到數(shù)據(jù)庫的最近一致狀態(tài)應(yīng)用:小型的、不重要的數(shù)據(jù)庫系統(tǒng)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.3數(shù)據(jù)庫的恢復(fù)(a)日志文件――用來記錄事務(wù)的狀態(tài)和事務(wù)對數(shù)據(jù)庫的更新操作的文件。
是記錄式文件,由運(yùn)行記錄組成。
日志文件的主要內(nèi)容:
前像:事務(wù)所涉及的物理塊更新前的映像(舊值)BI
前像可以使數(shù)據(jù)庫恢復(fù)到更新前的狀態(tài)對應(yīng)的操作是撤銷(undo)更新→回滾rollback
后像:事務(wù)所涉及的物理塊更新后的映像(新值)AI
后像可以使數(shù)據(jù)庫恢復(fù)到更新后的狀態(tài)(更新丟失時(shí))
對應(yīng)的操作是重做(redo)一次更新→提交commit(2)使用后備副本和日志文件的恢復(fù)技術(shù)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.3數(shù)據(jù)庫的恢復(fù)例如:對于下面每次操作,在日志文件中寫一個(gè)記錄:(1)事務(wù)T開始,日志記錄為(T,start,,,)(2)事務(wù)T修改對象A,日志記錄為(T,update,A,前像,后像)(3)事務(wù)T插入對象A,日志記錄為(T,insert,A,,后像)(4)事務(wù)T刪除對象A,日志記錄為(T,delete,A,前像,)(5)事務(wù)T提交,日志記錄為(T,commit,,,)
事務(wù)T回滾,日志記錄為(T,rollback,,,)
日志文件的內(nèi)容和結(jié)構(gòu)因DBMS的不同而異,主要內(nèi)容:
事務(wù)標(biāo)識操作類型對象標(biāo)識前像后像
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.3數(shù)據(jù)庫的恢復(fù)(d)應(yīng)用――是使用最廣的恢復(fù)技術(shù)(b)實(shí)現(xiàn)方法
平時(shí)周期性轉(zhuǎn)儲(chǔ)和建立日志發(fā)生故障時(shí):裝載最近的后備副本
按日志中的運(yùn)行記錄
對未提交事務(wù)用BI回滾(Undo)
向后恢復(fù)對已提交的事務(wù)用AI重做(Redo)
向前恢復(fù)(c)優(yōu)缺點(diǎn)
能恢復(fù)到數(shù)據(jù)庫的最近一致狀態(tài)
運(yùn)行記錄占較大空間,登記日志影響系統(tǒng)的運(yùn)行性能繼續(xù)運(yùn)行事務(wù)登記日志文件恢復(fù)裝入后備副本轉(zhuǎn)儲(chǔ)最近轉(zhuǎn)儲(chǔ)點(diǎn)
故障發(fā)生點(diǎn)運(yùn)行事務(wù)登記日志文件利用日志文件恢復(fù)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.3數(shù)據(jù)庫的恢復(fù)原理:在系統(tǒng)中保存多個(gè)具有獨(dú)立失效模式的數(shù)據(jù)庫副本,利用這些獨(dú)立副本互為備份,進(jìn)行恢復(fù)
獨(dú)立失效模式――不會(huì)因同一故障而同時(shí)失效,各自的支撐環(huán)境(電源,磁盤,控制器,CPU等)不同
優(yōu)缺點(diǎn):易于恢復(fù)數(shù)據(jù)庫,但是硬件和系統(tǒng)的代價(jià)比較高應(yīng)用:主要用于分布式數(shù)據(jù)庫(不同結(jié)點(diǎn))(3)使用多個(gè)副本的恢復(fù)技術(shù)磁盤1磁盤2控制器1控制器2CPU1CPU2鏡像磁盤技術(shù)→
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.3數(shù)據(jù)庫的恢復(fù)數(shù)據(jù)庫恢復(fù)的具體實(shí)現(xiàn):
平時(shí)做好轉(zhuǎn)儲(chǔ)、建立日志
一旦發(fā)生數(shù)據(jù)庫故障,分情況處理:
★數(shù)據(jù)庫已被破壞:利用后備副本和日志,重做
★數(shù)據(jù)庫未被破壞,某些數(shù)據(jù)不可靠:用日志撤消
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.3數(shù)據(jù)庫的恢復(fù)(1)事務(wù)故障
事務(wù)故障――事務(wù)因不可預(yù)知的原因而中途(在提交前)夭折
原因:無法執(zhí)行
(
數(shù)據(jù)庫中無要訪問的數(shù)據(jù)、運(yùn)算溢出、不滿足約束條件)
操作員因操作錯(cuò)誤或改變主意而要求撤消事務(wù)(撥錯(cuò)款)
系統(tǒng)調(diào)度需要中止事務(wù)的執(zhí)行(并發(fā)執(zhí)行事務(wù)產(chǎn)生死鎖)
后果:可能使數(shù)據(jù)庫處于不一致的狀態(tài)
恢復(fù)對策:↘三、故障類型與恢復(fù)對策P222+補(bǔ)充
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.3數(shù)據(jù)庫的恢復(fù)
反向掃描日志文件,查找該事務(wù)的更新操作
若是Update,將BI寫入數(shù)據(jù)庫若是insert,則將數(shù)據(jù)對象刪去若是delete操作,則做插入操作,插入值為記運(yùn)行錄中的BI繼續(xù)反向掃描日志文件,對各更新操作做上述處理,直至該事務(wù)的start記錄為止實(shí)現(xiàn)者:系統(tǒng)自動(dòng)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.3數(shù)據(jù)庫的恢復(fù)日志文件中的記錄:(T1,start,,,)(T1,update,A,BI,AI)(T1,insert,A,,AI)(T1,delete,A,BI,)………..(2)系統(tǒng)故障
系統(tǒng)故障(systemfailure)――指由于某種原因,引起系統(tǒng)停止運(yùn)行而造成的故障
可能原因:
掉電
除數(shù)據(jù)庫存儲(chǔ)介質(zhì)以外的硬件故障(如:CPU故障),軟件故障(如:操作系統(tǒng)和DBMS)
后果:內(nèi)存數(shù)據(jù)可能丟失;所有正在運(yùn)行的事務(wù)都以非正常方式中止造成數(shù)據(jù)庫處于不一致狀態(tài)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.3數(shù)據(jù)庫的恢復(fù)恢復(fù)對策:
重新啟動(dòng)OS和DBMS
對未提交的事務(wù)進(jìn)行undo,對已提交的事務(wù)進(jìn)行redo
-從頭掃描日志文件,commit事務(wù)入重做(redo)隊(duì)列有start無commit或rollback的事務(wù)入撤消(undo)隊(duì)列
-對重做隊(duì)列中每個(gè)事務(wù)進(jìn)行redo操作:正向掃描日志文件,按登入日志文件的次序,重新執(zhí)行所登記的操作
-對撤消隊(duì)列中每個(gè)事務(wù)進(jìn)行undo操作:反向掃描日志文件,依據(jù)登入日志文件中相反次序,對每個(gè)更新操作執(zhí)行逆操作,從而恢復(fù)原狀
*若是Update,將BI寫入數(shù)據(jù)庫
*若是insert,則將數(shù)據(jù)對象刪去
*若是delete操作,則做插入操作,插入值為記錄中的BI
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.3數(shù)據(jù)庫的恢復(fù)例:日志文件中的記錄:(T1,start,,,)(T1,update,A,BI,AI)(T2,start,,,)(T2,insert,B,,AI)(T3,start,,,)(T1,commit,,,)(T3,update,C,BI,AI)(T3,commit,,,)……….
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.3數(shù)據(jù)庫的恢復(fù)存在問題:已提交事務(wù)量大
redo費(fèi)時(shí)
解決辦法:檢查點(diǎn)技術(shù)P223*運(yùn)行過程中由DBMS每隔一定時(shí)間在日志中設(shè)置一個(gè)檢查點(diǎn)(checkpoint)*在檢查點(diǎn)
-暫停事務(wù)的執(zhí)行-將上一個(gè)檢查點(diǎn)后已commit事務(wù)留在數(shù)據(jù)緩沖區(qū)中的所有數(shù)據(jù)寫入磁盤上的DB中
-將當(dāng)前日志緩沖區(qū)中的所有運(yùn)行記錄寫入磁盤的日志文件上-在日志文件中登入<checkpoint>記錄*在系統(tǒng)故障恢復(fù)時(shí),記入重做隊(duì)列的事務(wù)只是從最近一個(gè)檢查點(diǎn)之后到發(fā)生故障時(shí)已提交的事務(wù)實(shí)現(xiàn)者:系統(tǒng)自動(dòng)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.3數(shù)據(jù)庫的恢復(fù)
事務(wù)與檢查點(diǎn):P223
檢查點(diǎn)故障點(diǎn)檢查點(diǎn)
t事務(wù):T1T2T3T4T5恢復(fù)處理:T1不必恢復(fù)
T2和T4必須REDOT3和T5必須UNDO
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.3數(shù)據(jù)庫的恢復(fù)(3)介質(zhì)故障--硬故障
介質(zhì)故障(mediafailure)――指存儲(chǔ)數(shù)據(jù)庫的磁盤發(fā)生故障可能原因:磁盤損壞、磁頭碰撞、瞬時(shí)強(qiáng)磁場干擾、病毒等
后果:使數(shù)據(jù)庫受到破環(huán)(發(fā)生概率小,破壞性大)
恢復(fù)對策:
必要時(shí)需更換磁盤
修復(fù)系統(tǒng)(包括操作系統(tǒng)和DBMS),重新啟動(dòng)系統(tǒng)
加載最近的后備副本到新的磁盤
在日志文件中找出轉(zhuǎn)儲(chǔ)以后所有已提交的事務(wù)
對已提交的事務(wù)用后像進(jìn)行redo處理實(shí)現(xiàn)者:DBA配合
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.3數(shù)據(jù)庫的恢復(fù)(1)提交規(guī)則(commitrule)后像必須在事務(wù)提交前寫入非易失存儲(chǔ)器,即寫入數(shù)據(jù)庫或運(yùn)行記錄中.(2)先記后寫規(guī)則(logaheadrule)
如果后像在事務(wù)提交前寫入數(shù)據(jù)庫,則必須把前像首先記入運(yùn)行記錄中.
四、更新事務(wù)遵循原則(參考王能斌146頁)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.3數(shù)據(jù)庫的恢復(fù)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)習(xí)題一P250—7.37.107.20,7.24,7.28作業(yè)7.1系統(tǒng)目錄7.2事務(wù)7.3數(shù)據(jù)庫的恢復(fù)7.4數(shù)據(jù)庫的并發(fā)控制7.5并發(fā)事務(wù)的可串行化和可恢復(fù)性(略)7.6數(shù)據(jù)庫的完整性7.7數(shù)據(jù)庫的安全性第七章系統(tǒng)實(shí)現(xiàn)技術(shù)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制7.3
數(shù)據(jù)庫的并發(fā)控制
并發(fā)是在單處理機(jī)上,利用分時(shí)方法實(shí)現(xiàn)多個(gè)事務(wù)同時(shí)做數(shù)據(jù)庫的共享性允許多個(gè)用戶并發(fā)地存取其中的數(shù)據(jù)
多個(gè)事務(wù)同時(shí)訪問同一數(shù)據(jù),可能會(huì)破壞數(shù)據(jù)庫的一致性
(當(dāng)并發(fā)中有寫操作時(shí))
DBMS必須提供并發(fā)控制機(jī)制
并發(fā)的概念多事務(wù)順序執(zhí)行:串行執(zhí)行、串行存取,可保持?jǐn)?shù)據(jù)庫的一致性T3T2T1→
DBMS多事務(wù)并發(fā)執(zhí)行:T2DBMST1T3T3T2tT1
(1)改善系統(tǒng)的資源利用率(cpu、I/O等)
(2)改善短事務(wù)的響應(yīng)時(shí)間并發(fā)的目的TiTjt
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制7.3.1并發(fā)操作帶來的三個(gè)問題P2241.事務(wù)不加控制地并發(fā)執(zhí)行
三個(gè)問題
(1)丟失更新(loseupdate)
寫-寫沖突
T1
T2
read(A)5
執(zhí)
read(A)
5
行次
A:=A-1
4
序
write(A)
4
A:=2A+2
12
write(A)
12
A初值為5結(jié)果:事務(wù)T1對A的更新丟失串行T1->T2,x的終值為10
串行T2->T1,x的終值為11原因:兩個(gè)事務(wù)對同一數(shù)據(jù)并發(fā)寫,引發(fā)寫-寫沖突
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制(2)讀臟數(shù)據(jù)(dirtyread)
寫-讀沖突
T1
T2
read(A)
5執(zhí)
A:=A+1
6行
write(A)6次
read(A)
6
序
(rollback)
A=5
T2讀到的是不一致(不存在)的數(shù)據(jù)
臟數(shù)據(jù):未提交的隨后被撤銷的數(shù)據(jù)原因:一個(gè)事務(wù)讀另一個(gè)更新事務(wù)尚未提交的數(shù)據(jù),引發(fā)寫-讀沖突“臟”數(shù)據(jù)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制(3)
讀值不可復(fù)現(xiàn)或不可重復(fù)讀(unrepeatableread)
讀-寫沖突
T1
T2
執(zhí)read(A)
5行次.
read(A)5序.
A:=A-23
.
write(A)3
read(A)3T1未改A,兩次讀的值卻不同原因:兩次讀期間,另一事務(wù)修改X,引發(fā)讀-寫沖突
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制2.問題的根源
沖突,而沖突的起因在“寫”操作3.結(jié)果:數(shù)據(jù)不一致4.解決的辦法P226
通過合理安排并發(fā)執(zhí)行的各個(gè)事務(wù)的操作順序來控制并發(fā)
(1)封鎖技術(shù)(2)時(shí)標(biāo)技術(shù)5.
DBMS并發(fā)控制子系統(tǒng)的任務(wù)
P226
協(xié)調(diào)并發(fā)事務(wù)的執(zhí)行保證數(shù)據(jù)庫的完整性避免用戶得到不正確的數(shù)據(jù)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制封鎖的思路:事務(wù)在對數(shù)據(jù)對象操作前先加鎖鎖:與數(shù)據(jù)項(xiàng)相關(guān)的變量,反映數(shù)據(jù)項(xiàng)的狀態(tài),使并發(fā)事務(wù)對數(shù)據(jù)項(xiàng)的訪問能夠同步封鎖協(xié)議:加鎖時(shí)必須遵守的規(guī)則幾種有代表性的封鎖協(xié)議:補(bǔ)充
X鎖
(S,X)鎖:S--共享鎖,X--排他鎖
(S,U,X)鎖兩段封鎖協(xié)議(2PL)
嚴(yán)格的兩段封鎖協(xié)議7.3.2封鎖技術(shù)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制(1)鎖類型:X鎖,既用于讀操作又用于寫操作(2)定義:一個(gè)事務(wù)對數(shù)據(jù)對象加鎖之后到釋放之前,其它事務(wù)不能再對其加鎖→排它性(eXclusive)(3)操作:XFINDR或XLOCK(R):事務(wù)對數(shù)據(jù)R加X鎖
XRELEASER或UNLOCK(R):事務(wù)要解除對R的X鎖(4)加鎖協(xié)議可用相容矩陣表示一、X鎖其它T已有鎖鎖請求NLXYNX
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制(5)遵守的協(xié)議
(a)PX協(xié)議:
(b)PXC協(xié)議:
PX協(xié)議XRELEASER操作合并到事務(wù)結(jié)束操作中(6)鎖的釋放--事務(wù)結(jié)束(EOT)釋放
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制任何企圖更新R的事務(wù)必須先執(zhí)行XLOCKR,以獲得對R的X鎖,才能讀寫R;如果未獲準(zhǔn)X鎖,那么這個(gè)事務(wù)進(jìn)入等待隊(duì)列,一直到獲準(zhǔn)X鎖,事務(wù)才能繼續(xù)做下去。
T1T2
Xlock(A)read(A)5A:=A-1Xlock(A)
write(A)4等待
unlock(A)↓
Xlock(A)
read(A)4A:=2A+2
write(A)10unlock(A)
(rollback)5﹕﹕
﹕﹕﹕﹕﹕﹕時(shí)間不遵守PXC協(xié)議:寫操作一完就釋放鎖可能:讀臟數(shù)據(jù)引起連鎖回滾
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制T2讀T1未提交的數(shù)據(jù)(讀臟),且丟失更新(T1回滾時(shí)) T1T2
執(zhí) read(A)5
行 read(A)5
次 A:=A-14
序 write(A)4 A:=2A+212
write(A)12
XlockAXlockA防止了丟失更新WaitWaitWait……XlockAread(A)A:=2A+2…… CommitUnlockA遵守PXC協(xié)議:
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制(1)鎖類型:S鎖(Sharinglocks),用于讀操作
X鎖(eXclusivelocks),用于寫操作(2)關(guān)于S鎖定義--一個(gè)事務(wù)對數(shù)據(jù)對象加S鎖之后,允許其它事務(wù)加S鎖,但不能加X鎖操作--SFINDR、UPDXR、SRELEASERSLOCK(R)、UNLOCK(R)
相關(guān)協(xié)議
(a)PS協(xié)議:用SFINDR獲得鎖才能操作用UPDXR升級鎖才能更新
(b)PSC協(xié)議:SRELEASER操作合并到事務(wù)結(jié)束操作中二、(S,X)鎖(PP.228)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制若把鎖保持到事務(wù)結(jié)束,則不會(huì)讀入“臟”數(shù)據(jù),也不會(huì)出現(xiàn)讀值不可復(fù)現(xiàn)讀操作一完就釋放鎖可能引起讀值不可復(fù)現(xiàn)
T1T2
Slock(A)
read(A)
unlock(A)
Xlock(A)
write(A)
unlock(A)
Slock(A)
read(A)
unlock(A)﹕﹕時(shí)間﹕﹕﹕﹕關(guān)于鎖的釋放問題舉例:
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制
T1T2
Slock(A)
read(A)
UPDX(A)
A:=A-1
Xlock(A)
write(A)等待
unlock(A)↓
Xlock(A)
write(A)
unlock(A)
(rollback)﹕時(shí)間順序?qū)懖僮饕煌昃歪尫沛i可能引起讀臟數(shù)據(jù)﹕﹕﹕﹕
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制(4)特點(diǎn):
允許多事務(wù)并發(fā)讀,并發(fā)度較高,繁簡適度,應(yīng)用廣泛會(huì)出現(xiàn)“餓死”現(xiàn)象--X鎖的申請遲遲不能獲準(zhǔn)(5)應(yīng)遵守先申請先服務(wù)(fcfs)原則其它T已有鎖鎖請求NLSXYYNYNNSX(3)相容矩陣
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制三、封鎖的粒度和多粒度封鎖P229
數(shù)據(jù)對象的大小(DB、表、元組、屬性等)→粒度
封鎖粒度→被鎖數(shù)據(jù)對象的大小
多粒度封鎖→一個(gè)系統(tǒng)中提供不同粒度的封鎖(庫/表/元組/列)(1)概念(2)封鎖粒度的選擇因素兼顧系統(tǒng)開銷與并發(fā)度粒度大→并發(fā)度低→(鎖的維護(hù))開銷小粒度小→并發(fā)度高→開銷大
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制一.“活鎖”問題定義:系統(tǒng)可能使某個(gè)事務(wù)永遠(yuǎn)處于等待狀態(tài),得不到封鎖的機(jī)會(huì),這種現(xiàn)象稱為“活鎖”。原因:事務(wù)有優(yōu)先級,低級的始終等待解決:應(yīng)遵守先申請先服務(wù)(fcfs)原則7.3.3封鎖帶來的問題
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制二、“餓死”問題定義:因頻繁申請S鎖而使X鎖不可得的現(xiàn)象。解決:
事務(wù)T申請對數(shù)據(jù)項(xiàng)Q加S鎖時(shí),授權(quán)加鎖的條件是:
◆不存在在數(shù)據(jù)項(xiàng)Q上持有X鎖的其它事務(wù);
◆不存在等待對數(shù)據(jù)項(xiàng)Q加鎖且先于T申請加鎖的事務(wù)先來先服務(wù)FCFS
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制對付死鎖的辦法:
--預(yù)防死鎖
--檢測死鎖并處理檢測死鎖的方法:事務(wù)依賴圖P231圖7.15
有向圖:事務(wù)用結(jié)點(diǎn)表示如果Ti等待Tj,則從Ti到Tj有一條指向Tj的邊
當(dāng)且僅當(dāng)依賴圖中沿箭頭方向出現(xiàn)回路時(shí)→死鎖三.死鎖(deadlock)--事務(wù)間對鎖的循環(huán)等待T1
xlock(D1)…xlock(D2)…T2
…xlock(D2)…xlock(D1)…
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制t四、并發(fā)操作的調(diào)度
每個(gè)事務(wù)含有若干有序的操作
例:T1的操作R1(x),W1(x),R1(y)T2的操作R2(y),W2(y),R2(z)
(1)調(diào)度(schedules)
:對n個(gè)事務(wù)中所有操作的執(zhí)行次序的一個(gè)安排
例:
S1=R1(x)W1(x)R1(y)R2(y)W2(y)R2(z)S2=R1(x)R2(y)W1(x)W2(y)R1(y)R2(z)S3=R1(x)R2(y)W2(y)R2(z)W1(x)R1(y)
多事務(wù)并發(fā)操作
交叉執(zhí)行的次序可不同
得到的結(jié)果可能不同1.事務(wù)的調(diào)度、串行調(diào)度和并發(fā)調(diào)度
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制(2)兩類調(diào)度
串行調(diào)度:在一個(gè)調(diào)度中,多個(gè)事務(wù)依次順序執(zhí)行
*執(zhí)行結(jié)果正確
并發(fā)調(diào)度:在調(diào)度中,各個(gè)事務(wù)在時(shí)間上交叉執(zhí)行
*可能破壞數(shù)據(jù)庫的一致性(3)系統(tǒng)調(diào)度原則:
不同事務(wù)的操作既要交叉執(zhí)行(利用資源)
又要避免訪問沖突(4)調(diào)度的等價(jià)
S1和S2等價(jià):同一事務(wù)集的兩個(gè)調(diào)度S1和S2,在數(shù)據(jù)庫任何相同初始狀態(tài)下,執(zhí)行結(jié)果一樣
→目標(biāo)等價(jià)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制2.可串行化概念
(1)可串行化調(diào)度
執(zhí)行結(jié)果等價(jià)于某一串行調(diào)度的執(zhí)行結(jié)果的并發(fā)調(diào)度例:有兩個(gè)事務(wù)T1和T2,操作序列如下:
T1→READ(A)
T2→READ(B)
A:=A-5B:=B-5WRITE(A)WRITE(B)
READ(B)
B:=B+5WRITE(B)
設(shè)初始值A(chǔ)=10,B=10
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制
T1T2T1T2READ(A)10READ(B)10
A:=A-55B:=B-55WRITE(A)WRITE(B)READ(B)10
READ(A)10B:=B+515A:=A-55WRITE(B)WRITE(A)
READ(B)15READ(B)5
B:=B-510B:=B+510WRITE(B)WRITE(B)
(a)串行調(diào)度1(A=5,B=10)(b)串行調(diào)度2(A=5,B=10)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制
T1T2T1T2READ(A)10READ(A)10
READ(B)
10A:=A-55A:=A-55READ(B)
10
B:=B-55WRITE(A)WRITE(A)5B:=B-55WRITE(B)
READ(B)10READ(B)
5WRITE(B)B:=B+510B:=B+515WRITE(B)
WRITE(B)
(c)可串行化調(diào)度(A=5,B=10)(d)不可串行化調(diào)度(A=5,B=15)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制調(diào)度(d)不目標(biāo)等價(jià)于任一串行調(diào)度→不可串行化調(diào)度有兩大類操作對:不沖突操作對沖突操作對(同一對象,有寫)
Ri(x)和Rj(x)Ri(x)和Wj(x)
Ri(x)和Wj(y)Wi(x)和Wj(x)
Wi(x)和Wj(y)造成兩個(gè)調(diào)度不等價(jià)的主要原因:沖突操作的執(zhí)行次序不同
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制(1)作用:
保證調(diào)度可串行化(2)兩條規(guī)則:T1:lock(A)unlock(A)lock(B)lock(C)unlock(C)unlock(B)
T2:lock(A)lock(B)lock(C)unlock(B)unlock(C)unlock(A)
鎖增長階段鎖縮減階段獲得封鎖釋放封鎖(a)事務(wù)對數(shù)據(jù)對象先加鎖后操作(b)一旦開始釋放鎖,則不可再加鎖t5.兩段封鎖協(xié)議(two-phaselockingprotocol,簡稱2PL)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制(3)2PL與可串行化的關(guān)系
如果并發(fā)執(zhí)行的所有事務(wù)都遵守兩段鎖協(xié)議則對它們的任何調(diào)度都是可串行化的
2PL協(xié)議是調(diào)度可串行化的充分條件,并不是必要條件
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制是一個(gè)可串行化調(diào)度,等價(jià)于T1→T2→T3:S’=R1(A)R2(B)W2(A)W3(B)但T2在釋放B的鎖給T3之后,對A加鎖,不滿足2PL協(xié)議例:
T1T2T3
Slock(A)
read(A)
unlock(A)
Slock(B)
read(B)
unlock(B)
Xlock(B)
write(B)
unlock(B)
Xlock(A)
write(A)
unlock(A)S=R1(A)R2(B)W3(B)W2(A)圖:T1→T2→T3
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制說明:(1)
可串行化調(diào)度與串行調(diào)度的區(qū)別前者交叉執(zhí)行各事務(wù)的操作,效果上相當(dāng)于它們的某一串行執(zhí)行;
后者串行執(zhí)行各事務(wù),無并發(fā)意義,系統(tǒng)資源利用率低(2)DBMS并發(fā)控制的目的就是保證事務(wù)執(zhí)行的可串行化(3)
對同一個(gè)事務(wù)集的可串行化調(diào)度可能不止一個(gè),彼此之間不一定等價(jià)(結(jié)果可能不同),如果用戶對各事務(wù)的執(zhí)行次序有要求,則應(yīng)按次序交付各事務(wù)(4)
保證事務(wù)執(zhí)行的可串行化的實(shí)用方法是:由DBMS定一個(gè)協(xié)議,按協(xié)議執(zhí)行事務(wù)(加鎖方法、時(shí)間標(biāo)記法、樂觀法)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制五、SQL中事務(wù)的存取模式和隔離級別1.事務(wù)的存取模式:2種
SETTRANSACTIONREADONLY
隨后事務(wù)均只讀
SETTRANSACTIONREADWRITE
隨后事務(wù)均為讀寫型(缺省)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制2.事務(wù)的隔離級別:4級SERIALIZABLE
(缺?。㏑EPEATABLEREADREADCOMMITTEDREADUNCOMMITTED--可串行化允許事務(wù)與其它事務(wù)并發(fā)執(zhí)行,必須保證并發(fā)調(diào)度是可串行化的
-可重復(fù)讀只允許事務(wù)讀已提交的數(shù)據(jù),兩次讀同一數(shù)據(jù)時(shí)不允許其它事務(wù)修改該數(shù)據(jù)--讀提交數(shù)據(jù)允許事務(wù)讀已提交的數(shù)據(jù),不要求“可重復(fù)讀”--可以讀未提交數(shù)據(jù)允許事務(wù)讀已提交或未提交數(shù)據(jù)定義:SETTRANSACTIONISOLATIONLEVEL<SERIALIZABLE|REPEATABLEREAD|READCOMMITTED|READUNCOMMITTED>
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的并發(fā)控制7.1系統(tǒng)目錄7.2事務(wù)7.3數(shù)據(jù)庫的恢復(fù)7.4數(shù)據(jù)庫的并發(fā)控制7.5并發(fā)事務(wù)的可串行化和可恢復(fù)性(略)7.6數(shù)據(jù)庫的完整性7.7數(shù)據(jù)庫的安全性第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.4數(shù)據(jù)庫的完整性一.完整性子系統(tǒng)和完整性規(guī)則完整性:數(shù)據(jù)的正確性、有效性和相容性
正確性:數(shù)據(jù)的合法性(域中的值)
有效性:數(shù)據(jù)是否在所定義的有效范圍內(nèi)
相容性:同一事實(shí)的兩個(gè)數(shù)據(jù)應(yīng)相同防范對象:不合語義的數(shù)據(jù)實(shí)現(xiàn):完整性規(guī)則、完整性檢查
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.6數(shù)據(jù)庫的完整性
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.6數(shù)據(jù)庫的完整性完整性規(guī)則--數(shù)據(jù)庫的數(shù)據(jù)應(yīng)該滿足的條件完整性規(guī)則集--由DBA或應(yīng)用程序員事先向完整性子 系統(tǒng)提供的有關(guān)數(shù)據(jù)約束的一組規(guī)則完整性規(guī)則的組成:
(1)何時(shí)檢查:規(guī)則的觸發(fā)條件WHENEVER<事件>(2)檢查內(nèi)容:約束條件或謂詞IF<條件>
(3)做何處理:動(dòng)作THEN<動(dòng)作>/ELSE
完整性子系統(tǒng)--DBMS中執(zhí)行完整性檢查的子系統(tǒng)功能:◆
監(jiān)督:監(jiān)督事務(wù)的執(zhí)行,測試是否違反完整性規(guī)則
◆保護(hù):若有違反現(xiàn)象,則采取恰當(dāng)?shù)牟僮?(拒絕操作、報(bào)告、改正錯(cuò)誤)
第七章系統(tǒng)實(shí)現(xiàn)技術(shù)7.6數(shù)據(jù)庫的完整性四.SQL中的完整性約束:域約束、表約束、斷言創(chuàng)建并引用域在創(chuàng)建和修改基表時(shí)說明約束3.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 抵押合同六8篇
- 伸縮門采購合同合同
- 新零售模式下智慧物流配送優(yōu)化策略
- 灑水車合同5篇
- 商業(yè)保密協(xié)議書十
- 公司員工保底協(xié)議
- 2025年貴港貨運(yùn)資格證培訓(xùn)考試題
- 2025年寧夏貨車從業(yè)資格證答題軟件
- 陶瓷插芯市場分析及競爭策略分析報(bào)告
- 珠光材料市場分析及競爭策略分析報(bào)告
- 2025年安徽職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫學(xué)生專用
- 2025年黑龍江農(nóng)墾職業(yè)學(xué)院單招職業(yè)傾向性測試題庫附答案
- 2025年黑龍江農(nóng)業(yè)工程職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫完整版
- 小學(xué)科學(xué)點(diǎn)亮我的小燈泡省公開課一等獎(jiǎng)全國示范課微課金獎(jiǎng)?wù)n件
- 2023-2024學(xué)年高中信息技術(shù)必修一滬科版(2019)第三單元項(xiàng)目六《 解決溫標(biāo)轉(zhuǎn)換問題-認(rèn)識程序和程序設(shè)計(jì)語言》教學(xué)設(shè)計(jì)
- 浙江新陣地教育聯(lián)盟2025屆高三第二次聯(lián)考化學(xué)試題及答案
- 課件:以《哪吒2》為鏡借哪吒精神燃開學(xué)斗志
- 新生兒胃腸減壓護(hù)理
- 七年級數(shù)學(xué)下冊 第8章 單元測試卷(蘇科版 2025年春)
- 2025年全球及中國大型不銹鋼鑄件行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025年山東化工職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
評論
0/150
提交評論