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

正文內(nèi)容

第6章計(jì)算機(jī)安全技術(shù)(編輯修改稿)

2025-02-07 16:23 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 相應(yīng)的辦法進(jìn)行管理和控制。 并發(fā)控制的主要方法是封鎖技術(shù)( Locking)。 當(dāng)事務(wù) 1修改數(shù)據(jù)時(shí),將數(shù)據(jù)封鎖,這樣在事務(wù) 1讀取和修改數(shù)據(jù)時(shí),其它的事務(wù)就不能對(duì)數(shù)據(jù)進(jìn)行讀取和修改,直到事務(wù) 1解除封鎖。 基本的封鎖類型叫做排它型鎖,又稱 X封鎖。如果事務(wù) T向系統(tǒng)申請(qǐng)得到數(shù)據(jù) A的 X封鎖權(quán),則只允許事務(wù) T對(duì)數(shù)據(jù) A進(jìn)行讀取和修改,其他一切事務(wù)對(duì)數(shù)據(jù) A的封鎖申請(qǐng)只能到事務(wù) T將數(shù)據(jù)修改完畢釋放封鎖才能成功,其間狀態(tài)只能是等待狀態(tài)。 利用 X封鎖可以解決表 、 、 。見表 : (參見教材 204頁) 死鎖、活鎖和可串行化 死鎖與活鎖 封鎖的控制方法有可能會(huì)引起死鎖和活鎖的問題。 某個(gè)事務(wù)永遠(yuǎn)處于等待狀態(tài)稱為活鎖,例如:事務(wù)1操作數(shù)據(jù) A時(shí)的請(qǐng)求封鎖后,事務(wù) 2和事務(wù) 3操作數(shù)據(jù) A的請(qǐng)求處于等待狀態(tài)。當(dāng)事務(wù) 1完成之時(shí)事務(wù)首先滿足了事務(wù) 3的請(qǐng)求,事務(wù) 3操作過程中,事務(wù) 4進(jìn)行請(qǐng)求,于是事務(wù) 3完成之后,封鎖權(quán)交給事務(wù) 4…… 所以事務(wù) 2永遠(yuǎn)處于等待狀態(tài),這叫做活鎖。 基本的封鎖類型叫做排它型鎖,又稱 X封鎖。如果事務(wù) T向系統(tǒng)申請(qǐng)得到數(shù)據(jù) A的 X封鎖權(quán),則只允許事務(wù) T對(duì)數(shù)據(jù) A進(jìn)行讀取和修改,其他一切事務(wù)對(duì)數(shù)據(jù) A的封鎖申阿解決活鎖的最常見方法是對(duì)事務(wù)進(jìn)行排隊(duì),按“先入先出”的原則進(jìn)行調(diào)度。 兩個(gè)或兩個(gè)以上的事務(wù)永遠(yuǎn)無法結(jié)束,彼此都在等待對(duì)方解除封鎖,結(jié)果造成事務(wù)永遠(yuǎn)等待,這種封鎖叫做死鎖。舉例過程如表 。 數(shù)據(jù)庫解決死鎖問題的主要方法有以下幾種: (1) 要求每個(gè)事務(wù)一次就將所有要使用的數(shù)據(jù)全部加鎖,否則就不能執(zhí)行。如上例中,事務(wù) 1將數(shù)據(jù) A、 B一次全部加鎖,則當(dāng)事務(wù) 1執(zhí)行時(shí),事務(wù)2等待,這樣就不會(huì)發(fā)生死鎖。 (3) 不預(yù)防死鎖的發(fā)生,而是讓系統(tǒng)用某種方法判斷當(dāng)前系統(tǒng)中是否有死鎖現(xiàn)象。如果發(fā)生死鎖再設(shè)法解除,使事務(wù)繼續(xù)運(yùn)行。這種方法一般以某個(gè)事務(wù)作為犧牲品,把它的封鎖撤消,恢復(fù)到初始狀態(tài)。它所釋放出來的資源就可以分配給其它的事務(wù)了,由此便可解除死鎖現(xiàn)象。 可串行化 并行事務(wù)執(zhí)行時(shí),系統(tǒng)的調(diào)度是隨機(jī)的,因此,需要一個(gè)尺度去判斷事務(wù)執(zhí)行的正確性。當(dāng)并行操作的結(jié)果與串行操作的結(jié)果相同時(shí),我們則認(rèn)為這個(gè)并行事務(wù)處理結(jié)果是正確的。這個(gè)并行操作調(diào)度稱為可串行化調(diào)度。 對(duì)于表 ,先執(zhí)行操作員 1的事務(wù)和先執(zhí)行操作員2的事務(wù)所得到的結(jié)果是不同的,前者的執(zhí)行結(jié)果為 400,后者的執(zhí)行結(jié)果為 100,這種事務(wù)按先后順序一個(gè)一個(gè)的執(zhí)行稱為串行操作。對(duì)于表,因?yàn)樗鼈兊母鱾€(gè)事務(wù)按分時(shí)的方法同時(shí)進(jìn)行處理的。表 執(zhí)行結(jié)果與先操作員 1后操作員 2的操作結(jié)果是一致的,則我們認(rèn)為這個(gè)并行操作是正確的。 可串行化是并行事務(wù)正確性的準(zhǔn)則。這個(gè)準(zhǔn)則規(guī)定,一個(gè)給定的交叉調(diào)度,當(dāng)且僅當(dāng)它是可串行化的,才認(rèn)為是正確的。 時(shí)標(biāo)技術(shù) 時(shí)標(biāo)技術(shù)是避免因出現(xiàn)數(shù)據(jù)不一致而造成的破壞數(shù)據(jù)庫的完整性的另外一種方法。由于它不是采用封鎖的方法,所以不會(huì)產(chǎn)生死鎖的問題。 在事務(wù)運(yùn)行時(shí),它的啟動(dòng)時(shí)間就是事務(wù)的“時(shí)標(biāo)”。如果兩個(gè)事務(wù) T T2的時(shí)標(biāo)分別為 t1與 t2, 若t1t2, 則稱 T1是年輕的事務(wù), T2是年長的事務(wù)。 時(shí)標(biāo)和封鎖技術(shù)之間的基本區(qū)別是:封鎖是使一組事務(wù)的并發(fā)執(zhí)行(即交叉執(zhí)行)同步,使它等價(jià)于這些事務(wù)的某一串行操作;時(shí)標(biāo)法也是使一組事務(wù)的交叉執(zhí)行同步,但是它等價(jià)于這些事務(wù)的一個(gè)特定的串行執(zhí)行,即由時(shí)標(biāo)的時(shí)序所確定的一個(gè)執(zhí)行。如果發(fā)生沖突,則通過撤消并重新啟動(dòng)一個(gè)事務(wù)解決。如果事務(wù)重新啟動(dòng),則賦予新的時(shí)標(biāo)。 在數(shù)據(jù)庫所有的物理更新推遲到 COMMIT的時(shí)候,未提交的那些修改實(shí)際上根本沒有建立。對(duì)于給定事務(wù),如果某物理更新由于某理由而不能完成,則該事務(wù)的物理更新全都不能完成,事務(wù)就被賦予新的時(shí)標(biāo)并重新啟動(dòng)。 這樣,如果一個(gè)事務(wù)要求查看被較年輕事務(wù)更新了的記錄,或者,如果一個(gè)事務(wù)要求更新被較年輕的事務(wù)查看過或更新過的記錄,就會(huì)發(fā)生沖突。這類沖突是通過重新啟動(dòng)發(fā)出請(qǐng)求的事務(wù)來解決的。由于物理更新決不在 COMMIT之前就寫外存,因此事務(wù)重啟動(dòng),不需要任何回退( ROLLBACK)。 如果若干事務(wù)訪問同一個(gè)數(shù)據(jù)庫記錄 R, 那么系統(tǒng)必須對(duì) R保持兩個(gè)同步值: FMAX( 成功執(zhí)行了一個(gè)“ FIND R”操作的最年輕的事務(wù)的時(shí)標(biāo))和UMAX( 成功地執(zhí)行了一個(gè)“ UPD R”操作的最年輕的事務(wù)的時(shí)標(biāo))。設(shè) T是企圖既要“ FIND R”又要“ UPD R”的一個(gè)事務(wù), t是 T的時(shí)標(biāo)。那么時(shí)間標(biāo)志法并發(fā)控制技術(shù)用下列規(guī)則定義: FIND R: if t=UMAX then /*接受 FIND操作 */ FMAX: =MAX( t, FMAX) 。 else /*發(fā)生沖突 */ restart T。 UPD R: if t=FMAX and t=UMAX then/*接受 UPD操作 */ UMAX : =t。 else/*發(fā)生沖突 */ restart T。 這里“ restart T”表示事務(wù) T重新啟動(dòng),并賦予新的時(shí)標(biāo)。 例如,對(duì)于表 ,假定操作員 A1的事務(wù)( t1) 比操作員 A2的事務(wù)( t2) 年輕,即 t1t2, 結(jié)果將在時(shí)間 t6使操作員 A2的事務(wù) T2的更新失敗, T2將重新啟動(dòng),這是表 解決方法。 數(shù)據(jù)庫的備份與恢復(fù) 備份對(duì)數(shù)據(jù)庫的安全來說是至關(guān)重要的。備份是指在某種介質(zhì)上,如磁帶、磁盤等,存儲(chǔ)數(shù)據(jù)庫或部分?jǐn)?shù)據(jù)庫的拷貝?;謴?fù)是指及時(shí)將數(shù)據(jù)庫返回到原來的狀態(tài)。 數(shù)據(jù)庫的備份 數(shù)據(jù)庫的備份大致有三種類型:冷備份、熱備份和邏輯備份。 冷備份 冷備份的思想是關(guān)閉數(shù)據(jù)庫,在沒有最終用戶訪問它的情況下將其備份。這是保持?jǐn)?shù)據(jù)完整性的最好辦法,但如果數(shù)據(jù)庫太大,無法在備份窗口中完成對(duì)它的備份,該方法就不適用了。 2. 熱備份 熱備份是在數(shù)據(jù)庫更新正在被寫入的數(shù)據(jù)時(shí)進(jìn)行。熱備份嚴(yán)重依賴日志文件。在進(jìn)行時(shí),日志文件將業(yè)務(wù)指令 堆起來”,而不真正將任何數(shù)據(jù)值寫入數(shù)據(jù)庫記錄。當(dāng)這些業(yè)務(wù)被堆起來時(shí),數(shù)據(jù)庫表并沒有被更新,因此數(shù)據(jù)庫被完整地備份。 該方法有一些明顯的缺點(diǎn)。首先,如果系統(tǒng)在進(jìn)行備份時(shí)崩潰,則堆在日志文件中的所有業(yè)務(wù)都會(huì)被丟失,因此也會(huì)造成數(shù)據(jù)的丟失。其次,它要求 DBA仔細(xì)地監(jiān)視系統(tǒng)資源,這樣日志文件就不會(huì)占滿所有的存儲(chǔ)空間而不得不停止接受業(yè)務(wù)。最后,日志文件本身在某種程度上也需要被備份以便重建數(shù)據(jù)。需要考慮另外的文件并使其與數(shù)據(jù)庫文件協(xié)調(diào)起來為備份增加了復(fù)雜度。 由于數(shù)據(jù)庫的大小和系統(tǒng)可用性的需求,沒有對(duì)其進(jìn)行備份的其他辦法。在有些情況下,如果日志文件能決定上次備份操作后哪些業(yè)務(wù)更改了哪些記錄的話,對(duì)數(shù)據(jù)庫進(jìn)行增量備份是可行的。 3. 邏輯備份 邏輯備份使用軟件技術(shù)從數(shù)據(jù)庫提取數(shù)據(jù)并將結(jié)果寫入一個(gè)輸出文件。該輸出文件不是一個(gè)數(shù)據(jù)庫表,但是表中的所有數(shù)據(jù)是一個(gè)映像。不能對(duì)此輸出文件進(jìn)行任何真正的數(shù)據(jù)庫操作。在大多數(shù)客戶機(jī) /服務(wù)器數(shù)據(jù)庫中,結(jié)構(gòu)化查詢語言( SQL, structured query language) 就是用來創(chuàng)建輸出文件的。該過程有些慢,對(duì)大型數(shù)據(jù)庫的全盤備份不實(shí)用。 盡管如此,當(dāng)僅想備份那些上次備份之后改變了的數(shù)據(jù),即增量備份時(shí),該方法非常好。 為了從輸出文件恢復(fù)數(shù)據(jù),必須生成逆 SQL語句。該過程也相當(dāng)耗時(shí),但工作的效果相當(dāng)好。 制定備份的策略 備份不是實(shí)時(shí)的,備份應(yīng)該什么時(shí)候做,用什么方式做,這主要取決于數(shù)據(jù)庫的不同規(guī)模和不同的用途。備份主要考慮以下的幾個(gè)因素: (1) 備份周期,是按月、周、天、還是小時(shí); (2) 使用冷備份還是熱備份; (3) 使用增量備份還是全部備份,或者兩者同時(shí)使用;(增量備份只備份自上次備份后的所有更新的數(shù)據(jù)。全部備份是完整備份數(shù)據(jù)庫中所有數(shù)據(jù)。) (4) 使用什么介質(zhì)進(jìn)行備份,備份到磁盤還是磁帶; (5) 是人工備份還是設(shè)計(jì)一個(gè)程序定期自動(dòng)備份; (6) 備份介質(zhì)的存放是否防竊、防磁、防火。 數(shù)據(jù)庫的恢復(fù) 恢復(fù)也稱為重載或重入,是指當(dāng)磁盤損壞或數(shù)據(jù)庫崩潰時(shí),通過轉(zhuǎn)儲(chǔ)或卸載的備份重新安裝數(shù)據(jù)庫的過程。 : (1) 周期性地(如 3天一次)對(duì)整個(gè)數(shù)據(jù)庫進(jìn)行轉(zhuǎn)儲(chǔ),把它復(fù)制到備份介質(zhì)中(如磁帶中),作為后備副本,以備恢復(fù)之用。 轉(zhuǎn)儲(chǔ)通常又可分為靜態(tài)轉(zhuǎn)儲(chǔ)和動(dòng)態(tài)轉(zhuǎn)儲(chǔ)。靜態(tài)轉(zhuǎn)儲(chǔ)是指轉(zhuǎn)儲(chǔ)期間不允許(或不存在)對(duì)數(shù)據(jù)庫進(jìn)行任何存取、修改活動(dòng)。而動(dòng)態(tài)轉(zhuǎn)儲(chǔ)是指在存儲(chǔ)期間允許對(duì)數(shù)據(jù)庫進(jìn)行存取或修改。 (2) 對(duì)數(shù)據(jù)庫的每次修改,都記下修改前后的值,寫入“運(yùn)行日志”數(shù)集中。它與后備副本結(jié)合,可有效地恢復(fù)數(shù)據(jù)庫。 日志文件是用來記錄對(duì)數(shù)據(jù)庫每一次更新活動(dòng)的文件。在動(dòng)態(tài)轉(zhuǎn)儲(chǔ)方式中必須建立日志文件,后備副本和日志文件綜合起來才能有效地恢復(fù)數(shù)據(jù)庫。在靜態(tài)轉(zhuǎn)儲(chǔ)方式中,也可以建立日志文件。當(dāng)數(shù)據(jù)庫毀壞后可重新裝入后備副本把數(shù)據(jù)庫恢復(fù)到轉(zhuǎn)儲(chǔ)結(jié)束時(shí)刻的正確狀態(tài)。 然后利用日志文件,把已完成的事務(wù)進(jìn)行重新處理,對(duì)故障發(fā)生時(shí)尚未完成的事務(wù)進(jìn)行撤消處理。這樣不必重新運(yùn)行那些已完成的事務(wù)程序就可把數(shù)據(jù)庫恢復(fù)到故障前某一時(shí)刻的正確狀態(tài),如圖 。 2. 利用日志文件恢復(fù)事務(wù) 下面介紹一下如何登記日志文件以及發(fā)生故障后如何利用日志文件恢復(fù)事務(wù)。 (1) 登記日志文件( logging) 事務(wù)運(yùn)行過程中,系統(tǒng)把事務(wù)開始、事務(wù)結(jié)束(包括 COMMIT和 ROLLBACK)、 以及對(duì)數(shù)據(jù)庫的插入、刪除、修改等每一個(gè)操作作為一個(gè)登記記錄( log記錄)存放到日志文件中。 圖 每個(gè)記錄包括的主要內(nèi)容有:執(zhí)行操作的事務(wù)標(biāo)識(shí),操作類型,更新前數(shù)據(jù)的舊值(對(duì)插入操作而言,此項(xiàng)為空值),更新后的新值(對(duì)刪除操作,此項(xiàng)為空值)。 登記的次序嚴(yán)格按并行事務(wù)執(zhí)行的時(shí)間次序。同時(shí)遵循“先寫日志文件”的規(guī)則。我們知道寫一個(gè)修改到數(shù)據(jù)庫和寫一個(gè)表示這個(gè)修改的 log記錄到日志文件中是兩個(gè)不同的操作。有可能在這兩個(gè)操作之間發(fā)生故障,即這兩個(gè)操作只完成了一個(gè)。如果先寫了數(shù)據(jù)庫修改,而在運(yùn)行記錄中沒有登記下這個(gè)修改,則以后就無法恢復(fù)這個(gè)修改了。因此為了安全應(yīng)該先寫日志文件,即首先把 log記錄寫到日志文件上,然后寫數(shù)據(jù)庫的修改。這就是“先寫日志文件”的原則。 (2) 事務(wù)恢復(fù) 利用日志文件恢復(fù)事務(wù)的過程分為二步: 第一步,從頭掃描日志文件,找出哪些事務(wù)在故障發(fā)生時(shí)已經(jīng)結(jié)束(這些事務(wù)有 BEGIN TRANSACTION和 COMMIT記錄),哪些事務(wù)尚未結(jié)束(這些事務(wù)只有 BEGIN TRANSACTION, 無 COMMIT記錄)。 第二步,對(duì)尚未結(jié)束的事務(wù)進(jìn)行撤消(也稱為UNDO) 處理,對(duì)已經(jīng)結(jié)束的事務(wù)進(jìn)行重做( REDO)。 進(jìn)行 UNDO處理的方法是:反向掃描日志文件,對(duì)每個(gè) UNDO事務(wù)的更新操作執(zhí)行反操作。 即對(duì)已經(jīng)插入的新記錄執(zhí)行刪除操作,對(duì)已刪除的記錄重新插入,對(duì)修改的數(shù)據(jù)恢復(fù)舊值(即用
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1