首頁 - 網(wǎng)校 - 萬題庫 - 美好明天 - 直播 - 導航

2018計算機四級數(shù)據(jù)庫工程師強化練習題及答案(2)

來源:考試吧 2018-03-01 10:27:24 要考試,上考試吧! 萬題庫
“2018計算機四級數(shù)據(jù)庫工程師強化練習題及答案(2)”供考生參考。更多計算機等級考試復習資料等信息請訪問考試吧計算機等級考試網(wǎng)。

  點擊查看:2018計算機四級數(shù)據(jù)庫工程師強化練習題及答案匯總

  1 . 并發(fā)操作帶來的數(shù)據(jù)不一致性包括:________ 、________ 和 ________ 。 (問答題)

  答案

  丟失修改 不可重復讀 讀“臟”數(shù)據(jù)

  2 .在數(shù)據(jù)庫中為什么要并發(fā)控制? (填空題)

  答案

  數(shù)據(jù)庫是共享資源,通常有許多個事務(wù)同時在運行。 當多個事務(wù)并發(fā)地存取數(shù)據(jù)庫時就會產(chǎn)生同時讀取和/或修改同一數(shù)據(jù)的情況。若對并發(fā)操作不加控制就可能會存取和存儲不正確的數(shù)據(jù),破壞數(shù)據(jù)庫的一致性。所以數(shù)據(jù)庫管理系統(tǒng)必須提供并發(fā)控制機制。

  3 . 多個事務(wù)的并發(fā)執(zhí)行是正確的,當且僅當其結(jié)果與按某一次序串行地執(zhí)行它們時的結(jié)果相同,我們稱這種調(diào)度策略為________的調(diào)度。 (問答題)

  答案

  可串行化

  4 .并發(fā)操作可能會產(chǎn)生哪幾類數(shù)據(jù)不一致?用什么方法能避免各種不一致的情況? (填空題)

  答案

  并發(fā)操作帶來的數(shù)據(jù)不一致性包括三類:丟失修改、不可重復讀和讀“臟”數(shù)據(jù)。 (1)丟失修改(Lost Update) 兩個事務(wù)T1和T2讀入同一數(shù)據(jù)并修改,T2提交的結(jié)果破壞了(覆蓋了)T1提交的結(jié)果,導致T1的修改被丟失。 (2)不可重復讀(Non-Repeatable Read) 不可重復讀是指事務(wù)T1讀取數(shù)據(jù)后,事務(wù)T2執(zhí)行更新操作,使T1無法再現(xiàn)前一次讀取結(jié)果。不可重復讀包括三種情況:詳見《概論》8.1 p266。 (3)讀“臟”數(shù)據(jù)(Dirty Read)讀“臟”數(shù)據(jù)是指事務(wù)T1修改某一數(shù)據(jù),并將其寫回磁盤,事務(wù)T2讀取同一數(shù)據(jù)后,T1由于某種原因被撤銷,這時T1已修改過的數(shù)據(jù)恢復原值,T2讀到的數(shù)據(jù)就與數(shù)據(jù)庫中的數(shù)據(jù)不一致,則T2讀到的數(shù)據(jù)就為“臟”數(shù)據(jù),即不正確的數(shù)據(jù)。 避免不一致性的方法就是并發(fā)控制。最常用的并發(fā)控制技術(shù)是封鎖技術(shù)。也可以用其他技術(shù),例如在分布式數(shù)據(jù)庫系統(tǒng)中可以采用時間戳方法來進行并發(fā)控制。

  5 . 基本的封鎖類型有兩種:________ 和________ 。 (問答題)

  答案

  排它鎖(Exclusive Locks,簡稱X鎖) 共享鎖(Share Locks,簡稱S鎖)

  6 .什么是封鎖? (填空題)

  答案

  封鎖就是事務(wù)T在對某個數(shù)據(jù)對象例如表、記錄等操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖。加鎖后事務(wù)T就對該數(shù)據(jù)對象有了一定的控制,在事務(wù)T釋放它的鎖之前,其他的事務(wù)不能更新此數(shù)據(jù)對象。 封鎖是實現(xiàn)并發(fā)控制的一個非常重要的技術(shù)。

  7 . 在數(shù)據(jù)庫并發(fā)控制中,兩個或多個事務(wù)同時處在相互等待狀態(tài),稱為________ 。 (問答題)

  答案

  死鎖

  8 .基本的封鎖類型有幾種?試述它們的含義。 (填空題)

  答案

  基本的封鎖類型有兩種: 排它鎖(Exclusive Locks,簡稱X鎖) 和共享鎖(Share Locks,簡稱S鎖)。 排它鎖又稱為寫鎖。若事務(wù)T對數(shù)據(jù)對象A加上X鎖,則只允許T讀取和修改A,其他任何事務(wù)都不能再對A加任何類型的鎖,直到T釋放A上的鎖。這就保證了其他事務(wù)在T釋放A上的鎖之前不能再讀取和修改A。 共享鎖又稱為讀鎖。若事務(wù)T對數(shù)據(jù)對象A加上S鎖,則事務(wù)T可以讀A但不能修改A,其他事務(wù)只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。這就保證了其他事務(wù)可以讀A,但在T釋放A上的S鎖之前不能對A做任何修改。

  9 .什么是封鎖協(xié)議?不同級別的封鎖協(xié)議的主要區(qū)別是什么? (填空題)

  答案

  在運用封鎖技術(shù)對數(shù)據(jù)加鎖時,要約定一些規(guī)則。例如,在運用X鎖和S鎖對數(shù)據(jù)對象加鎖時,要約定何時申請X鎖或S鎖、何時釋放封鎖等。這些約定或者規(guī)則稱為封鎖協(xié)議(Locking Protocol)。對封鎖方式約定不同的規(guī)則,就形成了各種不同的封鎖協(xié)議。不同級別的封鎖協(xié)議,例如《概論》8.3中介紹的三級封鎖協(xié)議,三級協(xié)議的主要區(qū)別在于什么操作需要申請封鎖,何時申請封鎖以及何時釋放鎖(即持鎖時間的長短)。 一級封鎖協(xié)議:事務(wù)T在修改數(shù)據(jù)R之前必須先對其加X鎖,直到事務(wù)結(jié)束才釋放。 二級封鎖協(xié)議:一級封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)R之前必須先對其加S鎖,讀完后即可釋放S鎖。 三級封鎖協(xié)議:一級封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)R之前必須先對其加S鎖,直到事務(wù)結(jié)束才釋放。

  10 .________ 被稱為封鎖的粒度。 (問答題)

  答案

  封鎖對象的大小

  11 .不同封鎖協(xié)議與系統(tǒng)一致性級別的關(guān)系是什么? (填空題)

  答案

  不同的封鎖協(xié)議對應(yīng)不同的一致性級別。一級封鎖協(xié)議可防止丟失修改,并保證事務(wù)T是可恢復的。在一級封鎖協(xié)議中,對讀數(shù)據(jù)是不加S鎖的,所以它不能保證可重復讀和不讀“臟”數(shù)據(jù)。 二級封鎖協(xié)議除防止了丟失修改,還可進一步防止讀“臟”數(shù)據(jù)。在二級封鎖協(xié)議中,由于讀完數(shù)據(jù)后立即釋放S鎖,所以它不能保證可重復讀。 在三級封鎖協(xié)議中,無論是讀數(shù)據(jù)還是寫數(shù)據(jù)都加長鎖,即都要到事務(wù)結(jié)束時才釋放封鎖。所以三級封鎖協(xié)議除防止了丟失修改和不讀“臟”數(shù)據(jù)外,還進一步防止了不可重復讀。

  12 .什么是活鎖?什么是死鎖 ? (填空題)

  答案

  如果事務(wù)T1封鎖了數(shù)據(jù)R,事務(wù)T2又請求封鎖R,于是T2等待。T3也請求封鎖R,當T1釋放了R上的封鎖之后系統(tǒng)首先批準了T3的請求,T2仍然等待。然后T4又請求封鎖R,當T3釋放了R上的封鎖之后系統(tǒng)又批準了T4的請求……T2有可能永遠等待,這就是活鎖的情形;铈i的含義是該等待事務(wù)等待時間太長,似乎被鎖住了,實際上可能被激活。 如果事務(wù)T1封鎖了數(shù)據(jù)R1,T2封鎖了數(shù)據(jù)R2,然后T1又請求封鎖R2,因T2已封鎖了R2,于是T1等待T2釋放R2上的鎖。接著T2又申請封鎖R1,因T1已封鎖了R1,T2也只能等待T1釋放R1上的鎖。這樣就出現(xiàn)了T1在等待T2,而T2又在等待T1的局面,T1和T2兩個事務(wù)永遠不能結(jié)束,形成死鎖。

  13 .試述活鎖的產(chǎn)生原因和解決方法。 (填空題)

  答案

  活鎖產(chǎn)生的原因:當一系列封鎖不能按照其先后順序執(zhí)行時,就可能導致一些事務(wù)無限期等待某個封鎖,從而導致活鎖。 避免活鎖的簡單方法是采用先來先服務(wù)的策略。當多個事務(wù)請求封鎖同一數(shù)據(jù)對象時,封鎖子系統(tǒng)按請求封鎖的先后次序?qū)κ聞?wù)排隊,數(shù)據(jù)對象上的鎖一旦釋放就批準申請隊列中第一個事務(wù)獲得鎖。

  14 .請給出預防死鎖的若干方法。 (填空題)

  答案

  在數(shù)據(jù)庫中,產(chǎn)生死鎖的原因是兩個或多個事務(wù)都已封鎖了一些數(shù)據(jù)對象,然后又都請求已被其他事務(wù)封鎖的數(shù)據(jù)加鎖,從而出現(xiàn)死等待。防止死鎖的發(fā)生其實就是要破壞產(chǎn)生死鎖的條件。預防死鎖通常有兩種方法:(1)一次封鎖法要求每個事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行。(2)順序封鎖法預先對數(shù)據(jù)對象規(guī)定一個封鎖順序,所有事務(wù)都按這個順序?qū)嵭蟹怄i。

  15 .請給出檢測死鎖發(fā)生的一種方法,當發(fā)生死鎖后如何解除死鎖? (填空題)

  答案

  數(shù)據(jù)庫系統(tǒng)一般采用允許死鎖發(fā)生,DBMS檢測到死鎖后加以解除的方法。 DBMS中診斷死鎖的方法與操作系統(tǒng)類似,一般使用超時法或事務(wù)等待圖法。 超時法是:如果一個事務(wù)的等待時間超過了規(guī)定的時限,就認為發(fā)生了死鎖。超時法實現(xiàn)簡單,但有可能誤判死鎖,事務(wù)因其他原因長時間等待超過時限時,系統(tǒng)會誤認為發(fā)生了死鎖。若時限設(shè)置得太長,又不能及時發(fā)現(xiàn)死鎖發(fā)生。 DBMS并發(fā)控制子系統(tǒng)檢測到死鎖后,就要設(shè)法解除。通常采用的方法是選擇一個處理死鎖代價最小的事務(wù),將其撤消,釋放此事務(wù)持有的所有鎖,使其他事務(wù)得以繼續(xù)運行下去。當然,對撤銷的事務(wù)所執(zhí)行的數(shù)據(jù)修改操作必須加以恢復。

  16 .什么樣的并發(fā)調(diào)度是正確的調(diào)度? (填空題)

  答案

  可串行化(Serializable)的調(diào)度是正確的調(diào)度?纱谢恼{(diào)度的定義:多個事務(wù)的并發(fā)執(zhí)行是正確的,當且僅當其結(jié)果與按某一次序串行地執(zhí)行它們時的結(jié)果相同,我們稱這種調(diào)度策略為可串行化的調(diào)度。

  17 .試述兩段鎖協(xié)議的概念。 (填空題)

  答案

  兩段鎖協(xié)議是指所有事務(wù)必須分兩個階段對數(shù)據(jù)項加鎖和解鎖。 ? 在對任何數(shù)據(jù)進行讀、寫操作之前,首先要申請并獲得對該數(shù)據(jù)的封鎖; ? 在釋放一個封鎖之后,事務(wù)不再申請和獲得任何其他封鎖。 “兩段”的含義是,事務(wù)分為兩個階段:第一階段是獲得封鎖,也稱為擴展階段。在這階段,事務(wù)可以申請獲得任何數(shù)據(jù)項上的任何類型的鎖,但是不能釋放任何鎖。第二階段是釋放封鎖,也稱為收縮階段。在這階段,事務(wù)釋放已經(jīng)獲得的鎖,但是不能再申請任何鎖。

  18 .試證明,若并發(fā)事務(wù)遵守兩段鎖協(xié)議,則對這些事務(wù)的并發(fā)調(diào)度是可串行化的。 (填空題)

  答案

  首先以兩個并發(fā)事務(wù)T1和T2為例,存在多個并發(fā)事務(wù)的情形可以類推。 根據(jù)可串行化定義可知,事務(wù)不可串行化只可能發(fā)生在下列兩種情況: 1.事務(wù)T1寫某個數(shù)據(jù)對象A,T2讀或?qū)慉; 2.事務(wù)T1讀或?qū)懩硞數(shù)據(jù)對象A,T2寫A。下面稱A為潛在沖突對象。設(shè)T1和T2訪問的潛在沖突的公共對象為{A1, A2, …, An}。不失一般性,假設(shè)這組潛在沖突對象中X={A1,A2, …, Ai}均符合情況1。 Y={Ai+1, …,An}符合所情況2。 ?x?X,T1需要Xlock x ① T2需要Slock x或Xlockx ② (1) 如果操作①先執(zhí)行,則T1獲得鎖,T2等待由于遵守兩段鎖協(xié)議,T1在成功獲得X和Y中全部對象及非潛在沖突對象的鎖后,才會釋放鎖這時如果?w?X或Y,T2已獲得w的鎖,則出現(xiàn)死鎖否則,T1在對X、Y中對象全部處理完畢后,T2才能執(zhí)行這相當于按T1、T2的順序串行執(zhí)行根據(jù)可串行化定義,T1和T2的調(diào)度是可串行化的。(2) 操作②先執(zhí)行的情況與(1)對稱因此,若并發(fā)事務(wù)遵守兩段鎖協(xié)議,在不發(fā)生死鎖的情況下,對這些事務(wù)的并發(fā)調(diào)度一定是可串行化的。

  19 .為什么要引進意向鎖? 意向鎖的含義是什么? (填空題)

  答案

  引進意向鎖是為了提高封鎖子系統(tǒng)的效率。該封鎖子系統(tǒng)支持多種封鎖粒度。原因是:在多粒度封鎖方法中一個數(shù)據(jù)對象可能以兩種方式加鎖—顯式封鎖和隱式封鎖(有關(guān)概念參見《概論》8.7.1)。因此系統(tǒng)在對某一數(shù)據(jù)對象加鎖時不僅要檢查該數(shù)據(jù)對象上有無(顯式和隱式)封鎖與之沖突;還要檢查其所有上級結(jié)點和所有下級結(jié)點,看申請的封鎖是否與這些結(jié)點上的(顯式和隱式)封鎖沖突;顯然,這樣的檢查方法效率很低。為此引進了意向鎖。 意向鎖的含義是:對任一結(jié)點加鎖時,必須先對它的上層結(jié)點加意向鎖。 例如事務(wù)T要對某個元組加X鎖,則首先要對關(guān)系和數(shù)據(jù)庫加IX鎖。換言之,對關(guān)系和數(shù)據(jù)庫加IX鎖,表示它的后裔結(jié)點—某個元組擬(意向)加X鎖。引進意向鎖后,系統(tǒng)對某一數(shù)據(jù)對象加鎖時不必逐個檢查與下一級結(jié)點的封鎖沖突了。例如,事務(wù)T要對關(guān)系R加X鎖時,系統(tǒng)只要檢查根結(jié)點數(shù)據(jù)庫和R本身是否已加了不相容的鎖(如發(fā)現(xiàn)已經(jīng)加了IX,則與X沖突),而不再需要搜索和檢查R中的每一個元組是否加了X鎖或S鎖。

  20 .試述常用的意向鎖:IS鎖,IX鎖,SIX鎖,給出這些鎖的相容矩陣。 (填空題)

  答案

  IS鎖如果對一個數(shù)據(jù)對象加IS鎖,表示它的后裔結(jié)點擬(意向)加S鎖。例如,要對某個元組加S鎖,則要首先對關(guān)系和數(shù)據(jù)庫加IS鎖 IX鎖如果對一個數(shù)據(jù)對象加IX鎖,表示它的后裔結(jié)點擬(意向)加X鎖。例如,要對某個元組加X鎖,則要首先對關(guān)系和數(shù)據(jù)庫加IX鎖。 SIX鎖如果對一個數(shù)據(jù)對象加SIX鎖,表示對它加S鎖,再加IX鎖,即SIX = S + IX。

掃描/長按二維碼幫助考試通關(guān)
2018年等考報考資訊
2018等考各科通關(guān)技巧
2018各科最新預測試卷
2018等考各科備考資料

微信搜索"考試吧"了解更多考試資訊、下載備考資料

  相關(guān)推薦:

  各地2018年全國計算機等級考試準考證打印時間匯總

  2018年全國計算機等級考試復習知識點匯總(各科目)

  2018年全國計算機等級考試必做試題匯總(各科目)

  2018年全國計算機等級考試時間|教材目錄(2018年版)

  報名方法|考試內(nèi)容|考試大綱|2018計算機等級考試科目

  歷年真題匯總|考試吧策劃:2018年計算機等級考試報考指南

0
收藏該文章
0
收藏該文章
文章責編:wangmeng  
看了本文的網(wǎng)友還看了
文章搜索
萬題庫小程序
萬題庫小程序
·章節(jié)視頻 ·章節(jié)練習
·免費真題 ·?荚囶}
微信掃碼,立即獲!
掃碼免費使用
版權(quán)聲明:如果計算機等級考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉(zhuǎn)載本計算機等級考試網(wǎng)內(nèi)容,請注明出處。
Copyright © 2004- 考試吧計算機等級考試網(wǎng) 出版物經(jīng)營許可證新出發(fā)京批字第直170033號 
京ICP證060677 京ICP備05005269號 中國科學院研究生院權(quán)威支持(北京)
在線模擬試題
考證通關(guān)殺器
考試最新資訊
一次通關(guān)技巧