1. 程式人生 > 其它 >資料庫小整理

資料庫小整理

技術標籤:資料庫

主要根據自己不會的進行查缺補漏
沒有記錄需要理解的程式碼以及計算題,主要是背誦內容

文章目錄

第一章

  • 資料庫中的資料按一定的資料模型組織、描述和儲存,具有較小的冗餘度、較高的資料獨立性和易擴充套件性,並可為各種使用者共享
  • 資料庫管理系統的功能:資料定義功能,資料組織、儲存和管理,資料操縱功能,資料庫的事務管理和執行管理,資料庫的建立和維護功能,其他功能
  • 資料庫系統:由資料庫、資料庫管理系統(及其應用開發工具)、應用程式和資料庫管理員組成的儲存、管理、處理和維護資料的系統
  • 從檔案系統到資料庫系統標誌著資料管理技術的飛躍
  • 資料庫實現整體資料的結構化,這是資料庫的主要特徵之一,也是資料庫系統與檔案系統的本質區別
  • 資料共享:減少冗餘度、節約儲存空間,避免資料之間的不相容性與不一致性
  • 資料模型:資料庫中用來實現對現實世界進行抽象的工具。
  • 資料模型包括
    • 資料結構:描述資料庫的組成物件以及物件之間的聯絡
    • 資料操作:對資料庫中各種物件的例項允許執行的操作的集合,包括操作及有關的操作規則
    • 資料的完整性約束條件:一組完整性規則
  • 概念模型是現實世界到及其實際的一箇中間層次
  • 資料獨立性包括
    • 物理獨立性:使用者的應用程式與資料庫中資料的物理儲存結構是相互獨立的
    • 邏輯獨立性:使用者的應用程式與資料庫中資料的邏輯結構是相互獨立的
  • 資料的安全性:保護資料以防止不合法使用造成的資料洩密和破壞
  • 資料的完整性:正確性、有效性、相容性
  • 實體:客觀存在並可相互區別的事物
  • 屬性:實體所具有的某一特性
  • 碼:唯一標識實體的屬性集
  • 資料與程式的物理獨立性:資料庫的儲存結構改變了,由資料庫管理員對模式/內模式映像作相應改變,可以使模式保持不變,從而應用程式也不必改變。
  • 資料與程式的邏輯獨立性:當資料的邏輯結構即模式改變時,由資料庫管理員對各個外模式/模式的映像作相應改變,可以使外模式保持不變,從而應用程式不必修改
  • 基本層次聯絡:兩個記錄以及它們之間的一對多的聯絡
  • 資料庫管理員職責:
    • 決定資料庫中的資訊內容和結構
    • 決定資料庫的儲存結構和存取策略
    • 定義資料的安全性要求和完整性約束條件
    • 監控資料庫的使用和執行
    • 資料庫的改進和重組、重構
  • 資料庫操作指DB的檢索和更新兩大類操作
  • 資料庫全部資料的整體邏輯結構的描述,稱為模式
  • 關係操作的特點是集合操作
  • 關係模式的定義是由關係名和屬性名組成

第二章

  • 關係的三種類型:基本關係、查詢表、視圖表
  • 關係的兩個不變性:實體完整性和參照完整性
  • 參照完整性規則:若屬性F是基本關係R的外碼,它與基本關係S的主碼相對應,則對於R中每個元組在F上值需為:
    • 空值(F中每個屬性均空值)
    • 等於S中某個元組的主碼值
  • 關係模型的三個組成部分:關係資料結構、關係操作集合、關係完整性約束

第三章

  • 模式定義:CREATE SCHEMA <模式名> AUTHORIZATION <使用者名稱>
  • 修改:ALTER TABLE <表名> ADD/DROP
  • 相關子查詢和非相關子查詢
    • 非相關子查詢是獨立於外部查詢的子查詢,子查詢總共執行一次,執行完畢後將值傳遞給外部查詢。
    • 相關子查詢的執行依賴於外部查詢的資料,外部查詢執行一行,子查詢就執行一次。
    • 因此非相關子查詢比相關子查詢效率高
  • 基本表:本身獨立存在的表,在SQL中一個關係就對應一個基本表
  • 檢視:從一個或幾個基本表匯出的表,是基本表或檢視產生的虛表
  • 檢視的優點:
    • 簡化使用者操作
    • 使使用者能以多種角度看待同一資料
    • 對重構資料庫提供了一定程度的邏輯獨立性
    • 對機密資料提供安全保護
    • 適當利用檢視可以更清晰地表達查詢

第四章

  • 資料庫的安全性:保護資料庫以防止不合法使用所造成的資料洩露、更改和破壞
  • 不安全因素
    • 非授權使用者對資料庫的惡意存取和破壞
    • 資料庫中重要或敏感的資料被洩露
    • 安全環境的脆弱性
  • 資料庫安全性的控制方法
    • 使用者身份鑑別
    • 存取許可權控制
    • 審計
    • 檢視機制
    • 資料加密
  • 安全準則建立行動:通用準則專案
  • 安全級別劃分指標:安全策略、責任、保證、檔案
  • 自主存取控制方法:定義各個使用者對不同資料物件的存取許可權。當用戶對資料庫訪問時,首先檢查使用者的存取許可權。防止不合法使用者對資料庫的存取
  • 強制存取控制方法:每一個數據物件被(強制地)標以一定的密級,每一個使用者也被(強制地)授予某一個級別的許可證。系統規定只有具有某一許可證級別的使用者才能存取某一密級的資料物件。
  • 使用者許可權組成兩個要素:資料庫物件和操作型別
  • GRANT REVOKE ALL PRIVILEGES
  • 敏感度標記級別:絕密TS、機密S、可信C、公開P
  • 強制存取機制中
    • 主體是系統活動實體,既包括DBMS所管理的實際使用者,也包括代表使用者的各程序
    • 客體是系統中的被動實體,是受主體操縱的,包括檔案、基本表、索引、檢視等
    • 主體的敏感度標記稱為許可證級別,客體的敏感度標記稱為密級

第五章

  • PRIMARY KEY
  • CONSTRAINT <完整性約束條件名> <完整性約束條件>
  • CONSTRAINT <名字> FOREIGN KEY (外碼) REFERENCES 表(主碼)
  • CREATE ASSERTION <斷言名> <CHECK子句>
  • 資料庫完整性:資料的正確性和相容性
  • 資料庫的完整性概念與資料庫的安全性概念的區別和聯絡
    • 前者是為了防止資料庫中存在不符合語義的資料,防止錯誤資訊的輸入和輸出,即所謂垃圾進垃圾出所造成的無效操作和錯誤結果
    • 後者是保護資料庫防止惡意的破壞和非法的存取。
    • 安全性措施防範物件是非法使用者和非法操作,完整性措施的防範物件是不合語義的資料
  • 為維護資料庫完整性,資料庫管理系統必須能夠實現如下功能:
    • 定義功能:提供定義完整性約束條件的機制
    • 檢查功能:提供完整性檢查的方法
    • 違約處理功能:進行違約處理
CREATE TRIGGER <觸發器名> 
BEFORE|AFTER <觸發事件(SELECT,UPDATE)> ON <表名>
REFERENCING NEW|OLD ROW AS <變數>
FOR EACH {ROW|STATEMENT}
BEGIN
	……
END 

第六章

  • 一個好的模式應當不會發生插入異常、刪除異常、更新異常,資料冗餘應儘可能少
  • 最小函式依賴集滿足
    • 右部單屬性
    • 不存在冗餘函式依賴
    • 不存在冗餘決定屬性
        1NF
消除非主屬性對碼的部分函式依賴
        2NF
消除非主屬性對碼的傳遞函式依賴
        3NF
消除主屬性對碼的部分和傳遞函式依賴
        BCNF
消除非平凡且非函式依賴的多值依賴
        4NF

第七章

  • 資料庫設計基本步驟
    • 需求分析
    • 概念模型設計階段(概念模型)(E-R圖)
    • 邏輯結構設計階段(某種資料模型)(在基本表基礎上
    • 建立必要的檢視,形成資料的外模式)
    • 物理結構設計階段(物理儲存安排)(建立索引,形成資料庫內模式)
    • 資料庫實施階段
    • 資料庫執行和維護階段
  • 資料字典:資料庫中關於資料的描述而不是資料本身。 在需求分析階段建立,在資料庫設計過程中不斷修改、充實和完善。
  • 內容
    • 資料項
    • 資料結構
    • 資料流
    • 資料儲存
    • 處理過程
  • ER圖衝突
    • 屬性衝突
    • 命名衝突
    • 結構衝突

第九章

  • 查詢優化:可分為代數優化(邏輯優化)和物理優化(非代數優化)
  • 查詢處理步驟:查詢分析、查詢檢查、查詢優化、查詢執行

第十章

  • 恢復的基本原理:冗餘
  • 建立冗餘資料最常用的技術:資料轉儲和登記日誌檔案
  • 日誌檔案:用來記錄事務對資料庫的更新操作的檔案
  • 設定日誌檔案的目的:進行事務故障恢復、系統故障恢復,協助後備副本進行介質故障恢復
  • 為保證資料庫是可恢復的,登記日誌檔案必須遵循兩條原則
    • 登記的次序嚴格按併發事務執行的時間次序
    • 必須先寫日誌檔案,後寫資料庫

第十一章

  • 事務是併發控制的基本單位
  • 為保證事務的隔離性和一致性,資料庫管理系統需要對併發操作進行正確排程
  • 併發操作帶來的不一致性包括丟失修改、不可重複讀和讀“髒”資料
  • 併發控制的主要技術有封鎖、時間戳、樂觀控制法和多版本併發控制
  • 封鎖協議
    • 一級封鎖協議:事務T在修改資料R之前必須先對其加X鎖,直到事務結束才釋放
    • 二級封鎖協議:在一級封鎖協議基礎上增加,事務T在讀取資料R之前必須先對其加S鎖,讀完後即可釋放S鎖
    • 三級封鎖協議:在一級封鎖協議基礎上增加,事務T在讀取資料R之前必須先對其加S鎖,直到事務結束才釋放
  • 預防死鎖:一次封鎖法,順序封鎖法
  • 診斷死鎖:超時法,事務等待圖法
  • 可序列化排程:多個事務併發執行是正確的,當且僅當其結果與按某一次序序列地執行這些事務時的結果相同
  • 正確排程:可序列化排程
  • 兩段鎖協議
    • 事務必須分兩個階段對資料項加鎖和解鎖。
    • 在對任何資料進行讀、寫之前,首先要申請對該資料封鎖
    • 在釋放一個封鎖後,事務不再申請和獲得任何其他鎖
    • 第一階段是獲得封鎖(擴充套件階段),第二階段是釋放封鎖(收縮階段)