(数据库系统概论|王珊)第十章数据库恢复技术:习题
名詞解釋
- 事務(wù):是用戶定義的一個數(shù)據(jù)庫操作序列。這些操作要么不做,要么全做,是一個不可分割的工作單位。例如在RDBMS中一個事務(wù)可以是一條SQL語句或整個程序。事務(wù)是數(shù)據(jù)庫恢復(fù)和并發(fā)控制的基本單位
- 事務(wù)原子性:事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包含的諸多操作要么全做、要么不做。因故障未能做完的,需要有一套機制用于“撤銷”那一部分已經(jīng)做了的
- 事務(wù)一致性:事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)
- 事務(wù)隔離性:一個事務(wù)不能被其他事務(wù)干擾。也即一個事務(wù)的內(nèi)部操作及使用的數(shù)據(jù)對其他并發(fā)事務(wù)是隔離的,并發(fā)執(zhí)行的各個事務(wù)之間不能互相干擾
- 事務(wù)持續(xù)性:一個事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就是永久性的。接下來的其他操作或故障不應(yīng)該對其執(zhí)行結(jié)果有任何影響
- 數(shù)據(jù)庫恢復(fù):把數(shù)據(jù)庫從因破壞或故障而導(dǎo)致的錯誤狀態(tài)恢復(fù)到某個已知的正確狀態(tài)的技術(shù)
- 事務(wù)故障:某個事務(wù)在運行過程中由于種種原因未運行至正常終止點就夭折了
- 事務(wù)撤銷(UNDO):事務(wù)故障意味著事務(wù)沒有達到預(yù)期的終點(COMMIT或者顯式的ROLLBACK),因此,數(shù)據(jù)庫可能處于不正確狀態(tài)。恢復(fù)程序要在不影響其他事務(wù)運行的情況下,強行回滾該事務(wù),即撤銷該事務(wù)已經(jīng)作出的任何對數(shù)據(jù)庫的修改,使得該事務(wù)好像根本沒有啟動一樣
- 系統(tǒng)故障:是指造成系統(tǒng)停止運轉(zhuǎn)的任何事件,使得系統(tǒng)需要重新啟動
- 數(shù)據(jù)轉(zhuǎn)儲:指DBA定期手動或者通過設(shè)置使DBMS定期自動將整個數(shù)據(jù)庫復(fù)制到存儲介質(zhì)上保存起來的過程。這些備用的數(shù)據(jù)稱之為后備副本。當(dāng)數(shù)據(jù)庫早到破壞后可以將后備副本重新裝入,但是重裝后的副本只能將數(shù)據(jù)庫恢復(fù)到轉(zhuǎn)儲時的狀態(tài),要想恢復(fù)到故障發(fā)生時的狀態(tài),必須重新運行自轉(zhuǎn)儲以后的所有更新事物。因此,轉(zhuǎn)儲常和日志配合使用
- 靜態(tài)轉(zhuǎn)儲:是在系統(tǒng)中無運行事務(wù)時進行的轉(zhuǎn)儲操作。即轉(zhuǎn)儲操作開始的時刻數(shù)據(jù)庫處于一致性狀態(tài),而轉(zhuǎn)儲期間不允許(或不存在)對數(shù)據(jù)庫的任何存取、修改活動。顯然,靜態(tài)轉(zhuǎn)儲得到的一定是一個數(shù)據(jù)一致性的副本
- 動態(tài)轉(zhuǎn)儲:是指轉(zhuǎn)儲期間允許對數(shù)據(jù)庫進行存取或修改,也即轉(zhuǎn)儲和用戶事物可以并發(fā)執(zhí)行
- 數(shù)據(jù)庫鏡像:自動地將整個數(shù)據(jù)庫或其中關(guān)鍵數(shù)據(jù)復(fù)制到另一個磁盤上。需要注意,在實際應(yīng)用中,只對關(guān)鍵數(shù)據(jù)和日志文件進行鏡像,而不是對整個數(shù)據(jù)庫進行鏡像
簡答題
應(yīng)用題
【答案】
事務(wù)的概念
四個特性
恢復(fù)技術(shù)可以保證事務(wù)的原子性和持久性
【答案】
事務(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
【答案】
如果先寫了數(shù)據(jù)庫修改,而在運行記錄中沒有登記下這個修改,則以后就無法恢復(fù)這個修改了。如果先寫日志,但沒有修改數(shù)據(jù)庫,按日志文件恢復(fù)時只不過是多執(zhí)行一次不必要的UNDO操作,并不會影響數(shù)據(jù)庫的正確性。所以為了安全,一定要先寫日志文件,即首先把日志記錄寫到日志文件中,然后寫數(shù)據(jù)庫的修改
原則
【答案】
(1)T1T_{1}T1?、T3T_{3}T3?重做;T2T_{2}T2?、T4T_{4}T4?回滾
(2)T1T_{1}T1?重做;T2T_{2}T2?、T3T_{3}T3?回滾
(3)T1T_{1}T1?重做;T2T_{2}T2?、T3T_{3}T3?回滾
(4)T1T_{1}T1?重做;T2T_{2}T2?回滾
【答案】
(1)A=8、B=7、C=11
(2)A=10、B=0、C=11
(3)A=10、B=0、C=11
(4)A=10、B=0、C=11
(5)A=0、B=0、C=0
【答案】
【答案】
【答案】
點擊跳轉(zhuǎn)
【答案】
總結(jié)
以上是生活随笔為你收集整理的(数据库系统概论|王珊)第十章数据库恢复技术:习题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows下常用运行命令
- 下一篇: 实现SELECT的全选,反选,AB选的J