版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第八章數(shù)據(jù)庫(kù)管理一、本章重要概念1)事務(wù)的定義, COMMIT 和 ROLLBACK 的語義,事務(wù)是由若干 數(shù)據(jù)庫(kù)操作 組成的 一個(gè)邏輯工作單位 ,是一個(gè)不可分割的工作單位。一個(gè)應(yīng)用程序可以包括多個(gè)事務(wù)。事務(wù)以BEGINTRANSACTION語句的成功執(zhí)行開始,以COMMIT或ROLLBACK語句的成功執(zhí)行結(jié)束。COMMIT (提交)語句表示一事務(wù)的全部操作都已成功,它對(duì) DB 的所有更新可真正寫到 DB 中。ROLLBACK (回退)語句表示事務(wù)沒有成功地完成全部操作,系統(tǒng)將撤消該事務(wù)對(duì) DB 已作的更新事務(wù)的 ACID 性質(zhì)事務(wù)有四個(gè)重要性質(zhì):原子性、一致性、隔離性和持久性。通常稱為“AC
2、ID性質(zhì)”。原子性( atomicity):事務(wù)對(duì)數(shù)據(jù)庫(kù)的更新要么全部起作用,要么完全不起作用。DBMS 的事務(wù)管理子系統(tǒng)一致性( consistency):事務(wù)將數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)轉(zhuǎn)變?yōu)榱硪粋€(gè)一致性狀態(tài)。程序員(正確地編寫事務(wù))DBMS 的完整性子系統(tǒng)隔離性( isolation ):事務(wù)相互隔離,在多個(gè)事務(wù)并發(fā)執(zhí)行時(shí),任一事務(wù)的更新操作在該事務(wù)成功提交前對(duì)其他事務(wù)都是不可見的。DBMS 的并發(fā)控制子系統(tǒng)持久性( durability ):事務(wù)一旦成功提交,其對(duì)數(shù)據(jù)庫(kù)的更新就永久有效,不會(huì)因系統(tǒng)崩潰等而丟失。 DBMS 的恢復(fù)管理子系統(tǒng)事務(wù)的狀態(tài)變遷圖。2)存儲(chǔ)器類型,穩(wěn)定存儲(chǔ)器的實(shí)現(xiàn),
3、數(shù)據(jù)傳送過程。3)恢復(fù)的定義、系統(tǒng)能把數(shù)據(jù)庫(kù)從被破壞、不正確的狀態(tài)、恢復(fù)到最近一個(gè)正確的狀態(tài),DBMS的這種能力稱為數(shù)據(jù)庫(kù)的可恢復(fù)性。基本原則和實(shí)現(xiàn)方法,恢復(fù)的基本策略:冗余(數(shù)據(jù)重復(fù)存儲(chǔ))實(shí)現(xiàn)方法:備份定期對(duì)數(shù)據(jù)庫(kù)復(fù)制或轉(zhuǎn)儲(chǔ) (靜態(tài)轉(zhuǎn)儲(chǔ)和動(dòng)態(tài)轉(zhuǎn)儲(chǔ), 海量轉(zhuǎn)儲(chǔ)和增量轉(zhuǎn)儲(chǔ))。日志執(zhí)行事務(wù)時(shí),記錄其開始、結(jié)束和對(duì)DB 的每次更新操作。故障的類型,事務(wù)故障非預(yù)期事務(wù)故障:運(yùn)算錯(cuò)誤、數(shù)據(jù)錯(cuò)誤、死鎖等,故障事務(wù)夭折可預(yù)期事務(wù)故障:在事務(wù)中可預(yù)期出錯(cuò)的地方所加的ROLLBACK 語句系統(tǒng)故障: 硬件、系統(tǒng)軟件出錯(cuò),停電等,事務(wù)執(zhí)行被打斷,內(nèi)存中數(shù)據(jù)被破壞介質(zhì)故障: 磁頭、磁盤控制器或磁盤損壞,盤上數(shù)據(jù)丟失
4、,病毒破壞等,DB遭破壞檢查點(diǎn)機(jī)制,DBMS 定時(shí)設(shè)置檢查點(diǎn), 在檢查點(diǎn)時(shí)刻才真正做到把對(duì)DB 的修改寫到磁盤, 并在日志文件寫入一條檢查點(diǎn)記錄。根據(jù)日志文件建立重做隊(duì)列和事務(wù)撤消隊(duì)列。對(duì)重做隊(duì)列中的事務(wù)進(jìn)行REDO 處理,對(duì)撤消隊(duì)列中的事務(wù)進(jìn)行UNDO 處理。REDO 和 UNDO 操作,運(yùn)行記錄優(yōu)先原則。( 4)并發(fā)操作帶來的三個(gè)問題,丟失更新問題: 一事務(wù)所作的更新操作因另一事務(wù)的操作而丟失。讀“臟數(shù)據(jù)”問題: 又稱為未提交依賴,指一事務(wù)取用了別的事務(wù)未提交隨后又被撤消的數(shù)據(jù)。不一致分析問題: 指事務(wù)從數(shù)據(jù)庫(kù)中讀取了處于不一致狀態(tài)的數(shù)據(jù),并因此進(jìn)行了不一致的分析。鎖、排它型封鎖(寫鎖,
5、X 封鎖):一個(gè)事務(wù)對(duì)數(shù)據(jù)對(duì)象加了X 鎖后,在它釋放 X 鎖之前不允許其他事務(wù)再對(duì)該數(shù)據(jù)對(duì)象加任何鎖。共享型鎖(讀鎖, S 封鎖) :一個(gè)事務(wù)對(duì)數(shù)據(jù)對(duì)象加了 S 鎖后,允許其他事務(wù)再對(duì)該數(shù)據(jù)對(duì)象加 S 鎖,但在它釋放 S 鎖之前不允許其他事務(wù)加 X 鎖。PX協(xié)議、事務(wù)若要更新數(shù)據(jù),則必須先提出對(duì)此數(shù)據(jù)對(duì)象的X 封鎖請(qǐng)求;事務(wù)如果未獲準(zhǔn) X 封鎖,那么進(jìn)入等待狀態(tài),直至獲準(zhǔn)在此數(shù)據(jù)對(duì)象上的X 封鎖,才能繼續(xù)執(zhí)行。PX 協(xié)議可以解決因多事務(wù)同時(shí)更新同一數(shù)據(jù)對(duì)象而引起的更新丟失問題。任何事務(wù) T 在更新記錄 R 之前必須先執(zhí)行“ XFIND R ”操作,以獲得對(duì) R 的 X 鎖,才能讀或?qū)懹涗汻;如
6、果未獲準(zhǔn) X 鎖,那么這個(gè)事務(wù)進(jìn)入等待狀態(tài)。一直到獲準(zhǔn)X 鎖,事務(wù)才能繼續(xù)做下去。(如果過早地解鎖,有可能使其他事務(wù)讀了未提交數(shù)據(jù)(且隨后被回退),引起丟失其他事務(wù)的更新。PXC 協(xié)議,是在“ PX 協(xié)議”上再加一規(guī)定:解除X 鎖的操作合并到事務(wù)的結(jié)束(COMMIT或 ROLLBACK )操作中。 PXC 協(xié)議可以解決因事務(wù) ROLLBACK 而引起的更新丟失問題。S 鎖、 PS 協(xié)議、 PSC 協(xié)議,PS:任何要更新記錄R 的事務(wù)必須先執(zhí)行 “ SFIND R”操作 ,以獲得對(duì) R 的 S 鎖 .當(dāng)事務(wù)獲準(zhǔn)對(duì) R 的 S 鎖后 ,若要更新記錄 R 必須用“UPDXR”操作 ,這個(gè)操作首先 把
7、 S 鎖升級(jí)為 X 鎖,若成功則更新記錄,否則這個(gè)事務(wù)進(jìn)入等待隊(duì)列。PSC:PS 協(xié)議加上 S 鎖的解除操作應(yīng)該合并到事務(wù)的結(jié)束(COMMIT 或 ROLLBACK )操作中?;铈i、出現(xiàn)某個(gè)事務(wù)永遠(yuǎn)處于等待狀態(tài)得不到執(zhí)行的現(xiàn)象。避免活鎖的一個(gè)簡(jiǎn)便方法是采用“先來先服務(wù)” 排隊(duì)的策略。 封鎖子系統(tǒng)按請(qǐng)求在時(shí)間上的先后次序?qū)κ聞?wù)排序,數(shù)據(jù)對(duì)象上原有的鎖一釋放,即執(zhí)行隊(duì)列中第一個(gè)事務(wù)的封鎖請(qǐng)求。餓死和死鎖,出現(xiàn)若干事務(wù)因循環(huán)等待而無法繼續(xù)執(zhí)行的現(xiàn)象。并發(fā)調(diào)度,串行調(diào)度,并發(fā)調(diào)度的可串行化,兩段封鎖法,事務(wù)的執(zhí)行次序稱為“調(diào)度” 。若多個(gè)事務(wù)依次執(zhí)行,則稱為事務(wù)的串行調(diào)度 。若設(shè)法(例如利用分時(shí)的方法
8、)多個(gè)事務(wù)同時(shí)被處理(即交錯(cuò)執(zhí)行) ,則稱為事務(wù)的并發(fā)調(diào)度 。在應(yīng)用環(huán)境中,事務(wù)的任一串行調(diào)度都是有效的(正確的) ,但是事務(wù)的并發(fā)調(diào)度不一定是正確的,有可能產(chǎn)生前面提到的不一致性問題。可串行化概念如果一個(gè)并發(fā)調(diào)度與某一串行調(diào)度具有相同的執(zhí)行結(jié)果, 那么稱這個(gè)并發(fā)調(diào)度是“可串行化的調(diào)度” (即正確的并發(fā)調(diào)度),否則是不可串行化的調(diào)度。兩段封鎖協(xié)議事務(wù)在對(duì)數(shù)據(jù)對(duì)象存取之前必須先獲得對(duì)此數(shù)據(jù)對(duì)象的封鎖,事務(wù)在解除了一個(gè)鎖之后不再獲得任何鎖。SQL 中事務(wù)的存取模式和隔離級(jí)別。事務(wù)的存取模式READ ONLY (只讀型)READ WRITE (讀寫型)事務(wù)的隔離級(jí)別SERIALIZABLE (可串行
9、化)REPEATABLE READ(可重復(fù)讀)READ COMMITED (讀提交數(shù)據(jù))READ UNCOMMITED (讀未提交數(shù)據(jù))5)完整性的定義,是指數(shù)據(jù)的正確性、有效性和相容性。完整性子系統(tǒng)的功能,完整性子系統(tǒng): DBMS 中執(zhí)行完整性檢查的子系統(tǒng)。其功能:監(jiān)督事務(wù)的執(zhí)行,測(cè)試其是否違反完整性約束條件;若有違反,則按進(jìn)行預(yù)定的處理。完整性規(guī)則的組成。每個(gè)規(guī)則包括三部分:觸發(fā)條件 規(guī)定何時(shí)執(zhí)行本規(guī)則進(jìn)行檢查;約束條件 又稱謂詞,定義應(yīng)滿足的條件;否則子句 規(guī)定不滿足條件時(shí)該作的處理。域完整性規(guī)則:定義屬性取值范圍。域聯(lián)系的規(guī)則:定義屬性間的聯(lián)系、影響和約束。關(guān)系完整性規(guī)則:定義更新操作
10、對(duì)值的影響和限制。SQL 中的三大類完整性約束,完整性約束分為三大類:域約束用“ CREATE DOMAIN ”語句定義新的域 ,并可出現(xiàn) CHECK 子句。非空值約束( NOT NULL )基于屬性的檢查子句 (CHECK):基本表約束主鍵約束可用主鍵約束來描述實(shí)體完整性規(guī)則。 主鍵約束可用兩種形式表示: 主鍵子句和主鍵短語。主碼可在定義關(guān)系的 CREATE TABLE 語句中使用 PRIMARY KEY 關(guān)鍵字加以定義。有兩種定義主鍵的方法, 一種是在屬性后增加關(guān)鍵字, 另一種是在屬性表中加入額外的定義主鍵的子句:PRIMARY KEY( 主鍵屬性名表 )使用關(guān)鍵字 UNIQUE ,說明該
11、屬性(或?qū)傩越M)的值不能重復(fù)出現(xiàn)。外鍵約束FOREIGNKEY (列名序列REFERENCES ONDELETE 參照動(dòng)作 ONUPDATE 參照動(dòng)作1).( 2)參照動(dòng)作可以有五種方式:NO ACTION (無影響)CASCADE (級(jí)聯(lián)方式)RESTRICT(受限方式)SETNULL (置空值)SETDEFAULT (置缺省值) 檢查約束對(duì)單個(gè)關(guān)系的元組值加以約束。對(duì)表內(nèi)元組說明約束時(shí),在 CREATE TABLE 語句中的屬性表、主碼、外部碼的說明之后加上 CHECK 子句。每當(dāng)對(duì)元組進(jìn)行插入或修改操作時(shí), 都要對(duì) CHECK 子句的條件表達(dá)式求值, 如果條件為假, 違背了約束, 系統(tǒng)將
12、拒絕該插入或修改操作。CHECK 子句的一般格式為:CHECK 斷言定義:CREATE ASSERTION 斷言名CHECK (條件)撤消:DROP ASSERTION 斷言名斷言也可以在關(guān)系定義中用檢查子句形式定義, 但是檢查子句不一定能保證完整性約束徹底實(shí)現(xiàn),而斷言能保證不出差錯(cuò)。 SQL3 中的觸發(fā)器技術(shù)。觸發(fā)器( Trigger)是一個(gè)能由系統(tǒng)自動(dòng)執(zhí)行對(duì)數(shù)據(jù)庫(kù)修改的語句。觸發(fā)器有時(shí)也稱為主動(dòng)規(guī)則(Active Rule )或事件條件動(dòng)作規(guī)則 (Event ConditionActionRule,ECA 規(guī)則)。(1)觸發(fā)時(shí)間 : BEFORE、 AFTER 、 INSTEADOF ;(
13、2)觸發(fā)事件 :有三類 - UPDATE 、 DELETE 、INSERT(3)目標(biāo)表名 : 當(dāng)目標(biāo)表的數(shù)據(jù)被更新 (插入、刪除、修改)時(shí) , 將激活觸發(fā)器。(4)舊值和新值的別名表 : REFERENCES 子句觸發(fā)器有兩類:元組級(jí)觸發(fā)器和語句級(jí)觸發(fā)器。元組級(jí)觸發(fā)器帶 “ FOREACHROW ” 子句,而語句級(jí)觸發(fā)器沒有;元組級(jí)觸發(fā)器對(duì)每一個(gè)修改的元組都要檢查一次,而語句級(jí)觸發(fā)器對(duì)SQL 語句的執(zhí)行結(jié)果去檢查。語句級(jí)觸發(fā)器,不能直接引用修改前后的元組,但可以引用修改前后的元組集。舊的元組集由被刪除的元組或被修改元組的舊值組成,而新的元組集由插入的元組或被修改元組的新值組成。INSTEAD
14、OF 表示:在觸發(fā)事件發(fā)生時(shí) ,只要滿足 WHEN 條件,就執(zhí)行動(dòng)作部分的操作,而觸發(fā)事件的操作不再執(zhí)行。6)安全性的定義、級(jí)別,定義是指保護(hù) DB ,防止不合法的使用,以免數(shù)據(jù)的泄漏、非法更改和破壞。安全性級(jí)別設(shè)置安全措施所牽涉的層次。分成環(huán)境級(jí)、職員級(jí)、 OS 級(jí)、網(wǎng)絡(luò)級(jí)和 DBS 級(jí)等五個(gè)級(jí)別。這里只討論DBS 級(jí)的安全性問題。權(quán)限,權(quán)限的授予、轉(zhuǎn)授與回收授權(quán)可根據(jù)需要把在某對(duì)象上的某些權(quán)限授予特定的用戶。轉(zhuǎn)授若擁有轉(zhuǎn)授權(quán),則允許把已獲得的權(quán)限再轉(zhuǎn)授給其他用戶?;厥找部梢猿废咽诮o某用戶的某些權(quán)限。權(quán)限的種類:讀插入修改刪除SQL 中的安全性機(jī)制(視圖、SQL 用戶權(quán)限及操作 )視圖視圖
15、是虛表,視圖機(jī)制使DBS 具有三個(gè)優(yōu)點(diǎn):數(shù)據(jù)安全性、邏輯獨(dú)立性、用戶操作簡(jiǎn)便性。SQL 中的用戶權(quán)限及操作六類權(quán)限: SELECT,INSERT, DELETE ,UPDATE,REFERENCES, USAGE。授權(quán)( GRANT )語句:將關(guān)系和視圖操作權(quán)授予特定用戶回收( REVOKE )語句:回收已授給某用戶的權(quán)限。第十章對(duì)象數(shù)據(jù)庫(kù)系統(tǒng)一、本章重要概念1)新一代 DBS 的兩條途徑: ORDBS 和 OODBS 。ORDB 中的 SELECT 語句( SQL3 標(biāo)準(zhǔn)):引入了路徑表達(dá)式、嵌套與解除嵌套等概念。在傳統(tǒng)的關(guān)系數(shù)據(jù)模型基礎(chǔ)上,提供元組、 數(shù)組、集合一類豐富的數(shù)據(jù)類型以及處理新
16、的數(shù)據(jù)類型操作的能力,并且有繼承性和對(duì)象標(biāo)識(shí)等面向?qū)ο筇攸c(diǎn)。OODB 中的 SELECT 語句( ODMG 標(biāo)準(zhǔn) OQL ):有了更多的擴(kuò)充,并與宿主語言語句混合起來,可以表達(dá)更為復(fù)雜的查詢操作。( 2)平面關(guān)系模型,嵌套關(guān)系模型,復(fù)合對(duì)象模型,引用類型,對(duì)象聯(lián)系圖的成分及表示方法,對(duì)象聯(lián)系圖數(shù)據(jù)的泛化 /細(xì)化,繼承性。數(shù)據(jù)的泛化細(xì)化:對(duì)概念之間聯(lián)系進(jìn)行抽象的一種方法?!胺夯保悍Q較高層上抽象是較低層上抽象的“泛化” 。(在較低層上抽象表達(dá)與之聯(lián)系的較高層上的抽象, )“細(xì)化”:稱較低層上抽象是較高層上抽象的 “細(xì)化”。這種細(xì)化聯(lián)系是一種 “是”( is a)的聯(lián)系。子類具有 繼承性 ,繼承超類的特征 ,而子類本身又有其它的特征。泛化 /細(xì)化聯(lián)系用泛化邊 (雙線箭頭 )表示 ,泛化邊從子類指向超類。3) OO 的數(shù)據(jù)類型系統(tǒng) :基本類型,五種復(fù)合類型,引用類型。一、基本數(shù)據(jù)類型 :整型、浮點(diǎn)型、字符型、字符串、布爾型和枚舉型;二、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 采購(gòu)牛羊肉買賣合同范本版3篇
- 采購(gòu)合同培訓(xùn)合作伙伴分享3篇
- 采購(gòu)合同執(zhí)行流程的完全手冊(cè)3篇
- 2024年公共場(chǎng)所中央空調(diào)設(shè)備安全檢查與保養(yǎng)合同范本3篇
- 2024年標(biāo)準(zhǔn)建設(shè)工程委托代理協(xié)議一
- 采購(gòu)合同輕松實(shí)現(xiàn)數(shù)字化轉(zhuǎn)型3篇
- 采購(gòu)合同文件3篇
- 藝術(shù)史與人工智能的融合-洞察分析
- 藥品安全監(jiān)管培訓(xùn)
- 采購(gòu)合同管理的信息化解決方案3篇
- 邏輯樹的類型及應(yīng)用舉例
- 山東省建筑工程消耗量定額計(jì)算規(guī)則及定額解釋樣本
- 義務(wù)教育科學(xué)課程標(biāo)準(zhǔn)(2022年版)解讀
- 新建南通至寧波高速鐵路站前Ⅲ標(biāo)二分部出海棧橋及綜合碼頭(自用)工程海域使用論證報(bào)告表
- 2023-2024學(xué)年廣東省東莞市七年級(jí)上期末數(shù)學(xué)試卷附答案
- 檢察機(jī)關(guān)的體制與組織機(jī)構(gòu)課件
- 常用光電傳感器介紹課件
- 山東省濰坊市濰城區(qū)2023-2024學(xué)年六年級(jí)上學(xué)期期末語文試題
- 電玩城崗位流程培訓(xùn)方案
- 會(huì)計(jì)師事務(wù)所保密制度
- 復(fù)合機(jī)器人行業(yè)分析
評(píng)論
0/150
提交評(píng)論