1. 程式人生 > >易學筆記-系統分析師考試-第5章 資料庫系統/5.4 資料庫控制功能/5.4.1併發控制

易學筆記-系統分析師考試-第5章 資料庫系統/5.4 資料庫控制功能/5.4.1併發控制

  • 併發控制
  1. 概念:多個事務對同一個資料來源的操作稱為併發
  2. 事務
    1. 概念:是DBMS執行的最基本工作單位,使用者定義的一個數據庫操作序列,這些操作序列要麼不做,要麼全部做
    2. 特徵(ACID)
      1. 原子性:保證事務包含的一組資料庫操作是不可分割的
      2. 一致性:保證資料庫從一個狀態到另外一個狀態的變化
      3. 隔離性:一個事務的執行不能被另外一個事務干擾,要求多個事務併發進行
      4. 永續性:事務一旦提交,那麼改變將是永久的
  3. 事務不一致的問題
    1. 修改丟失
      1. 概念:事務A與事務B修改同一個資料,事務B的提交破壞了事務A提交的結果
      2. 舉例:
    2. 讀“髒資料”
      1. 概念:事務A修改某一個數據並提交,事務B讀取A提交的資料,由於某種原因A事務被撤銷,A原來修改的值恢復到原值,但是B讀到的值還是A修改後的值
      2. 舉例:
    3. 不可重複讀
      1. 概念:指的是事務A讀取資料後,事務B執行了更新操作,但是事務A使用的值還是原來的值,操作資料的不一致
      2. 舉例
  4. 封鎖協議
    1. 封鎖類別
      1. X封鎖(排他型封鎖 )
        1. 事務T對資料物件A進行了X封鎖,那麼其它事務就不能對資料A進行讀取和修改資料,要等事務T解鎖之後才能對A進行操作
      2. S封鎖
        1. 事務T對資料物件A進行了S封鎖,那麼允許事務T讀取資料A的值,但是不允許事務T修改資料A的值,要等事務T解鎖之後才能對A進行操作
        2. 在S封鎖解鎖前,不能對資料A進行X封鎖
    2. 封鎖協議
      1. 一級封鎖協議
        1. 概念:事物T在對A修改之前進行X封鎖,直到事物結束才釋放
        2. 優點:可以防止修改丟失,保證事務T可恢復
        3. 缺點:不能保證可重複讀和讀“髒資料”
      2. 二級封鎖協議
        1. 概念:在一級封鎖基礎上,事物T在對A讀之前進行S封鎖,讀完後釋放S鎖
        2. 優點:可以防止修改丟失,防止讀髒資料
        3. 缺點:不能保證可重複讀
      3. 三級封鎖協議
        1. 概念:在一級封鎖基礎上,事物T在對A讀之前進行S封鎖,直到事務結束才釋放
        2. 優點:可以防止修改丟失,防止讀髒資料、保證重複讀
      4. 兩段鎖協議
        1. 擴充套件階段
          1. 任何時候對資料進行讀、寫之前先進行加鎖操作
        2. 收縮階段
          1. 一旦釋放了一個封鎖,那就不能再獲取任何封鎖
        3. 優點:對事務的任何併發排程策略都是可序列的
        4. 缺點:可能引起死鎖
      5. 封鎖粒度
        1. 概念:指的是封鎖物件的大小
        2. 封鎖粒度包括:
          1. 屬性值
          2. 屬性值集
          3. 元組
          4. 關係
          5. 索引
          6. 整個資料庫
          7. 物理頁
        3. 評價:
          1. 封鎖粒度過小,併發性高,但是開銷大;
          2. 封鎖粒度大,併發性小,但開銷小
  5. 死鎖問題
    1. 概念:指的是某一個事務T對A申請封鎖後,但又需要等待同樣需要資料A的其它事務解鎖,這樣引起的無休止的等待稱為死鎖
    2. 資料庫的死鎖類似於作業系統的死鎖
  • 效能優化
  • 資料庫完整性
  • 資料庫安全性
  • 資料庫備份和恢復