資料庫應用基礎試題
『壹』 跪求!緊急!資料庫原理及應用的試題
一:
(1)select 書名,定價 from 圖書 where 定價 = (select max(定價) from 圖書)
(2)查詢存儲有書名為資料庫系統基礎的圖書管的管名.
二:
(1)select S#,SNAME from S where AGE>22
(2)select CNAME,TEACHER from C where c# in ( select c# from SC where S# = 10001)
(3)select SNAME from S where sex='女' and s# in (select S# from SC where C# in (select C# fron C where teacher = '王老師'))
不能實現的話,留言
『貳』 資料庫試題(求答案)
13.B
14.B
D
4.C
5.B
6.C
8.D
11.A
12.B
13.B
『叄』 資料庫基礎與應用課題答案
資料庫系統是一個實際可運行的存儲、維護和應用系統提供數據的軟體系統,是存儲介質舉祥、處理對象和管理系統的集合體。它通常由軟體、資料庫和數據管理員組成。其軟體主要包括操作系統、各種宿主語言、實用程序以及資料庫管理系統。資料庫由資料庫管理系統統一管理,數據的插入、修改和檢索均要通過資料庫管理系統進行。數據管理員負責創建、監控和維護整個資料庫,使數據能被任何有權使用的人有效使用。資料庫管理員一般是由業務水平較高、資歷較深的人員擔任。
★資料庫系統的個體含義是指一個具體的資料庫管理系統軟體和用它建立起來的資料庫;它的學科含義是指研究、開發、建立、維護和應用資料庫系統所涉及的理論、方法、技術所構成的學科。在這一含義下,資料庫系統是軟體研究領域的一個重要分支,常稱為資料庫領域。
★資料庫研究跨越於計算機應用、系統軟體和理論三個領域,其中應用促進新系統的研製開發,新系統帶來新的理論研究,而理論研究又對前兩個領域起著指導作用。資料庫系統的出現是計算機應用的一個里程牌,它使得計算機應用從以科學計算為主轉向以數據處理為主,並從而使計算機得以在各行各業乃至家庭普遍使用。在它之前的文件系統雖然也能處理持久數據,但是文件系統不提供對任意部分數據的快速訪問,而這對數據量不斷增大的應用來說是至關重要的攜亮。為了實現對任意部分數據的快速訪問,就要研究許多優化技術。這些優化技術往往很復雜,是普通用戶難以實現的,所以就由系統軟體(資料庫管理系統)來完成,而提供給用戶的是簡單易用的資料庫語言。由於對資料庫的操作都由資料庫管理系統完成,所以資料庫就可以獨立於具體的應用程序而存在,從而資料庫又可以為多個用戶所共享。因此,數據的獨立性和共享性是資料庫系統的重要特徵。數據共享節省了大量人力物力,為資料庫系統的廣泛應用奠定了基礎。資料庫系統的出現使得普通用戶能夠方便地將日常數據存入計算機並在需要的時候快速訪問它們,從而使計算機走出科研機構進入各行各業、進入家庭。
★資料庫系統的特點大致有:
數據的結構化,數據的共享性好,數據的獨立性好,數據存儲粒度小,數據管理系統,為用戶提供了友好的介面。
★資料庫系統的核心和基礎:
資料庫系統的核心和基礎是數據模型,現有的資料庫系統均是基於某種數據模型的.
★資料庫系統的核心是資料庫正隱搏管理系統。
資料庫系統一般由資料庫、資料庫管理系統(DBMS)、應用系統、資料庫管理員和用戶構成。DBMS是資料庫系統的基礎和核心。計算機系統計算機系統由計算機硬體和軟體兩部分組成。硬體包括中央處理機、存儲器和外部設備等;軟體是計算機的運行程序和相應的文檔。計算機系統具有接收和存儲信息、按程序快速計算和判斷並輸出處理結果等功能。硬體是計算機系統的物質基礎,沒有硬體就不成其為計算機;軟體是計算機的語言,沒有軟體的支持,計算機就無法使用。計算機硬體包括中央處理機、存儲器和外部設備。中央處理機是計算機的核心部部件,由運算器的控制器兩部分組成,主要功能是解釋指令、控制指令執行、控制和管理機器運行狀態,以及實時處理中央處理機內部和外部出現和各種應急事件。存儲器分為主存儲器和輔助存儲器。主存儲器的主要功能是存儲信息和與中央處理機直接交換信息;輔助存儲器包括磁碟機、磁帶機和光碟機等,通常只與主存儲器交換信息。外部設備包括輸入和輸出設備、轉換設備、終端設備等,如鍵盤、列印機、繪圖儀和滑鼠器等。軟體通常分為兩大類:系統軟體和應用軟體。系統軟體最靠近硬體層,是計算機的基礎軟體,如操作系統、高級語言處理程序等。系統軟體是計算機廠家預先設計好的。操作系統主要用於組織管理計算機系統的所有便件和軟體資源,使之協調一致、高效地運行;高級語言處理程序包括編譯程序和解釋程序等。編譯程序能將高級語言編寫的源程序翻譯成計算機執行的目標程序,解釋程序是邊解釋邊執行源程序。應用軟體處於計算機系統的最外層,是按照某種特定的應用而編寫的軟體。90年代至21世紀初計算機技術的發展進入以開放系統及計算機風格為突出特徵的嶄新時代,正在逐步形成包括計算機系統體系結構、網路體系結構和應用體系結構的完整技術體系。各種計算機的結構,如精簡指令系統計算機和大規模並行處理計算機的迅速發展,對計算機工業的發展和軍事應用都將產生巨大的影響。
資料庫系統與一般的計算機系統完全就是兩碼事啊!
『肆』 計算機試題,急!!!!
鏈接:
通過不斷研究和學習歷年真題,為考生沖刺階段復習提分指點迷津,做真題,做歷年真題集,對照考綱查缺補漏,提高實戰素養,制定做題策略,規劃方向;
若資源有問題歡迎追問!
『伍』 資料庫原理及應用基礎的常見類型題
1.B 2.C 3.B 4.C 5.D 6.C 7.C 8.D 9.C 10.A
11.A 12.A 13.A - 不知道14。乙evogue2006 - 10 - 24 11點47分01秒15?16.A 17.B 18.A 19.D 20.C
試述事務的概念和事務的四個特性。
A:
事務是一個用戶定義的資料庫操作序列,這些操作要麼全部做或不做的整體,是一個不可分割的工作單元。
事務有四個特點:原子性(原子性),一致性(一致性),隔離(隔離)和持久性(Durability)。這四個特點也被稱為ACID屬性。
原子性:事務資料庫的邏輯工作單元,該交易包括所有的操作,無論是做還是不做。
一致性:事務執行的結果必須更改資料庫從一個一致狀態轉換到另一個一致的狀態。
隔離:一個事務的執行不能被其他事務的干擾。一個事務內的操作和使用其他並發事務的數據分離出來,並發執行的個別交易不能互相干擾。
持續性:持續性的,也被稱為永久(持久性),指的到交易提交其數據存儲在資料庫中的變化應該是永久性的。接下來的操作或故障不應該有任何影響其執行結果。
2。為什麼事務非正常時間的推移,會影響資料庫中數據的正確性,舉了一個例子。
A:
事務的執行結果必須更改資料庫從一個一致狀態轉換到另一個一致狀態。如果出現故障的資料庫系統的操作,一些尚未完成的交易被迫中斷,這些未完成的交易的一部分已被寫入到物理資料庫對資料庫所做的更改,然後在資料庫中不正確的狀態,或者是不一致的狀態。
如一個工廠的庫存管理系統,它是必要的量Q的某些部分從倉庫1倉庫2個存儲。
你可以定義一個事務T,T包括兩個操作; Q1 = Q1-Q,Q2 = Q2 + Q. T改變的終??止,只有當第一個操作,資料庫是不一致Q庫存沒有理由。
3。資料庫中為什麼要有恢復子系統?它的功能是什麼?
A:
是不可避免的,因為計算機系統的硬體故障,軟體錯誤,操作錯誤和惡意破壞所造成的這些故障從正在運行的事務中發生非正常中斷,影響資料庫中的數據正確性,而破壞了資料庫中,因此,在資料庫中的數據的全部或部分損失,因此必須有一個恢復子系統。功能
恢復子系統:資料庫從錯誤狀態恢復到一個已知的良好狀態(也被稱為一致的狀態或完整狀態)。
4。在資料庫中可能出現的故障運行幾類?什麼故障影響正常執行的交易嗎?什麼故障破壞資料庫中的數據?
A:資料庫系統的各種可能發生的故障大致可分為如下幾類:
(1)內部交易失敗;
(2)系統故障; />(3)介質故障;
(4)計算機病毒。的
交易失敗,系統故障和介質故障影響事務的正常執行;介質故障和計算機病毒破壞的數據
庫。
5。根據回收技術?
A:
數據轉儲和登錄日誌文件是資料庫恢復的基本技術。
當一個故障在系統運行過程中,轉儲資料庫的日誌文件,你可以將資料庫恢復到一致狀態,在發生故障之前的備份副本。
6。資料庫的轉儲的意義是什麼?各種數據轉儲方法的比較。
答案:
數據轉儲是基本的技術,在恢復的資料庫。所謂的轉儲資料庫DBA定期復制到磁帶或其他磁碟保存。可以重新載入資料庫破壞的資料庫的備份副本恢復時的狀態轉儲。
靜態轉儲:轉儲系統操作運行的事務。靜態轉儲,但必須等待用戶交易結束之前運行。同樣,新的事務必須等待執行轉儲結束。顯然,這將減少資料庫的可用性。
動態轉儲:轉儲期間允許資料庫訪問或。動態的轉儲可以克服靜態轉儲的缺點,它並不需要等待正在運行的用戶交易的結束,也不會影響新事務的操作。然而,備份的數據副本結束時的轉儲和不能保證正確和有效的。 ,因為轉儲運行在交易過程中可能會一些數據,備份的數據副本是不符合版本的資料庫。
為此,我們必須活動期間注冊使用mp transaction資料庫,以創建一個日誌文件(日誌文件)。在這樣的日誌文件的備份副本可以得到正確的資料庫狀態的時刻。
轉儲海量轉儲和增量轉儲可以分為兩種方式。
大規模傾倒每一個轉儲所有資料庫。增量轉儲每次更新只轉儲上次轉儲數據。從恢復的角度來看,大量的轉儲的備份副本恢復一般更容易。如果該資料庫,事務處理,是非常頻繁,增量轉儲方式更實用,更有效。
7。日誌文件?為什麼要建立一個日誌文件?
答案:
(1)日誌文件是用來記錄交易文件對資料庫的更新操作。
(2)建立的日誌文件的目的:交易故障恢復系統故障恢復;協助媒體恢復的備份副本。
登記日誌文件為什麼要寫入日誌文件後,寫入到資料庫?
A:
的數據寫入到資料庫中,兩種不同的操作,這個後的日誌記錄被寫入到日誌文件中。這兩個操作之間可能發生了故障,即這兩個寫操作只完成了。
先寫一個資料庫,而不是變化的運行記錄中,小數點後不能被恢復這一。如果你寫的日誌,但沒有資料庫,恢復執行UNDO操作,不影響資料庫的正確性。所以一定要確保你寫的日誌文件,日誌記錄寫入到日誌文件中,然後寫入到資料庫的變化。
9,測試是針對不同的故障恢復策略和方法。 (也就是說,如何進行交易系統故障恢復故障恢復介質恢復?)
A:
交易故障恢復:
事務故??障的恢復是自動完成的DBMS ,是對用戶透明。
DBMS執行恢復步驟:
(1)反向掃描文件日誌(即從最後一次掃描日誌文件),則該事務更新操作。
(2)事務的更新操作執行逆操作。關於日誌記錄更新前值嗎?寫入到資料庫中。
(3)反向掃描日誌文件,做同樣的。
(4)?下去,直到你讀的開始標記本次交易,交易失敗恢復完整。
A:
系統故障恢復:
系統出現故障可能會導致資料庫處於不一致的狀態:
首先,沒有完成的交易資料庫的更新可能已被寫入到資料庫中;
已提交的交易資料庫的更新可能還留在緩沖區中,並沒有寫入到資料庫。
恢復操作(UNDO)的未竟事業出現故障,重做(REDO)已完成的交易。
恢復步驟:
(1)正向掃描日誌文件,以確定該交易已提交在故障發生前隊列中(REDO隊列的)和未完成的事務隊列(UNDO隊列)。
(2)UNDO處理隊列中的個別交易的。
UNDO處理方法是反向掃描日誌文件,更新操作執行相反的操作,每一個UNDO事務迫在眉睫的「價值」(前映像)記錄寫入到資料庫中,然後再更新。
(3)治療重做重做隊列事務。
REDO處理方法:正向掃描日誌文件,每個REDO事務重新執行操作的日誌文件登記。即將推出的日誌記錄寫入到資料庫中的更新值「(後映像)。
解析度:
步驟(1)如何確定的REDO隊列和UNDO隊列,請考慮一下吧。 BR />的演算法如下:
1)創建兩個事務隊列:
·UNDO-LIST:需要執行undo操作的事務集;
·REDO-LIST:需要執行重做操作事務集;
事務隊列最初是空的。
)從日誌文件頭,正向掃描日誌文件
是否有新的開始(遇到BEGIN TRANSACTION)交易鈦,鈦暫時放入UNDO-LIST隊列;
·如果提交的事務(遇到結束事務)TJ TJ從隊列undo-list中的REDO-LIST隊列;
直到最後的日誌文件A:
介質故障恢復:
介質故障是最嚴重的故障。
恢復方法是重裝資料庫,然後重做已完成交易的過程是:
(1 )DBA裝入最新的資料庫備份(從故障時間最近的轉儲副本),將資料庫恢復到一致的狀態轉儲。
(2)DBA的日誌文件的副本載入轉儲結束時間
(3)DBA啟動系統恢復命令來完成還原的DBMS的功能,重做已完成的交易。
解析
1)我們假設靜態轉儲的步驟(1)安裝資料庫的備份副本。
2)如果您使用的是靜態和動態轉儲步驟(1)將資料庫的備份副本是不夠的,需要同時載入的副本日誌文件的轉儲開始治療後的時間,以獲得正確的資料庫的備份副本。
3)(2)步演算法來重做已完成的交易:
正向掃描日誌文件,以找出識別在故障發生之前提交的交易中,計入的重量隊列
B。再次向前掃描日誌文件,重做重做隊列中的所有交易。即將推出的日誌記錄寫入到資料庫中的更新值。
>
10。檢查點恢復技術的優勢是什麼?
A:
測井技術進行資料庫恢復,恢復子系統必須搜索日誌,以確定哪些事務需要重做,哪些事務需要。一般來說,你需要檢查所有的記錄。這樣做有兩個問題:
首先,搜索整個日誌將花費大量的時間。
REDO處理的事務實際上寫的更新操作資料庫恢復子系統又執行這些操作,浪費了大量的時間。
檢查點技術,以解決這些問題。
11。師叔檢查點的恢復步驟。
①從啟動文件的最後一個檢查點記錄在日誌文件中的地址找到最後一個檢查點記錄在日誌文件中找到的地址。
②檢查站的檢查點記錄的建立時間列表中的所有運行的事務ACTIVE-LIST。
創建兩個事務隊列:
·UNDO-LIST:需要執行undo操作的事務集;
·REDO-LIST:集交易需要執行恢復操作;
ACTIVE-LIST暫時到UNDO-LIST隊列,REDO隊列暫時空。
③從檢查點開始正向掃描日誌文件
任何新的起點事務鈦undo-list中的Ti暫時放置在隊列中;
·如果提交事務TJ,TJ移動從UNDO-LIST隊列,REDO-LIST隊列,直到最後的日誌文件;
>④UNDO操作執行undo-list中的每一筆交易REDO-LIST中的每個事務執行REDO操作。
12。資料庫鏡像?使用?
答案:
資料庫鏡像是根據對DBA的要求,自動復制到另一個磁碟上的關鍵數據在整個資料庫或部分。每當主資料庫更新時,DBMS自動復制更新後的數據,在過去,DBMS自動保證鏡像的一致性
使用資料庫鏡像的數據和主數據。:
一個用於資料庫恢復。當介質故障的鏡像磁碟繼續提供使用的資料庫管理系統自動鏡像磁碟數據恢復的資料庫,並且不需要關閉系統並重新安裝該資料庫的副本。
二是要提高無故障,當用戶的數據加排他鎖來其他用戶可以讀取的數據的資料庫的可用性。鏡像資料庫,無需等待用戶釋放該鎖。
『陸』 資料庫基礎與應用答案
2014電大最新《資料庫基礎及應用》形成性考核冊作業答案一 (第1~第3章) 一、單選題(在每小題的空括弧內填寫上正確選項的字母,每小題2分,共36分) 1.在利用計算機進行數據處理的四個發展階段中,第3個發展階段是( C )。 A.人工管理 B.文件系統 C.資料庫系統 D.分布式資料庫系統 2實體中能夠唯一標識自己的屬性被稱做( A )。 A.碼 B.域 C.聯系 D.元組 3、關系數據模型屬於( B )。 A.概念數據模型 B.邏輯數據模型 C.存儲數據模型 D.對象數據模型 4.若實體A和B是1對多的聯系,實體B和C是多對1的聯系,則實體A和C是( C )聯系。 A.1對1 B.1對多 C.多對多 D.多對1 5.在資料庫體系結構的三級模式中,全局模式處於( B )層。 A.最內 B.中間 C.最外 D.應用 6.下面不屬於資料庫體系結構中三級模式的是( C )。 A.存儲模式 B.邏輯模式 C.數據模式 D.應用模式 7.設D1、D2和D3定義域中的基數分別為2、3和4,則D1xD2xD3的元組數為( B )。 A.9 B.24 C.10 D.14 8.設關系R1具有a1個屬性和b1個元組,關系R2具有a2個屬性和b2個元組,則關系R1×R2所具有的元組個數( D )。 A.a1+b1 B.a2+b2 C.a1xa2 D.b1xb2 9.若一個關系為R(學生號,姓名,性別,年齡),則可以作為主碼的屬性為( A )。 A.學生號 B.姓名 C.性別 D.年齡 10.設一個關系模式為R(A,B,C),對應的關系內容為R={{1,10,50},{2,10,60},{3,20,72},{4,30,60}},則δB>15(R)的運算結果中具有的元組個數為( B )。 A.1 B.2 C.3 D.4 11.設一個學生關系為S(學生號,姓名),課程關系為C(課程號,課程名),選課關系為X(學生號,課程號,成績)。則求出所有選修課程信息的運算表達式為П課程號(X)與( A )的自然連接。 A.C B.S C.X D.П課程號(C) 12.設兩個關系中分別包含有m和n個屬性,它們具有同一個公共屬性,當對它們進行等值連接時,運算結果的關系中包含的屬性個數為( C )。 A.m*n B.m+n-1 C.m+n D.m+n+1 13.在一個關系R中,若X,Y和Z為互不相同的單屬性,並且存在XY和YZ,則必然存在X到Z的( B )函數依賴。 A.部分 B.傳遞 C.直接 D.平凡 14.在一個關系R中,若存在「學號系號,系號系主任」,則該關系必定存在著( )函數依賴。 A.部分 B.平凡 C.相互 D.傳遞 15.設一個關系為R(A,B.C,D,E),它的最小函數依賴集為FD={AB,CD,(A,C)E},則該關系的候選碼為( B )。 A.(A,B) B.(A,C) C.(A,D) D.(A,E) 16.設一個關系為R(A,B,C,D,E),它的最小函數依賴集為FD={AB,BC.BD,DE},則該關系的候選碼為( C )。 A.(A,B) B.(A,D) C.A D.B 17.設一個關系為R(A,B,C,D,E),它的最小函數依賴集為FD={AB,AC,(C,D) E},則該關系的候選碼為( C )。 A.(A,C) B.(C,D) C.(A,D) D.(B,D) 18.設一個關系為R(A.B,C,D,E,F,G),它的最小函數依賴集為FD={AB,AC,CD,CE,AF,FG},若要規范化為高一級的範式,則將得到( C )個關系。 A.1 B.2 C.3 D.4
其餘的點擊http://wenku..com/link?url=-就可以看到了。是網路文庫的,放心。
『柒』 資料庫原理及應用試題
1.B 2.C 3.B 4.C 5.D 6.C 7.C 8.D 9.C 10.A
11.A 12.A 13.A --不太確定 14.B 15.C 16.A 17.B 18.A 19.D 20.C
1.試述事務的概念及事務的四個特性。
答:
事務是用戶定義的一個資料庫操作序列,這些操作要麼全做要麼全不做,是一個不可分割的工作單位。
事務具有四個特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持續性(Durability)。這個四個特性也簡稱為ACID特性。
原子性:事務是資料庫的邏輯工作單位,事務中包括的諸操作要麼都做,要麼都不做。
一致性:事務執行的結果必須是使資料庫從一個一致性狀態變到另一個一致性狀態。
隔離性:一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的數據對其他並發事務是隔離的,並發執行的各個事務之間不能互相干擾。
持續性:持續性也稱永久性(Permanence),指一個事務一旦提交,它對資料庫中數據的改變就應該是永久性的。接下來的其他操作或故障不應該對其執行結果有任何影響。
2.為什麼事務非正常結束時會影響資料庫數據的正確性,請列舉一例說明之。
答:
事務執行的結果必須是使資料庫從一個一致性狀態變到另一個一致性狀態。如果資料庫系統運行中發生故障,有些事務尚未完成就被迫中斷,這些未完成事務對資料庫所做的修改有一部分已寫入物理資料庫,這時資料庫就處於一種不正確的狀態,或者說是不一致的狀態。
例如某工廠的庫存管理系統中,要把數量為Q的某種零件從倉庫1移到倉庫2存放。
則可以定義一個事務T,T包括兩個操作;Q1=Q1-Q,Q2=Q2+Q。如果T非正常終止時只做了第一個操作,則資料庫就處於不一致性狀態,庫存量無緣無故少了Q。
3.資料庫中為什麼要有恢復子系統?它的功能是什麼?
答:
因為計算機系統中硬體的故障、軟體的錯誤、操作員的失誤以及惡意的破壞是不可避免的,這些故障輕則造成運行事務非正常中斷,影響資料庫中數據的正確性,重則破壞資料庫,使資料庫中全部或部分數據丟失,因此必須要有恢復子系統。
恢復子系統的功能是:把資料庫從錯誤狀態恢復到某一已知的正確狀態(亦稱為一致狀態或完整狀態)。
4.資料庫運行中可能產生的故障有哪幾類?哪些故障影響事務的正常執行?哪些故障破壞資料庫數據?
答:資料庫系統中可能發生各種各樣的故障,大致可以分以下幾類:
(1)事務內部的故障;
(2)系統故障;
(3)介質故障;
(4)計算機病毒。
事務故障、系統故障和介質故障影響事務的正常執行;介質故障和計算機病毒破壞數據
庫數據。
5.據庫恢復的基本技術有哪些?
答:
數據轉儲和登錄日誌文件是資料庫恢復的基本技術。
當系統運行過程中發生故障,利用轉儲的資料庫後備副本和日誌文件就可以將資料庫恢復到故障前的某個一致性狀態。
6. 資料庫轉儲的意義是什麼? 試比較各種數據轉儲方法。
答:
數據轉儲是資料庫恢復中採用的基本技術。所謂轉儲即DBA定期地將資料庫復制到磁帶或另一個磁碟上保存起來的過程。當資料庫遭到破壞後可以將後備副本重新裝入,將資料庫恢復到轉儲時的狀態。
靜態轉儲:在系統中無運行事務時進行的轉儲操作。靜態轉儲簡單,但必須等待正運行的用戶事務結束才能進行。同樣,新的事務必須等待轉儲結束才能執行。顯然,這會降低資料庫的可用性。
動態轉儲:指轉儲期間允許對資料庫進行存取或修改。動態轉儲可克服靜態轉儲的缺點,它不用等待正在運行的用戶事務結束,也不會影響新事務的運行。但是,轉儲結束時後援副本上的數據並不能保證正確有效。因為轉儲期間運行的事務可能修改了某些數據,使得後援副本上的數據不是資料庫的一致版本。
為此,必須把轉儲期間各事務對資料庫的修改活動登記下來,建立日誌文件(log file)。這樣,後援副本加上日誌文件就能得到資料庫某一時刻的正確狀態。
轉儲還可以分為海量轉儲和增量轉儲兩種方式。
海量轉儲是指每次轉儲全部資料庫。增量轉儲則指每次只轉儲上一次轉儲後更新過的數據。從恢復角度看,使用海量轉儲得到的後備副本進行恢復一般說來更簡單些。但如果資料庫很大,事務處理又十分頻繁,則增量轉儲方式更實用更有效。
7. 什麼是日誌文件?為什麼要設立日誌文件?
答:
(1)日誌文件是用來記錄事務對資料庫的更新操作的文件。
(2)設立日誌文件的目的是: 進行事務故障恢復;進行系統故障恢復;協助後備副本進行介質故障恢復。
8. 登記日誌文件時為什麼必須先寫日誌文件,後寫資料庫?
答:
把對數據的修改寫到資料庫中和把表示這個修改的日誌記錄寫到日誌文件中是兩個不同的操作。有可能在這兩個操作之間發生故障,即這兩個寫操作只完成了一個。
如果先寫了資料庫修改,而在運行記錄中沒有登記這個修改,則以後就無法恢復這個修改了。如果先寫日誌,但沒有修改資料庫,在恢復時只不過是多執行一次UNDO操作,並不會影響資料庫的正確性。所以一定要先寫日誌文件,即首先把日誌記錄寫到日誌文件中,然後寫資料庫的修改。
9. 針對不同的故障,試給出恢復的策略和方法。(即如何進行事務故障的恢復?系統故障的恢復?介質故障恢復?)
答:
事務故障的恢復:
事務故障的恢復是由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. 再一次正向掃描日誌文件,對重做隊列中的所有事務進行重做處理。即將日誌記錄中「更新後的值」寫入資料庫。
10. 具有檢查點的恢復技術有什麼優點?
答:
利用日誌技術進行資料庫恢復時,恢復子系統必須搜索日誌,確定哪些事務需要REDO,哪些事務需要UNDO。一般來說,需要檢查所有日誌記錄。這樣做有兩個問題:
一是搜索整個日誌將耗費大量的時間。
二是很多需要REDO處理的事務實際上已經將它們的更新操作結果寫到資料庫中了,恢復子系統又重新執行了這些操作,浪費了大量時間。
檢查點技術就是為了解決這些問題。
11. 試述使用檢查點方法進行恢復的步驟。
答:
① 從重新開始文件中找到最後一個檢查點記錄在日誌文件中的地址,由該地址在日誌文件中找到最後一個檢查點記錄。
② 由該檢查點記錄得到檢查點建立時刻所有正在執行的事務清單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操作。
12. 什麼是資料庫鏡像?它有什麼用途?
答:
資料庫鏡像即根據DBA的要求,自動把整個資料庫或者其中的部分關鍵數據復制到另一個磁碟上。每當主資料庫更新時,DBMS自動把更新後的數據復制過去,即DBMS自動保證鏡像數據與主數據的一致性。
資料庫鏡像的用途有:
一是用於資料庫恢復。當出現介質故障時,可由鏡像磁碟繼續提供使用,同時DBMS自動利用鏡像磁碟數據進行資料庫的恢復,不需要關閉系統和重裝資料庫副本。
二是提高資料庫的可用性。在沒有出現故障時,當一個用戶對某個數據加排它鎖進行修改時,其他用戶可以讀鏡像資料庫上的數據,而不必等待該用戶釋放鎖。