點擊查看:全國計算機四級數(shù)據(jù)庫工程師考試精選試題匯總
1 .________ 是一系列的數(shù)據(jù)庫操作,是數(shù)據(jù)庫應(yīng)用程序的基本邏輯單元。 (問答題)
查看答案
事務(wù)
2 . 試述事務(wù)的概念及事務(wù)的四個特性。 (填空題)
查看答案
事務(wù)是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全做要么全不做,是一個不可分割的工作單位。事務(wù)具有四個特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持續(xù)性(Durability)。這個四個特性也簡稱為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ù)性也稱永久性(Permanence),指一個事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的。接下來的其他操作或故障不應(yīng)該對其執(zhí)行結(jié)果有任何影響。
3 . 為什么事務(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包括兩個操作;Q1=Q1-Q,Q2=Q2+Q。如果T非正常終止時只做了第一個操作,則數(shù)據(jù)庫就處于不一致性狀態(tài),庫存量無緣無故少了Q。
4 . 事務(wù)處理技術(shù)主要包括________ 技術(shù)和________技術(shù)。 (問答題)
查看答案
數(shù)據(jù)庫恢復(fù) 并發(fā)控制
5 . 在SQL語言中,定義事務(wù)控制的語句主要有________ 、________ 和 ________ 。 (問答題)
查看答案
BEGIN TRANSACTION COMMIT ROLLBACK
6 . 數(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))。
7 . 事務(wù)具有四個特性:它們是________ 、________ 、________ 和 ________ 。這個四個特性也簡稱為________特性。 (問答題)
查看答案
原子性(Atomicity) 一致性(Consistency) 隔離性(Isolation) 持續(xù)性(Durability) ACID
8 . 數(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ù)。
9 . 把數(shù)據(jù)庫從錯誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)(亦稱為一致狀態(tài))的功能,這就是________ 。 (問答題)
查看答案
數(shù)據(jù)庫的恢復(fù)
10 . 數(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)。
11 . 數(shù)據(jù)庫系統(tǒng)中可能發(fā)生各種各樣的故障,大致可以分為________ 、________ 、________ 和 ________ 等。 (問答題)
查看答案
事務(wù)故障 系統(tǒng)故障 介質(zhì)故障 計算機病毒
12 .數(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ù)時進行的轉(zhuǎn)儲操作。如上圖所示。靜態(tài)轉(zhuǎn)儲簡單,但必須等待正運行的用戶事務(wù)結(jié)束才能進行。同樣,新的事務(wù)必須等待轉(zhuǎn)儲結(jié)束才能執(zhí)行。顯然,這會降低數(shù)據(jù)庫的可用性。動態(tài)轉(zhuǎn)儲:指轉(zhuǎn)儲期間允許對數(shù)據(jù)庫進行存取或修改。動態(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ù)庫的修改活動登記下來,建立日志文件(log 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)儲得到的后備副本進行恢復(fù)一般說來更簡單些。但如果數(shù)據(jù)庫很大,事務(wù)處理又十分頻繁,則增量轉(zhuǎn)儲方式更實用更有效。
13 . 建立冗余數(shù)據(jù)最常用的技術(shù)是________ 和________ 。通常在一個數(shù)據(jù)庫系統(tǒng)中,這兩種方法是一起使用的。 (問答題)
查看答案
數(shù)據(jù)轉(zhuǎn)儲 登錄日志文件
14 .什么是日志文件?為什么要設(shè)立日志文件? (填空題)
查看答案
(1) 日志文件是用來記錄事務(wù)對數(shù)據(jù)庫的更新操作的文件。(2) 設(shè)立日志文件的目的是: 進行事務(wù)故障恢復(fù);進行系統(tǒng)故障恢復(fù);協(xié)助后備副本進行介質(zhì)故障恢復(fù)。
15 . 轉(zhuǎn)儲可分為________ 和________,轉(zhuǎn)儲方式可以有________和 ________。 (問答題)
查看答案
靜態(tài)轉(zhuǎn)儲 動態(tài)轉(zhuǎn)儲 海量轉(zhuǎn)儲 增量轉(zhuǎn)儲
16 .登記日志文件時為什么必須先寫日志文件,后寫數(shù)據(jù)庫? (填空題)
查看答案
把對數(shù)據(jù)的修改寫到數(shù)據(jù)庫中和把表示這個修改的日志記錄寫到日志文件中是兩個不同的操作。有可能在這兩個操作之間發(fā)生故障,即這兩個寫操作只完成了一個。如果先寫了數(shù)據(jù)庫修改,而在運行記錄中沒有登記這個修改,則以后就無法恢復(fù)這個修改了。如果先寫日志,但沒有修改數(shù)據(jù)庫,在恢復(fù)時只不過是多執(zhí)行一次UNDO操作,并不會影響數(shù)據(jù)庫的正確性。所以一定要先寫日志文件,即首先把日志記錄寫到日志文件中,然后寫數(shù)據(jù)庫的修改。
17 .針對不同的故障,試給出恢復(fù)的策略和方法。(即如何進行事務(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ù)進行UNDO處理。進行UNDO處理的方法是,反向掃描日志文件,對每個UNDO事務(wù)的更新操作執(zhí)行逆操作,即將日志記錄中“更新前的值”(Before Image)寫入數(shù)據(jù)庫。(3)對重做隊列中的各個事務(wù)進行REDO處理。進行REDO處理的方法是:正向掃描日志文件,對每個REDO事務(wù)重新執(zhí)行日志文件登記的操作。即將日志記錄中“更新后的值”(After Image)寫入數(shù)據(jù)庫。 *解析:在第(1)步中如何找出REDO隊列和UNDO隊列?請大家思考一下。下面給出一個算法: 1) 建立兩個事務(wù)隊列: ? UNDO-LIST: 需要執(zhí)行undo操作的事務(wù)集合; ? REDO-LIST: 需要執(zhí)行redo操作的事務(wù)集合;兩個事務(wù)隊列初始均為空。 2) 從日志文件頭開始,正向掃描日志文件 ? 如有新開始(遇到Begin Transaction)的事務(wù)Ti,把Ti暫時放入UNDO-LIST隊列; ? 如有提交的事務(wù)(遇到End Transaction)Tj,把Tj從UNDO-LIST隊列移到REDO-LIST隊列;直到日志文件結(jié)束答:介質(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ù)。 *解析 1)我們假定采用的是靜態(tài)轉(zhuǎn)儲,因此第(1)步裝入數(shù)據(jù)庫后備副本便可以了。 2)如果采用的是動態(tài)轉(zhuǎn)儲,第(1)步裝入數(shù)據(jù)庫后備副本還不夠,還需同時裝入轉(zhuǎn)儲開始時刻的日志文件副本,經(jīng)過處理后才能得到正確的數(shù)據(jù)庫后備副本。 3)第(2)步重做已完成的事務(wù)的算法是: a. 正向掃描日志文件,找出故障發(fā)生前已提交的事務(wù)的標(biāo)識,將其記入重做隊列 b. 再一次正向掃描日志文件,對重做隊列中的所有事務(wù)進行重做處理。即將日志記錄中“更新后的值”寫入數(shù)據(jù)庫。
18 .________ 是用來記錄事務(wù)對數(shù)據(jù)庫的更新操作的文件。主要有兩種格式:以________為單位的日志文件和以________為單位的日志文件。 (問答題)
查看答案
日志文件 記錄 數(shù)據(jù)塊
19 .什么是檢查點記錄,檢查點記錄包括哪些內(nèi)容? (填空題)
查看答案
檢查點記錄是一類新的日志紀(jì)錄。它的內(nèi)容包括: ① 建立檢查點時刻所有正在執(zhí)行的事務(wù)清單。 ② 這些事務(wù)的最近一個日志記錄的地址。
20 .具有檢查點的恢復(fù)技術(shù)有什么優(yōu)點?試舉一個具體的例子加以說明。 (填空題)
查看答案
利用日志技術(shù)進行數(shù)據(jù)庫恢復(fù)時,恢復(fù)子系統(tǒng)必須搜索日志,確定哪些事務(wù)需要REDO,哪些事務(wù)需要UNDO。一般來說,需要檢查所有日志記錄。這樣做有兩個問題:一是搜索整個日志將耗費大量的時間。二是很多需要REDO處理的事務(wù)實際上已經(jīng)將它們的更新操作結(jié)果寫到數(shù)據(jù)庫中了,恢復(fù)子系統(tǒng)又重新執(zhí)行了這些操作,浪費了大量時間。檢查點技術(shù)就是為了解決這些問題。
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關(guān)推薦:
2018年全國計算機等級考試復(fù)習(xí)知識點匯總(各科目)
2018全國計算機等級考試備考經(jīng)驗及應(yīng)試技巧匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |