2017計算機等級考試四級數據庫系統工程師練習題

計算機四級是等級考試的最高級別。爲幫助同學們複習四級數據庫系統工程師考試,以下是本站小編搜索整理的一份計算機等級考試四級數據庫系統工程師練習題,供參考練習,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!

2017計算機等級考試四級數據庫系統工程師練習題

1 .________ 是一系列的數據庫操作,是數據庫應用程序的基本邏輯單元。 (問答題)

事務

2 . 試述事務的概念及事務的四個特性。 (填空題)

事務是用戶定義的一個數據庫操作序列,這些操作要麼全做要麼全不做,是一個不可分割的工作單位。事務具有四個特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持續性(Durability)。這個四個特性也簡稱爲ACID特性。原子性:事務是數據庫的邏輯工作單位,事務中包括的諸操作要麼都做,要麼都不做。一致性:事務執行的結果必須是使數據庫從一個一致性狀態變到另一個一致性狀態。隔離性:一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的數據對其他併發事務是隔離的,併發執行的各個事務之間不能互相干擾。持續性:持續性也稱永久性(Permanence),指一個事務一旦提交,它對數據庫中數據的改變就應該是永久性的。接下來的其他操作或故障不應該對其執行結果有任何影響。

3 . 爲什麼事務非正常結束時會影響數據庫數據的正確性,請列舉一例說明之。 (填空題)

事務執行的結果必須是使數據庫從一個一致性狀態變到另一個一致性狀態。如果數據庫系統運行中發生故障,有些事務尚未完成就被迫中斷,這些未完成事務對數據庫所做的修改有一部分已寫入物理數據庫,這時數據庫就處於一種不正確的狀態,或者說是不一致的狀態。例如某工廠的庫存管理系統中,要把數量爲Q的某種零件從倉庫1移到倉庫2存放。則可以定義一個事務T,T包括兩個操作;Q1=Q1-Q,Q2=Q2+Q。如果T非正常終止時只做了第一個操作,則數據庫就處於不一致性狀態,庫存量無緣無故少了Q。

4 . 事務處理技術主要包括________ 技術和________技術。 (問答題)

數據庫恢復 併發控制

5 . 在SQL語言中,定義事務控制的語句主要有________ 、________ 和 ________ 。 (問答題)

BEGIN TRANSACTION COMMIT ROLLBACK

6 . 數據庫中爲什麼要有恢復子系統?它的功能是什麼? (填空題)

因爲計算機系統中硬件的故障、軟件的錯誤、操作員的失誤以及惡意的破壞是不可避免的,這些故障輕則造成運行事務非正常中斷,影響數據庫中數據的正確性,重則破壞數據庫,使數據庫中全部或部分數據丟失,因此必須要有恢復子系統。恢復子系統的功能是:把數據庫從錯誤狀態恢復到某一已知的正確狀態(亦稱爲一致狀態或完整狀態)。

7 . 事務具有四個特性:它們是________ 、________ 、________ 和 ________ 。這個四個特性也簡稱爲________特性。 (問答題)

原子性(Atomicity) 一致性(Consistency) 隔離性(Isolation) 持續性(Durability) ACID

8 . 數據庫運行中可能產生的故障有哪幾類?哪些故障影響事務的正常執行?哪些故障破壞數據庫數據? (填空題)

數據庫系統中可能發生各種各樣的故障,大致可以分以下幾類:(1) 事務內部的故障;(2) 系統故障;(3) 介質故障;(4) 計算機病毒。事務故障、系統故障和介質故障影響事務的正常執行;介質故障和計算機病毒破壞數據庫數據。

9 . 把數據庫從錯誤狀態恢復到某一已知的正確狀態(亦稱爲一致狀態)的功能,這就是________ 。 (問答題)

數據庫的恢復

10 . 數據庫恢復的基本技術有哪些? (填空題)

數據轉儲和登錄日誌文件是數據庫恢復的基本技術。當系統運行過程中發生故障,利用轉儲的數據庫後備副本和日誌文件就可以將數據庫恢復到故障前的某個一致性狀態。

11 . 數據庫系統中可能發生各種各樣的故障,大致可以分爲________ 、________ 、________ 和 ________ 等。 (問答題)

事務故障 系統故障 介質故障 計算機病毒

12 .數據庫轉儲的意義是什麼? 試比較各種數據轉儲方法。 (填空題)

數據轉儲是數據庫恢復中採用的基本技術。所謂轉儲即DBA定期地將數據庫複製到磁帶或另一個磁盤上保存起來的過程。當數據庫遭到破壞後可以將後備副本重新裝入,將數據庫恢復到轉儲時的狀態。靜態轉儲:在系統中無運行事務時進行的轉儲操作。如上圖所示。靜態轉儲簡單,但必須等待正運行的用戶事務結束才能進行。同樣,新的事務必須等待轉儲結束才能執行。顯然,這會降低數據庫的可用性。動態轉儲:指轉儲期間允許對數據庫進行存取或修改。動態轉儲可克服靜態轉儲的缺點,它不用等待正在運行的用戶事務結束,也不會影響新事務的運行。但是,轉儲結束時後援副本上的數據並不能保證正確有效。因爲轉儲期間運行的事務可能修改了某些數據,使得後援副本上的數據不是數據庫的一致版本。爲此,必須把轉儲期間各事務對數據庫的修改活動登記下來,建立日誌文件(log file)。這樣,後援副本加上日誌文件就能得到數據庫某一時刻的正確狀態。轉儲還可以分爲海量轉儲和增量轉儲兩種方式。海量轉儲是指每次轉儲全部數據庫。增量轉儲則指每次只轉儲上一次轉儲後更新過的數據。從恢復角度看,使用海量轉儲得到的後備副本進行恢復一般說來更簡單些。但如果數據庫很大,事務處理又十分頻繁,則增量轉儲方式更實用更有效。

13 . 建立冗餘數據最常用的技術是________ 和________ 。通常在一個數據庫系統中,這兩種方法是一起使用的。 (問答題)

數據轉儲 登錄日誌文件

14 .什麼是日誌文件?爲什麼要設立日誌文件? (填空題)

(1) 日誌文件是用來記錄事務對數據庫的更新操作的文件。(2) 設立日誌文件的目的是: 進行事務故障恢復;進行系統故障恢復;協助後備副本進行介質故障恢復。

15 . 轉儲可分爲________ 和________,轉儲方式可以有________和 ________。 (問答題)

靜態轉儲 動態轉儲 海量轉儲 增量轉儲

16 .登記日誌文件時爲什麼必須先寫日誌文件,後寫數據庫? (填空題)

把對數據的修改寫到數據庫中和把表示這個修改的日誌記錄寫到日誌文件中是兩個不同的操作。有可能在這兩個操作之間發生故障,即這兩個寫操作只完成了一個。如果先寫了數據庫修改,而在運行記錄中沒有登記這個修改,則以後就無法恢復這個修改了。如果先寫日誌,但沒有修改數據庫,在恢復時只不過是多執行一次UNDO操作,並不會影響數據庫的正確性。所以一定要先寫日誌文件,即首先把日誌記錄寫到日誌文件中,然後寫數據庫的修改。

17 .針對不同的故障,試給出恢復的策略和方法。(即如何進行事務故障的恢復?系統故障的'恢復?介質故障恢復?) (填空題)

答:事務故障的恢復:事務故障的恢復是由DBMS自動完成的,對用戶是透明的。 DBMS執行恢復步驟是:(1)反向掃描文件日誌(即從最後向前掃描日誌文件),查找該事務的更新操作。(2)對該事務的更新操作執行逆操作。即將日誌記錄中“更新前的值”寫入數據庫。(3)繼續反向掃描日誌文件,做同樣處理。(4)如此處理下去,直至讀到此事務的開始標記,該事務故障的恢復就完成了。答:系統故障的恢復:系統故障可能會造成數據庫處於不一致狀態:一是未完成事務對數據庫的更新可能已寫入數據庫;二是已提交事務對數據庫的更新可能還留在緩衝區,沒來得及寫入數據庫。因此恢復操作就是要撤銷(UNDO)故障發生時未完成的事務,重做(REDO)已完成的事務。系統的恢復步驟是:(1)正向掃描日誌文件,找出在故障發生前已經提交的事務隊列(REDO隊列)和未完成的事務隊列(UNDO隊列)。(2)對撤銷隊列中的各個事務進行UNDO處理。進行UNDO處理的方法是,反向掃描日誌文件,對每個UNDO事務的更新操作執行逆操作,即將日誌記錄中“更新前的值”(Before Image)寫入數據庫。(3)對重做隊列中的各個事務進行REDO處理。進行REDO處理的方法是:正向掃描日誌文件,對每個REDO事務重新執行日誌文件登記的操作。即將日誌記錄中“更新後的值”(After Image)寫入數據庫。 *解析:在第(1)步中如何找出REDO隊列和UNDO隊列?請大家思考一下。下面給出一個算法: 1) 建立兩個事務隊列: ? UNDO-LIST: 需要執行undo操作的事務集合; ? REDO-LIST: 需要執行redo操作的事務集合;兩個事務隊列初始均爲空。 2) 從日誌文件頭開始,正向掃描日誌文件 ? 如有新開始(遇到Begin Transaction)的事務Ti,把Ti暫時放入UNDO-LIST隊列; ? 如有提交的事務(遇到End Transaction)Tj,把Tj從UNDO-LIST隊列移到REDO-LIST隊列;直到日誌文件結束答:介質故障的恢復:介質故障是最嚴重的一種故障。恢復方法是重裝數據庫,然後重做已完成的事務。具體過程是:(1) DBA裝入最新的數據庫後備副本(離故障發生時刻最近的轉儲副本),使數據庫恢復到轉儲時的一致性狀態。(2) DBA裝入轉儲結束時刻的日誌文件副本(3) DBA啓動系統恢復命令,由DBMS完成恢復功能,即重做已完成的事務。 *解析 1)我們假定採用的是靜態轉儲,因此第(1)步裝入數據庫後備副本便可以了。 2)如果採用的是動態轉儲,第(1)步裝入數據庫後備副本還不夠,還需同時裝入轉儲開始時刻的日誌文件副本,經過處理後才能得到正確的數據庫後備副本。 3)第(2)步重做已完成的事務的算法是: a. 正向掃描日誌文件,找出故障發生前已提交的事務的標識,將其記入重做隊列 b. 再一次正向掃描日誌文件,對重做隊列中的所有事務進行重做處理。即將日誌記錄中“更新後的值”寫入數據庫。

18 .________ 是用來記錄事務對數據庫的更新操作的文件。主要有兩種格式:以________爲單位的日誌文件和以________爲單位的日誌文件。 (問答題)

日誌文件 記錄 數據塊

19 .什麼是檢查點記錄,檢查點記錄包括哪些內容? (填空題)

檢查點記錄是一類新的日誌紀錄。它的內容包括: ① 建立檢查點時刻所有正在執行的事務清單。 ② 這些事務的最近一個日誌記錄的地址。

20 .具有檢查點的恢復技術有什麼優點?試舉一個具體的例子加以說明。 (填空題)

利用日誌技術進行數據庫恢復時,恢復子系統必須搜索日誌,確定哪些事務需要REDO,哪些事務需要UNDO。一般來說,需要檢查所有日誌記錄。這樣做有兩個問題:一是搜索整個日誌將耗費大量的時間。二是很多需要REDO處理的事務實際上已經將它們的更新操作結果寫到數據庫中了,恢復子系統又重新執行了這些操作,浪費了大量時間。檢查點技術就是爲了解決這些問題。

21 .試述使用檢查點方法進行恢復的步驟。 (填空題)

① 從重新開始文件中找到最後一個檢查點記錄在日誌文件中的地址,由該地址在日誌文件中找到最後一個檢查點記錄。 ② 由該檢查點記錄得到檢查點建立時刻所有正在執行的事務清單ACTIVE-LIST。這裏建立兩個事務隊列: ? UNDO-LIST: 需要執行undo操作的事務集合; ? REDO-LIST: 需要執行redo操作的事務集合;把ACTIVE-LIST暫時放入UNDO-LIST隊列,REDO隊列暫爲空。 ③ 從檢查點開始正向掃描日誌文件 ? 如有新開始的事務Ti,把Ti暫時放入UNDO-LIST隊列; ? 如有提交的事務Tj,把Tj從UNDO-LIST隊列移到REDO-LIST隊列,直到日誌文件結束; ④ 對UNDO-LIST中的每個事務執行UNDO操作, 對REDO-LIST中的每個事務執行REDO操作。

22 .什麼是數據庫鏡像?它有什麼用途? (填空題)

數據庫鏡像即根據DBA的要求,自動把整個數據庫或者其中的部分關鍵數據複製到另一個磁盤上。每當主數據庫更新時,DBMS自動把更新後的數據複製過去,即DBMS自動保證鏡像數據與主數據的一致性。數據庫鏡像的用途有:一是用於數據庫恢復。當出現介質故障時,可由鏡像磁盤繼續提供使用,同時DBMS自動利用鏡像磁盤數據進行數據庫的恢復,不需要關閉系統和重裝數據庫副本。二是提高數據庫的可用性。在沒有出現故障時,當一個用戶對某個數據加排它鎖進行修改時,其他用戶可以讀鏡像數據庫上的數據,而不必等待該用戶釋放鎖。