2013年自考《數據庫原理》串講-數據庫保護


第六章 數據庫保護
本章不是重點章節,主要內容包括數據庫保護的四種措施,數據庫的恢復、并發控制、完整性和安全性。了解這些內容及其在SQL語言中的實現方式。
一、數據庫的恢復( 領會 )
1、 事務的概念 : 事務是一個操作序列 .這些操作要么什么都做,要么都不做,是一個 不可分割 的工作單位。事務以BEGIN TRANSACTION語句開始,以COMMIT(提交)語句或ROLLBACK(回退或撤消)語句結束。
一個程序的執行可通過若干事務的執行序列來完成。
2、 事務的性質 : 原子性 (atomicity)、 一致性 (consistency)、 隔離性 (isolation)和 持久性 (durability)。稱為事務的ACID性質。
通過教材的例子來理解事務的性質 .
3、故障類型和恢復方法
4、恢復的基本原則和實現方法
恢復的基本原則 很簡單,就是“ 冗余 ”,即數據的重復存儲 .
實現方法有:
(1)定期對數據庫進行 復制 或轉儲(dump)。注意幾個概念:靜態轉儲、動態轉儲、海量轉儲和增量轉儲。
(2)建立“ 日志 ”文件。
(3) 恢復 .發生故障時有兩種處理方法,如數據庫已破壞,則由DBA裝入最近備份的數據庫然后利用“日志文件”執行REDO(重做)操作。如數據庫未被損壞,但某些數據不可靠,則系統會自動執行UNDO操作恢復數據。
5、 運行記錄優先原則 (即 先記錄,再更新,先記完,再結束 )
(1)至少要等相應的運行記錄已經寫入“日志”文件后,才能允許事務往數據庫在寫數據。
(2)直到事務的所有運行記錄都已寫入運行“日志”文件后,才能允許事務完成“END TRANSACTION”處理。
6、SQL中的恢復操作,可上機觀察。
二、數據庫的并發控制( 領會 )
1、并發控制帶來的三類問題:
(1)丟失更新的問題
(2)不一致分析問題
(3)“臟數據”的讀出。(在數據庫技術中,未提交的隨后又被撤消的數據為“臟數據”。)
2、為解決并發控制帶來的問題,通常要采用 封鎖 (locking)技術,常用的封鎖有:排它型封鎖( X封鎖) 和共享型封鎖( S封鎖 )兩種。
X封鎖的規則稱為 PX協議 ,其內容為:任何企圖更新記錄R的事務必須先執行LOCK X(R)操作,以獲得對該記錄進行尋址的能力,并對它取得X封鎖。如果未獲得X封鎖,那么這個事務進入等待狀態,一直到獲準X封鎖,事務繼續進行。
簡記為: 先鎖X,再執行,取不到,就等待。
PXC協議 :它由PX協議及一條規則“X封鎖必須保留到 事務終點 (COMMIT或ROLLBACK)”組成。
S封鎖的規則稱為 PS協議 :其內容為:任何要更新記錄R的事務必須先執行LOCK S(R)操作,以獲得對該記錄尋址的能力并對它取得S封鎖。如果未獲準S封鎖,那么這個事務進入等待狀態,一直到獲準S封鎖,事務才繼續進行下去。當事務獲準對記錄R的要封鎖后,在記錄R修改前必須把S封鎖升級為X封鎖。
簡記為: 先鎖S,再執行,鎖不到,就等待,若要修改則升X .
PSC協議:由PS協議和“將S封鎖保持到事務終點”組成。
3、 活鎖 :是指某個事務永遠處于等待狀態,得不到執行的現象。避免活鎖的方法是采用“先來先服務”策略。
死鎖 :有兩個或以上的事務處于等待狀態,每個事務都在等待另一個事務解除封鎖,它才能繼續執行下去,結果任何一個事務都無法執行,這種現象就是死鎖。
解除死鎖的方法是由DBMS中的“死鎖測試程序”來檢查,如發現死鎖則犧牲一個事務,并做回退操作,解除它的所有封鎖。
4、 兩段封鎖法 ( 識記 )
兩段封鎖協議規定所有事務都要遵守下列規則:(1)在對任何數據進行讀寫操作之前,事務首先要獲得對該數據的封鎖;(2)在釋放一個封鎖之后,事務不再獲得任何其他封鎖。
針對課本的例子來理解。
三、數據庫的完整性( 領會 )
1、數據庫的 完整性 是指數據的 正確性和相容性 .數據庫中數據發生錯誤,往往是由非法更新引起的。
數據庫完整性是通過DBMS的 完整性子系統 實現的,它有兩個功能:
(1)監督事務的執行,并測試是否違反完整性規則。
(2)如有違反,則采取恰當的操作,如拒絕、報告違反情況,改正錯誤等方法進行處理。
數據庫完整性子系統 是根據“ 完整性規則集 ” 工作的,這些完整性規則包括: 域 完整性規則、 域聯系 的規則、 關系完整性 規則(一個比一個大)
2、SQL中的完整性約束
在SQL中,表達完整性約束的規則有 主鍵約束 、 外鍵約束 、 屬性值約束 和 全局約束等 多種形式。
主鍵約束:可用主鍵子句或主鍵短語 PRIMARY KEY 來定義。
外鍵約束:可用外鍵子句來定義如 FOREIGN KEY (S#) REFERNCE S(S#)
屬性值約束:包括非空值約束( NOT NULL )和基于屬性的檢查子句( CHECK ) 及域約束子句 如 CREAT DOMAIN AGE SMALLINT CHECK (value>10)
全局約束:包括基于元組的檢查子句( CHECK )和斷言( CREATE ASSERTION 斷言名 CHECK 條件)。
四、數據庫的安全性( 識記 )
數據庫的安全性是指保護數據庫防止不合法的使用,以免數據的泄漏、非法更改和破壞。
1、安全性級別:包括 環境級 、 職員級 、 OS級 、 網絡級 和 數據庫系統級 .
2、用戶或應用程序 使用數據庫的方式稱為權限 ,權限的種類:
訪問數據權限: 讀、插入、修改、刪除 四種
修改數據庫模式權限: 索引 (創建或刪除索引)、 資源 (創建新關系)、 修改 (增刪關系結構屬性)和 撤消權限 (撤消關系)
3、權限的轉授與回收:畫一個 權限圖 ,只要根結點到用戶結點之間存在一條 路徑 ,那么它就有權限,回收時就是刪去某些路徑。
4、SQL中的安全性控制
SQL中有兩個安全機制:一是 視圖機制 、二是 授權子系統 .
視圖是從一個或幾個 基本表 導出的表,是 虛表 ,視圖定義后可以像基本表一樣用于查詢和刪除,但其 更新操作(增、刪、改) 會受到限制。
視圖機制 把用戶可以使用的數據定義在視圖中,這樣用戶就不能使用視圖定義外的其他數據,從而保證了數據庫的安全性。視圖機制使系統具有 三個優點 : 數據安全性 、 數據獨立性 和 操作簡便性 .
授權機制 可以保證用戶只能進行其權限范圍內的操作。
6、數據加密可更好地保證數據庫中數據的安全性,采用加密算法給把源文變為密文來實現。常用的加密算法有“ 替換方法 ”和 明鍵加密法 .
同時,為保證數據庫的安全,也應注意自然環境的安全性。
最新資訊
- 倒計時!2025年10月自考考前沖刺,這些資料必須有2025-09-20
- 重點收藏!2025年10月自考《中國近代史綱要》歷史事件時間點梳理2025-09-19
- 考生必看!2025年10月自考《中國近代史綱要》必背考點2025-09-19
- 重點收藏!2025年10月自考《習概(15040)》歷年高頻簡答題匯總2025-09-19
- 2025年10月自考報名全結束!后續備考要點、資源合集、考試須知一文看全2025-09-18
- 江蘇2025年10月自考時間敲定!10月25-26日,考前真題資源整理速領2025-09-18
- 10月25日開考!2025年10月自考《習概》全書高頻考點10頁紙更新速領2025-09-17
- 最后一月!2025年10月自考如何復習高效提分?附高頻考點整理2025-09-15
- 2025年10月自考教材目錄更新!這些科目已調整,附購買指南2025-09-11
- 2025年10月自考備考資料包上線!真題匯總+必背10頁紙+高頻100題2025-09-05