下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
習(xí)題66.1什么是事務(wù)?它與一般的程序有什么不同?為什么一般程序不提ACID特性?答:事務(wù)代表了用戶要完成的一項(xiàng)工作任務(wù),是將一組數(shù)據(jù)庫操作打包起來形成一個(gè)邏輯獨(dú)立的工作單元,這個(gè)工作單元不可分割,其中包含的數(shù)據(jù)庫操作要么全部都發(fā)生,要么全部都不發(fā)生。程序和事務(wù)是兩個(gè)不同的概念,程序雖然也包含一組操作,但這組操作沒有蘊(yùn)含不可分割的原子性概念,程序執(zhí)行過程中可能會(huì)出錯(cuò)或發(fā)生異常。程序一般不提ACID特性,原因在于程序通常處理的是內(nèi)存數(shù)據(jù)結(jié)構(gòu),其數(shù)據(jù)一致性體現(xiàn)在程序代碼邏輯中。如果需要保證非易失性數(shù)據(jù)的ACID特性,則程序中可以包含一個(gè)或多個(gè)事務(wù),通過事務(wù)來處理ACID特性。6.2什么是日志文件?為什么要使用日志文件?登記日志文件時(shí)為什么必須先寫日志文件,后寫數(shù)據(jù)庫?日志文件能否和數(shù)據(jù)庫存儲(chǔ)在一起,為什么?答:日志文件是用來記錄對數(shù)據(jù)庫每一次更新活動(dòng)的文件。使用日志文件,在系統(tǒng)發(fā)生故障時(shí)根據(jù)日志文件中的記錄可以將數(shù)據(jù)庫恢復(fù)到數(shù)據(jù)庫事務(wù)執(zhí)行之前的狀態(tài),也可以重新執(zhí)行一個(gè)事務(wù),保證數(shù)據(jù)庫處于一個(gè)一致的狀態(tài)。登記日志文件時(shí)必須先寫日志文件,后寫數(shù)據(jù)庫。原因是事務(wù)執(zhí)行過程中可能發(fā)生故障數(shù)據(jù)庫一致性遭到破壞,此時(shí)需要通過日志文件進(jìn)行恢復(fù)。日志文件必須和數(shù)據(jù)庫存儲(chǔ)在不同的磁盤上,避免磁盤損壞導(dǎo)致數(shù)據(jù)庫和日志文件都遭到破壞,數(shù)據(jù)庫無法恢復(fù)。6.3數(shù)據(jù)庫運(yùn)行過程中常見的故障有哪幾類?試述對各類故障的恢復(fù)策略。答:數(shù)據(jù)庫運(yùn)行過程中常見的故障有:事務(wù)故障、系統(tǒng)故障、介質(zhì)故障。事務(wù)故障是在事務(wù)執(zhí)行過程中發(fā)生的故障,事務(wù)故障一定在事務(wù)提交前發(fā)生,這時(shí)應(yīng)撤消(Undo)該事務(wù)對數(shù)據(jù)庫一切更新,是由系統(tǒng)自動(dòng)完成的,對用戶透明。系統(tǒng)故障是指造成系統(tǒng)停止運(yùn)轉(zhuǎn)并要求系統(tǒng)重新啟動(dòng)的事件。系統(tǒng)故障會(huì)使內(nèi)存數(shù)據(jù)丟失,這樣會(huì)使已提交的事務(wù)對數(shù)據(jù)庫的更新還留在工作區(qū)而未寫入數(shù)據(jù)庫,所以,對所有已提交的事務(wù)需要重做,而對未提交的事務(wù)必須撤消所有對數(shù)據(jù)庫的更新?;謴?fù)是由系統(tǒng)在重新啟動(dòng)時(shí)自動(dòng)完成的,不須用戶的干預(yù)。介質(zhì)故障是指外存故障,如磁盤損壞、磁頭碰撞、瞬時(shí)強(qiáng)磁場干擾等,這類故障將使數(shù)據(jù)庫受到破環(huán)。發(fā)生介質(zhì)故障后,磁盤上的數(shù)據(jù)都可能被破壞。這時(shí),恢復(fù)的方法是重裝數(shù)據(jù)庫,然后重做已經(jīng)完成的事務(wù)。6.4什么是檢查點(diǎn)?設(shè)置檢查點(diǎn)有什么作用?設(shè)置檢查點(diǎn)時(shí)系統(tǒng)將做什么動(dòng)作?答:檢查點(diǎn)是一個(gè)數(shù)據(jù)庫事件,DBMS按一定的間隔在日志文件中設(shè)置一個(gè)檢查點(diǎn)。采用檢查點(diǎn)技術(shù),在系統(tǒng)故障恢復(fù)時(shí),記入重做隊(duì)列的事務(wù),只是從最近一個(gè)檢查點(diǎn)之后到發(fā)生故障時(shí)已提交的事務(wù),這樣可以大大減少重做的工作量。檢查點(diǎn)發(fā)生時(shí)要暫停事務(wù)執(zhí)行,將上一個(gè)檢查點(diǎn)之后已提交事務(wù)留在內(nèi)存工作區(qū)所有更新的數(shù)據(jù)寫入數(shù)據(jù)庫,并在日志文件中寫入一個(gè)檢查點(diǎn)記錄。6.5給予下述問題的簡要回答。什么是并發(fā)?答:多個(gè)事務(wù)在時(shí)間上交叉執(zhí)行并發(fā)地存取數(shù)據(jù)庫,這種執(zhí)行方式稱為并發(fā)存取。并發(fā)操作會(huì)引起什么問題?答:丟失修改(更新)、不可重復(fù)讀、讀“臟”數(shù)據(jù)。什么是丟失更新?答:當(dāng)兩個(gè)事務(wù)T1和T2先后對同一數(shù)據(jù)對象A進(jìn)行修改并寫入數(shù)據(jù)庫,后寫入的結(jié)果會(huì)覆蓋掉先寫入的結(jié)果,導(dǎo)致先寫入的事務(wù)修改結(jié)果丟失了,即丟失修改問題。什么是讀臟數(shù)據(jù)?答:讀“臟”數(shù)據(jù),簡稱臟讀,是指一個(gè)事務(wù)讀取了另一個(gè)未提交的事務(wù)中的數(shù)據(jù)。什么是讀值不可復(fù)現(xiàn)?答:一個(gè)事務(wù)沒有執(zhí)行任何更新操作,但同一個(gè)查詢操作執(zhí)行兩次或多次,結(jié)果不一致,就說明產(chǎn)生了不可重復(fù)讀的現(xiàn)象,即讀值不可復(fù)現(xiàn)。什么樣的并發(fā)操作是正確的?答:當(dāng)一個(gè)事務(wù)集的并發(fā)調(diào)度與它的某一串行調(diào)度是等價(jià)的,則稱該并發(fā)調(diào)度是可串行化的??纱谢{(diào)度的結(jié)果保持?jǐn)?shù)據(jù)庫的一致性,是正確的。串行調(diào)度和可串行化調(diào)度有什么區(qū)別?答:一個(gè)調(diào)度中各個(gè)事務(wù)沒有交叉執(zhí)行而是串行執(zhí)行,則該調(diào)度稱為串行調(diào)度。當(dāng)一個(gè)事務(wù)集的并發(fā)調(diào)度與其某一串行調(diào)度等價(jià),則稱該并發(fā)調(diào)度是可串行化調(diào)度。6.6有兩個(gè)事務(wù):T1:lock(A),lock(B),unlock(A),unlock(B)T2:lock(B),unlock(B),lock(A),unlock(A)它們有多少種調(diào)度方式?其中有多少種是可串行化的?答:本題中,合法調(diào)度要求保持事務(wù)內(nèi)部操作的先后次序,且滿足加鎖約束:事務(wù)在數(shù)據(jù)對象R上加鎖則其他事務(wù)不允許在R上加鎖。根據(jù)要求可以枚舉出11種合法的調(diào)度方式,其中包含兩種串行調(diào)度,其余9種并發(fā)調(diào)度都不是可串行化調(diào)度。6.7什么是兩段鎖協(xié)議?什么是嚴(yán)格的2PL協(xié)議?如何實(shí)現(xiàn)2PL協(xié)議?答:兩段鎖協(xié)議(簡稱2PL協(xié)議),是一種能夠?qū)崿F(xiàn)并發(fā)調(diào)度可串行化的封鎖協(xié)議。兩段鎖協(xié)議規(guī)定:(1)在任何數(shù)據(jù)對象進(jìn)行讀、寫操作之前,事務(wù)要獲得對數(shù)據(jù)對象的加鎖;(2)在釋放任意一個(gè)鎖之后,事務(wù)不再允許獲得任何其他加鎖。把所有鎖都放在事務(wù)結(jié)束時(shí)釋放的兩段鎖協(xié)議稱為嚴(yán)格的2PL協(xié)議。在實(shí)現(xiàn)中,兩段鎖協(xié)議把事務(wù)的加鎖過程分成擴(kuò)展和收縮階段,其中擴(kuò)展階段逐步增加鎖,收縮階段逐步釋放鎖。6.8什么叫活鎖?如何防止活鎖?答:系統(tǒng)可能使某個(gè)事務(wù)永遠(yuǎn)處于等待狀態(tài),得不到封鎖的機(jī)會(huì),這種現(xiàn)象稱為系統(tǒng)進(jìn)入了活鎖。采用先來先服務(wù)的策略可以防止活鎖。6.9什么叫死鎖?如何預(yù)防和處理死鎖?答:如果系統(tǒng)中有兩個(gè)或兩個(gè)以上的事務(wù)都處于等待狀態(tài),并且每個(gè)事務(wù)都在等待其中另一個(gè)事務(wù)解除封鎖,它才能夠繼續(xù)執(zhí)行下去,結(jié)果造成任何一個(gè)事務(wù)都無法繼續(xù)執(zhí)行,這種現(xiàn)象稱為系統(tǒng)進(jìn)入了死鎖。對付死鎖有兩種方法:一是死鎖預(yù)防;二是死鎖檢測,即發(fā)現(xiàn)死鎖后解除,死鎖檢測比較常用。6.10設(shè)有兩個(gè)事務(wù)的一個(gè)調(diào)度S:T1:Write(A),T2:Write(B),T1:Write(B),T2:Write(A)T1─時(shí)間標(biāo)記為20,T2—時(shí)間標(biāo)記為30。請說明T1,T2在2PL協(xié)議下的執(zhí)行過程,及其等效的串行執(zhí)行次序。答:在2PL協(xié)議下事務(wù)T1和T2的調(diào)度S會(huì)導(dǎo)致死鎖,不存在等效的串行執(zhí)行次序。T1T220XLock(A)Write(A)30XLock(B)Write(B)XLock(B)等待……等待……XLock(A)等待……等待……等待……6.11什么是數(shù)據(jù)庫的安全性和完整性?兩者之間有什么聯(lián)系和區(qū)別?答:數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或者破壞。數(shù)據(jù)庫的完整性是指數(shù)據(jù)庫中數(shù)據(jù)的正確性和相容性,即為了防止數(shù)據(jù)庫中存在不符合語義的數(shù)據(jù),防止錯(cuò)誤信息的輸入和輸出。安全性防范的是非法用戶和非法操作,完整性防范的是不合語義的數(shù)據(jù)。6.12假設(shè)有如下兩個(gè)關(guān)系模式:Emp(Eno,Ename,Eage,Salary,Deptno)Dept(Deptno,Dname,Phone,Loc)現(xiàn)在有三個(gè)用戶U1,U2和U3。使用SQL的授權(quán)語句實(shí)現(xiàn)下列要求。U1只能讀Emp關(guān)系中除了Salary以外的所有屬性。答:GRANTSELECT(Eno,Ename,Eage,Deptno)ONTABLEEmpTOU1;U2可以讀、增、刪Dept關(guān)系,并可以修改此關(guān)系的Phone屬性。答:GRANTSELECT,INSERT,DELETE,UPDATE(Phone)ONTABLEDeptTOU2;U3可以讀、增Dept關(guān)系,并可將這些權(quán)限轉(zhuǎn)授給其他用戶。答:GRANTSELECT,INSERTONTABLEDeptTOU3WITHGRANTOPTION;所有用戶可以讀Dept關(guān)系。答:GRANTSELECTONTABLEDeptTOPUBLIC;6.13什么是角色?請針對6.12題目對Dept可以讀、增、刪權(quán)限建立一個(gè)角色,并將這些權(quán)限授予用戶U1、U2和U3。答:角色是命名的權(quán)限集合,可以為一組具有相同權(quán)限的用戶創(chuàng)建一個(gè)角色,簡化授權(quán)的過程。CREATEROLER1;GRANTSELECT,INSERT,DELETEONTABLEDeptTOR1;GRANTR1TOU1,U2,U3;6.14在6.12題目的Emp和Dept關(guān)系上建立一個(gè)視圖:SeniorEmp(Sname,Sage,Salary,Dname)其中Sage>50。并授予U4用戶可以讀該視圖的權(quán)限。請用SQL語言實(shí)現(xiàn)上述要求。答:CREATEVIEWSeniorEmp(Sname,Sage,Salary,Dname)ASSELECTSname,EageasSage,Salary,DnameFROMEmp,DeptWHEREEmp.Deptno=Dept.DeptnoANDEage>50;GRANTSELECTONSeniorEmpTOU4;6.15請用SQL語句創(chuàng)建題目6.12中Emp和Dept關(guān)系,并有以下約束。Dept的主鍵是Deptno,Emp的主鍵是Eno。Emp的外鍵是Deptno,被參考的關(guān)系是Dept。Emp的Eage取值在20~60之間。Dept的Dname是惟一的并且非空。Emp的Salary>1000。答:CREATETABLEEmp(EnoCHAR(10)PRIMARYKEY,EnameCHAR(20),EageINTCHECK(Eage>=20ANDEage<=60),SalaryINTCHECK(Salary>1000),Deptnochar(5)REFERENCESDept(Deptno));CREATETABLEDept(DeptnoCHAR(5)PRIMARYKEY,DnameCHAR(50)UNIQUENOTNULL,PhoneCHAR(12),LocCHAR(100));6.16在題目6.12中定義的Emp關(guān)系中,試用觸發(fā)器表示下列完整性約束。20≤Eage≤60;答:CREATETRIGGEREmpTrig_EageBEFOREINSERT,UPDATEONEmpREFERENCINGNEWASNewTupleFOREACHROWWHEN(NewTuple.Eage<20ORNewTuple.Eage>60)BEGINraise_error('年齡不在有效范圍內(nèi)',16,1);END;1000≤Salary≤10000;答:CREATETRIGGEREmpTrig_SalaryBEFOREINSERT,UPDATEONEmpREFERENCINGNEWASNewTupleFOREACHROWWHEN(NewTuple.Salary<1000ORNewTuple.Salary>10000)BEGINraise_error('工資不在有效范圍內(nèi)',16,1)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《巨匠童心》課件
- 《童年回憶的》課件
- 《客戶梳理技巧》課件
- 2024年黑龍江農(nóng)業(yè)工程職業(yè)學(xué)院單招職業(yè)技能測試題庫標(biāo)準(zhǔn)卷
- 四川省南充市2025屆高三上學(xué)期高考適應(yīng)性考試(一診)英語試卷含答案
- 單位管理制度匯編大全職員管理
- 單位管理制度合并選集人力資源管理
- 單位管理制度分享合集【人力資源管理篇】
- 單位管理制度分享大合集【人力資源管理篇】
- 單位管理制度范例匯編職員管理篇十篇
- 廚政管理說課市公開課一等獎(jiǎng)省賽課微課金獎(jiǎng)?wù)n件
- 遵守道德規(guī)范錘煉道德品格專題第3講 投身崇德向善的道德實(shí)踐1課件
- 《高等數(shù)學(xué)教程》全套教學(xué)課件
- 2024年天津市中考英語試題卷(含答案)
- 2024-2034年中國皮帶輸送機(jī)托輥行業(yè)發(fā)展趨勢及投資前景預(yù)測報(bào)告
- FZ∕T 73037-2019 針織運(yùn)動(dòng)襪行業(yè)標(biāo)準(zhǔn)
- (圖文并茂)綠化工程施工組織設(shè)計(jì)
- MOOC 生物醫(yī)學(xué)傳感器與測量-山東大學(xué) 中國大學(xué)慕課答案
- 上海市民辦華育中學(xué)2022-2023學(xué)年六年級(jí)上學(xué)期期末科學(xué)試卷
- 導(dǎo)診服務(wù)意識(shí)課件培訓(xùn)總結(jié)
- 成人用品行業(yè)分析
評(píng)論
0/150
提交評(píng)論