freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)庫系統(tǒng)概論第四版_王珊_薩師煊主編_課后習(xí)題答案-s-資料下載頁

2025-06-22 15:04本頁面
  

【正文】 ,書名,作者,出版社)借書(讀者號,書號,借出日期,年齡,單位)應(yīng)還日期)第9章 關(guān)系查詢處理和查詢優(yōu)化3 .試述查詢優(yōu)化的一般準(zhǔn)則。答:下面的優(yōu)化策略一般能提高查詢效率: ( l )選擇運算應(yīng)盡可能先做; ( 2 )把投影運算和選擇運算同時進(jìn)行; ( 3 )把投影同其前或其后的雙目運算結(jié)合起來執(zhí)行; ( 4 )把某些選擇同在它前面要執(zhí)行的笛卡兒積結(jié)合起來成為一個連接運算; ( 5 )找出公共子表達(dá)式; ( 6 )選取合適的連接算法。4 .試述查詢優(yōu)化的一般步驟。答:各個關(guān)系系統(tǒng)的優(yōu)化方法不盡相同,大致的步驟可以歸納如下: ( l )把查詢轉(zhuǎn)換成某種內(nèi)部表示,通常用的內(nèi)部表示是語法樹。 ( 2 )把語法樹轉(zhuǎn)換成標(biāo)準(zhǔn)(優(yōu)化)形式。即利用優(yōu)化算法,把原始的語法樹轉(zhuǎn)換成優(yōu)化的形式。 ( 3 )選擇低層的存取路徑。 ( 4 )生成查詢計劃,選擇代價最小的。第10章 數(shù)據(jù)庫恢復(fù)技術(shù)1.試述事務(wù)的概念及事務(wù)的4 個特性。答:事務(wù)是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全做要么全不做,是一個不可分割的工作單位。事務(wù)具有4 個特性:原子性(Atomicity )、一致性(consistency )、隔離性( Isolation )和持續(xù)性(Durability )。這4 個特性也簡稱為ACID 特性。原子性:事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包括的諸操作要么都做,要么都不做。一致性:事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。隔離性:一個事務(wù)的執(zhí)行不能被其他事務(wù)干擾。即一個事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對其他并發(fā)事務(wù)是隔離的,并發(fā)執(zhí)行的各個事務(wù)之間不能互相干擾。持續(xù)性:持續(xù)性也稱永久性(Perfnanence ) ,指一個事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的。接下來的其他操作或故障不應(yīng)該對其執(zhí)行結(jié)果有任何影響。2 .為什么事務(wù)非正常結(jié)束時會影響數(shù)據(jù)庫數(shù)據(jù)的正確性,請列舉一例說明之。答:事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。如果數(shù)據(jù)庫系統(tǒng)運行中發(fā)生故障,有些事務(wù)尚未完成就被迫中斷,這些未完成事務(wù)對數(shù)據(jù)庫所做的修改有一部分已寫入物理數(shù)據(jù)庫,這時數(shù)據(jù)庫就處于一種不正確的狀態(tài),或者說是不一致的狀態(tài)。例如某工廠的庫存管理系統(tǒng)中,要把數(shù)量為Q 的某種零件從倉庫1 移到倉庫2 存放。則可以定義一個事務(wù)T , T 包括兩個操作;Ql = Ql 一Q , Q2= Q2 + Q。 如果T 非正常終止時只做了第一個操作,則數(shù)據(jù)庫就處于不一致性狀態(tài),庫存量無緣無故少了Q 。3 .?dāng)?shù)據(jù)庫中為什么要有恢復(fù)子系統(tǒng)?它的功能是什么?答:因為計算機系統(tǒng)中硬件的故障、軟件的錯誤、操作員的失誤以及惡意的破壞是不可避免的,這些故障輕則造成運行事務(wù)非正常中斷,影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,重則破壞數(shù)據(jù)庫,使數(shù)據(jù)庫中全部或部分?jǐn)?shù)據(jù)丟失,因此必須要有恢復(fù)子系統(tǒng)?;謴?fù)子系統(tǒng)的功能是:把數(shù)據(jù)庫從錯誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)(亦稱為一致狀態(tài)或完整狀態(tài))。4 .?dāng)?shù)據(jù)庫運行中可能產(chǎn)生的故障有哪幾類?哪些故障影響事務(wù)的正常執(zhí)行?哪些故障破壞數(shù)據(jù)庫數(shù)據(jù)?答:數(shù)據(jù)庫系統(tǒng)中可能發(fā)生各種各樣的故障,大致可以分以下幾類:(1)事務(wù)內(nèi)部的故障;(2)系統(tǒng)故障;(3)介質(zhì)故障;(4)計算機病毒。事務(wù)故障、系統(tǒng)故障和介質(zhì)故障影響事務(wù)的正常執(zhí)行;介質(zhì)故障和計算機病毒破壞數(shù)據(jù)庫數(shù)據(jù)。5 .?dāng)?shù)據(jù)庫恢復(fù)的基本技術(shù)有哪些?答:數(shù)據(jù)轉(zhuǎn)儲和登錄日志文件是數(shù)據(jù)庫恢復(fù)的基本技術(shù)。當(dāng)系統(tǒng)運行過程中發(fā)生故障,利用轉(zhuǎn)儲的數(shù)據(jù)庫后備副本和日志文件就可以將數(shù)據(jù)庫恢復(fù)到故障前的某個一致性狀態(tài)。6 .?dāng)?shù)據(jù)庫轉(zhuǎn)儲的意義是什么?試比較各種數(shù)據(jù)轉(zhuǎn)儲方法。答:數(shù)據(jù)轉(zhuǎn)儲是數(shù)據(jù)庫恢復(fù)中采用的基本技術(shù)。所謂轉(zhuǎn)儲即DBA 定期地將數(shù)據(jù)庫復(fù)制到磁帶或另一個磁盤上保存起來的過程。當(dāng)數(shù)據(jù)庫遭到破壞后可以將后備副本重新裝入,將數(shù)據(jù)庫恢復(fù)到轉(zhuǎn)儲時的狀態(tài)。靜態(tài)轉(zhuǎn)儲:在系統(tǒng)中無運行事務(wù)時進(jìn)行的轉(zhuǎn)儲操作,如上圖所示。靜態(tài)轉(zhuǎn)儲簡單,但必須等待正運行的用戶事務(wù)結(jié)束才能進(jìn)行。同樣,新的事務(wù)必須等待轉(zhuǎn)儲結(jié)束才能執(zhí)行。顯然,這會降低數(shù)據(jù)庫的可用性。動態(tài)轉(zhuǎn)儲:指轉(zhuǎn)儲期間允許對數(shù)據(jù)庫進(jìn)行存取或修改。動態(tài)轉(zhuǎn)儲可克服靜態(tài)轉(zhuǎn)儲的缺點,它不用等待正在運行的用戶事務(wù)結(jié)束,也不會影響新事務(wù)的運行。但是,轉(zhuǎn)儲結(jié)束時后援副本上的數(shù)據(jù)并不能保證正確有效。因為轉(zhuǎn)儲期間運行的事務(wù)可能修改了某些數(shù)據(jù),使得后援副本上的數(shù)據(jù)不是數(shù)據(jù)庫的一致版本。為此,必須把轉(zhuǎn)儲期間各事務(wù)對數(shù)據(jù)庫的修改活動登記下來,建立日志文件( 109 file )。這樣,后援副本加上日志文件就能得到數(shù)據(jù)庫某一時刻的正確狀態(tài)。轉(zhuǎn)儲還可以分為海量轉(zhuǎn)儲和增量轉(zhuǎn)儲兩種方式。海量轉(zhuǎn)儲是指每次轉(zhuǎn)儲全部數(shù)據(jù)庫。增量轉(zhuǎn)儲則指每次只轉(zhuǎn)儲上一次轉(zhuǎn)儲后更新過的數(shù)據(jù)。從恢復(fù)角度看,使用海量轉(zhuǎn)儲得到的后備副本進(jìn)行恢復(fù)一般說來更簡單些。但如果數(shù)據(jù)庫很大,事務(wù)處理又十分頻繁,則增量轉(zhuǎn)儲方式更實用更有效。7 .什么是日志文件?為什么要設(shè)立日志文件?答:(1)日志文件是用來記錄事務(wù)對數(shù)據(jù)庫的更新操作的文件。(2)設(shè)立日志文件的目的是:進(jìn)行事務(wù)故障恢復(fù);進(jìn)行系統(tǒng)故障恢復(fù);協(xié)助后備副本進(jìn)行介質(zhì)故障恢復(fù)。8 .登記日志文件時為什么必須先寫日志文件,后寫數(shù)據(jù)庫?答:把對數(shù)據(jù)的修改寫到數(shù)據(jù)庫中和把表示這個修改的日志記錄寫到日志文件中是兩個不同的操作。有可能在這兩個操作之間發(fā)生故障,即這兩個寫操作只完成了一個。如果先寫了數(shù)據(jù)庫修改,而在運行記錄中沒有登記這個修改,則以后就無法恢復(fù)這個修改了。如果先寫日志,但沒有修改數(shù)據(jù)庫,在恢復(fù)時只不過是多執(zhí)行一次UNDO 操作,并不會影響數(shù)據(jù)庫的正確性。所以一定要先寫日志文件,即首先把日志記錄寫到日志文件中,然后寫數(shù)據(jù)庫的修改。9 .針對不同的故障,試給出恢復(fù)的策略和方法。(即如何進(jìn)行事務(wù)故障的恢復(fù)?系統(tǒng)故障的恢復(fù)?介質(zhì)故障恢復(fù)?) 答:事務(wù)故障的恢復(fù):事務(wù)故障的恢復(fù)是由DBMS DBMs 執(zhí)行恢復(fù)步驟是:自動完成的,對用戶是透明的。(1)反向掃描文件日志(即從最后向前掃描日志文件),查找該事務(wù)的更新操作;(2)對該事務(wù)的更新操作執(zhí)行逆操作,即將日志記錄中“更新前的值”寫入數(shù)據(jù)庫;(3)繼續(xù)反向掃描日志文件,做同樣處理;(4)如此處理下去,直至讀到此事務(wù)的開始標(biāo)記,該事務(wù)故障的恢復(fù)就完成了。系統(tǒng)故障的恢復(fù):系統(tǒng)故障可能會造成數(shù)據(jù)庫處于不一致狀態(tài):一是未完成事務(wù)對數(shù)據(jù)庫的更新可能已寫入數(shù)據(jù)庫;二是已提交事務(wù)對數(shù)據(jù)庫的更新可能還留在緩沖區(qū),沒來得及寫入數(shù)據(jù)庫。因此恢復(fù)操作就是要撤銷(UNDO )故障發(fā)生時未完成的事務(wù),重做(REDO )已完成的事務(wù)。系統(tǒng)的恢復(fù)步驟是:(1)正向掃描日志文件,找出在故障發(fā)生前已經(jīng)提交的事務(wù)隊列(REDO 隊列)和未完成的事務(wù)隊列(uNDO 隊列)。(2)對撤銷隊列中的各個事務(wù)進(jìn)行UNDO 處理。進(jìn)行UNDO 處理的方法是,反向掃描日志文件,對每個UNDO 事務(wù)的更新操作執(zhí)行逆操作,即將日志記錄中“更新前的值”Before Image )寫入數(shù)據(jù)庫。( 3 )對重做隊列中的各個事務(wù)進(jìn)行REDO 處理。進(jìn)行REDO 處理的方法是:正向掃描日志文件,對每個REDO 事務(wù)重新執(zhí)行日志文件登記的操作。即將日志記錄中“更新后的值”Afte , Image )寫入數(shù)據(jù)庫。介質(zhì)故障的恢復(fù):介質(zhì)故障是最嚴(yán)重的一種故障?;謴?fù)方法是重裝數(shù)據(jù)庫,然后重做已完成的事務(wù)。具體過程是:( 1 ) DBA 裝入最新的數(shù)據(jù)庫后備副本(離故障發(fā)生時刻最近的轉(zhuǎn)儲副本), 使數(shù)據(jù)庫恢復(fù)到轉(zhuǎn)儲時的一致性狀態(tài);( 2 ) DBA 裝入轉(zhuǎn)儲結(jié)束時刻的日志文件副本;( 3 ) DBA 啟動系統(tǒng)恢復(fù)命令,由DBMS 完成恢復(fù)功能,即重做已完成的事務(wù)。10 .什么是檢查點記錄?檢查點記錄包括哪些內(nèi)容?答:檢查點記錄是一類新的日志記錄。它的內(nèi)容包括:① 建立檢查點時刻所有正在執(zhí)行的事務(wù)清單② 這些事務(wù)的最近一個日志記錄的地址。11 .具有檢查點的恢復(fù)技術(shù)有什么優(yōu)點?試舉一個具體的例子加以說明。答答:利用日志技術(shù)進(jìn)行數(shù)據(jù)庫恢復(fù)時,恢復(fù)子系統(tǒng)必須搜索日志,確定哪些事務(wù)需要REDO ,哪些事務(wù)需要uNDO 。一般來說,需要檢查所有日志記錄。這樣做有兩個問題:一是搜索整個日志將耗費大量的時間;二是很多需要REDO 處理的事務(wù)實際上已經(jīng)將它們的更新操作結(jié)果寫到數(shù)據(jù)庫中了,恢復(fù)子系統(tǒng)又重新執(zhí)行了這些操作,浪費了大量時間。檢查點技術(shù)就是為了解決這些問題。在采用檢查點技術(shù)之前,恢復(fù)時需要從頭掃描日志文件,而利用檢查點技術(shù)只需要從T 。開始掃描日志,這就縮短了掃描日志的時間。事務(wù)Tl 的更新操作實際上已經(jīng)寫到數(shù)據(jù)庫中了,進(jìn)行恢復(fù)時沒有必要再REDO 處理,采用檢查點技術(shù)做到了這一點。12 .試述使用檢查點方法進(jìn)行恢復(fù)的步驟。答:(1)從重新開始文件(見第11 題的圖)中找到最后一個檢查點記錄在日志文件中的地址,由該地址在日志文件中找到最后一個檢查點記錄。(2)由該檢查點記錄得到檢查點建立時刻所有正在執(zhí)行的事務(wù)清單ACTIVE 一LIST 。這里建立兩個事務(wù)隊列:1 ) UNDO 一LIST :需要執(zhí)行undo 操作的事務(wù)集合;2 ) REDO 一LIST :需要執(zhí)行redo 操作的事務(wù)集合。把ACTIVE 一LIST 暫時放入UNDO 一LIST 隊列,REDO 隊列暫為空。3 )從檢查點開始正向掃描日志文件:① 如有新開始的事務(wù)T * ,把T *暫時放入uNDO 一LlsT 隊列;② 如有提交的事務(wù)毛,把毛從UNDO 一LIST 隊列移到REDO 一LIST 隊列,直到日志文件結(jié)束;4 )對UNDO 一LIST 中的每個事務(wù)執(zhí)行UNDO 操作,對REDO 一LIST 中的每個事務(wù)執(zhí)行REDO 操作。13 .什么是數(shù)據(jù)庫鏡像?它有什么用途?答:數(shù)據(jù)庫鏡像即根據(jù)DBA 的要求,自動把整個數(shù)據(jù)庫或者其中的部分關(guān)鍵數(shù)據(jù)復(fù)制到另一個磁盤上。每當(dāng)主數(shù)據(jù)庫更新時,DBMS 自動把更新后的數(shù)據(jù)復(fù)制過去,即DBMS 自動保證鏡像數(shù)據(jù)與主數(shù)據(jù)的一致性。數(shù)據(jù)庫鏡像的用途有:一是用于數(shù)據(jù)庫恢復(fù)。當(dāng)出現(xiàn)介質(zhì)故障時,可由鏡像磁盤繼續(xù)提供使用,同時DBMS 自動利用鏡像磁盤數(shù)據(jù)進(jìn)行數(shù)據(jù)庫的恢復(fù),不需要關(guān)閉系統(tǒng)和重裝數(shù)據(jù)庫副本。二是提高數(shù)據(jù)庫的可用性。在沒有出現(xiàn)故障時,當(dāng)一個用戶對某個數(shù)據(jù)加排它鎖進(jìn)行修改時,其他用戶可以讀鏡像數(shù)據(jù)庫上的數(shù)據(jù),而不必等待該用戶釋放鎖。第11章 并發(fā)控制1. 在數(shù)據(jù)庫中為什么要并發(fā)控制?答:數(shù)據(jù)庫是共享資源,通常有許多個事務(wù)同時在運行。當(dāng)多個事務(wù)并發(fā)地存取數(shù)據(jù)庫時就會產(chǎn)生同時讀取和/或修改同一數(shù)據(jù)的情況。若對并發(fā)操作不加控制就可能會存取和存儲不正確的數(shù)據(jù),破壞數(shù)據(jù)庫的一致性。所以數(shù)據(jù)庫管理系統(tǒng)必須提供并發(fā)控制機制。 2 .并發(fā)操作可能會產(chǎn)生哪幾類數(shù)據(jù)不一致?用什么方法能避免各種不一致的情況?答:并發(fā)操作帶來的數(shù)據(jù)不一致性包括三類:丟失修改、不可重復(fù)讀和讀“臟’夕數(shù)據(jù)。 ( l )丟失修改(lost update ) 兩個事務(wù) Tl 和T2讀入同一數(shù)據(jù)并修改,T2提交的結(jié)果破壞了(覆蓋了) Tl 提交的結(jié)果,導(dǎo)致 Tl 的修改被丟失。 ( 2 )不可重復(fù)讀( Non 一 Repeatable Read ) 不可重復(fù)讀是指事務(wù) Tl 讀取數(shù)據(jù)后,事務(wù)幾執(zhí)行更新操作,使 Tl 無法再現(xiàn)前一次讀取結(jié)果。( 3 )讀“臟”數(shù)據(jù)( Dirty Read ) 讀“臟’夕數(shù)據(jù)是指事務(wù) Tl 修改某一數(shù)據(jù),并將其寫回磁盤,事務(wù)幾讀取同一數(shù)據(jù)后, Tl 由于某種原因被撤銷,這時 Tl 已修改過的數(shù)據(jù)恢復(fù)原值,幾讀到的數(shù)據(jù)就與數(shù)據(jù)庫中的數(shù)據(jù)不一致,則幾讀到的數(shù)據(jù)就為“臟”數(shù)據(jù),即不正確的數(shù)據(jù)。避免不一致性的方法和技術(shù)就是并發(fā)控制。最常用的技術(shù)是封鎖技術(shù)。也可以用其他技術(shù),例如在分布式數(shù)據(jù)庫系統(tǒng)中可以采用時間戳方法來進(jìn)行并發(fā)控制。 3 .什么是封鎖?基本的封鎖類型有幾種?試述它們的含義。答:封鎖就是事務(wù) T 在對某個數(shù)據(jù)對象例如表、記錄等操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖。加鎖后事務(wù) T 就對該數(shù)據(jù)對象有了一定的控制,在事務(wù) T 釋放它的鎖之前,其他的事務(wù)不能更新此數(shù)據(jù)對象。封鎖是實現(xiàn)并發(fā)控制的一個非常重要的技術(shù)?;镜姆怄i類型有兩種:排它鎖( 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 做任何修改。4 .如何用封鎖機制保證數(shù)據(jù)的一致性?答: DBMS 在對數(shù)據(jù)進(jìn)行讀、寫操作之前首先對該數(shù)據(jù)執(zhí)行封鎖操作,例如下圖中事務(wù) Tl 在對 A 進(jìn)行修改之前先對 A 執(zhí)行 xock ( A ) ,即對 A 加 x 鎖。這樣,當(dāng)幾請求對 A 加 x 鎖時就被拒絕,幾只能等待 Tl 釋放 A 上的鎖后才能獲得對 A 的 x 鎖,這時它讀到的 A 是 Tl 更新后的值,再按此新的 A 值進(jìn)行運算。這樣就不會丟失 Tl 的更新。DBMS 按照一定的封鎖協(xié)議,對并發(fā)操作進(jìn)行控制,使得多個并發(fā)操作有序地執(zhí)行,就可以避免丟失修改、不可重復(fù)讀和讀“臟’夕數(shù)據(jù)等數(shù)據(jù)不一致性。5 .什么是活鎖?什么是死鎖?答:如果事務(wù) Tl 封鎖了數(shù)據(jù) R ,事務(wù)幾又請求封鎖 R ,于是幾等待。幾也請求封鎖 R ,當(dāng) Tl 釋放了 R 上的封鎖之后系統(tǒng)
點擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1