「每天五分鐘,備戰架構師-10」資料庫系統

事務管理

事務是數據庫系統運行的基本工作單位,相當於操作系統中的進程,事務具有ACID特性。從用戶的角度來看,事務中的操作要麼都做,要麼都不做。

  • 原子性 Atomicity
  • 一致性 Consistency
  • 隔離性 Isolation,表示不能被其他事務干擾
  • 持久性 Durability,一旦提交改變就是永久性的

處理併發控制 Concurrency

多個用戶對同一數據進行併發操作時,如果沒有控制,可能會產生丟失更新、讀到過時的數據(不一致分析問題)、讀到髒數據(依賴於未提交更新的問題)的情況。併發控制的主要方法是採用封鎖技術,有兩種類型:排他型封鎖、共享型封鎖。

  • 排他型封鎖(簡稱X封鎖)。如果事務T對數據A實現了X封鎖,那麼只允許T讀取修改數據A,其他事務需等T解除X封鎖後,才能進行後續動作。
  • 共享型封鎖(簡稱S封鎖)。X封鎖要求太嚴,於是產生S封鎖。如果事務T對數據A實現了S封鎖,那麼允許事務T讀取數據A,但不能修改數據A,在所有S封鎖解前不允許任何事務

處理並行控制 Parallelism

並行控制主要通過封鎖協議來進行處理。

  • 一級封鎖協議。事務T在修改數據R之前必須先對其加X鎖,直到事務結束才釋放。
  • 二級封鎖協議。一級封鎖協議加上事務T在讀取數據R之前先對其加S鎖,讀完後即可釋放S鎖。
  • 三級封鎖協議。一級封鎖協議加上事務T在讀取R之前先對其加S鎖,直到事務結束才釋放。
  • 兩段鎖協議。所有事務必須分兩個階段對數據項加鎖和解鎖。

死鎖問題

採用封鎖方法可以防止數據不一致,但是會帶來死鎖問題。死鎖的避免一般有預防法和解除法。

故障與恢復

數據庫的故障主要分為4類:

  • 事務故障。事務未能正常終止被撤銷的情況。
  • 系統故障。事務以非正常方式終止的情況,此時內存信息丟失。
  • 介質故障。物理存儲介質的故障,可能性雖低,但破壞性大。
  • 計算機病毒。

針對不同的故障,可以採用不同的恢復策略:

  • 事務故障恢復。應對未完成事務進行撤銷,系統自動完成恢復。
  • 系統故障恢復。數據庫根據日誌,在重新啟動時對事務進行撤銷,對重做隊列事務進行重做。
  • 介質故障恢復需要依賴備份的副本,將數據庫恢復到最近一次備份時的狀態,會丟失數據。
  • 具有檢查點的恢復技術。
  • 大型數據庫系統,例如Oracle提供了安全機制保證,但是小型的數據庫並非都有相應的功能,有時需要人工輔助,保證數據庫的安全和恢復。

備份與恢復

為應對數據庫損壞的可能性,需要指定合適的備份和恢復計劃。備份計劃制定的原則包括:

  • 保證數據丟失得儘量少或完全不丟失
  • 備份和恢復時間儘量短,保證系統最大得可用性

根據備份內容,分為物理備份和邏輯備份。根據效率,分為完全、增量、累積三種備份方式。

分佈式數據庫

概念

分佈式數據庫系統是相對於集中系統而言的,確切的含義是通過數據庫技術與網絡技術相結合,由一組數據組成,這組數據分佈在計算機網絡的不同計算機上,網絡中的每個節點具有獨立處理的能力,成為場地自治,它可以執行局部應用,同時,每個節點也能通過網絡通信子系統執行全局應用。

負責分佈式數據庫的建立、查詢、更新、複製、管理和維護的軟件,稱為分佈式數據庫管理系統(Distributed Database Management System,DDBMS)。

分佈式數據庫系統具有以下幾個特點:

  1. 數據的分佈性
  2. 統一性。表現在數據邏輯上的統一性和數據管理上的統一性。
  3. 透明性,用戶無須關心數據存放的位置。

體系機構

分佈式數據庫系統的模式有6個層次:

  1. 全局外模式,是全局應用的用戶視圖
  2. 全局概念模式,定義分佈式數據庫中數據的整體邏輯結構
  3. 分片模式
  4. 分佈模式
  5. 局部概念模式
  6. 局部內模式,類似於集中式數據庫系統中的內模式

並行數據庫系統

對比互聯網領域的技術發展路徑來看,目前基本上看不到並行數據庫系統使用的場景。教材中提到的Sequent系統在網上也是資料寥寥,建議可以直接略過這一節了。但是後面提到的並行處理技術,可能和目前的大數據處理、人工智能平臺有結合點,感興趣的可以自己研究下。

數據倉庫

數據倉庫的概念:Data Warehouse 是一個面向主題的、集成的、相對穩定的、且隨時間變化的數據集合,用於支持管理決策。

數據倉庫的結構包括:

  • 數據源
  • 數據的存儲與管理
  • OLAP服務器
  • 前端工具,主要包括各種報表工具、查詢工具、數據分析工具、數據挖掘工具等
「每天五分鐘,備戰架構師-10」數據庫系統


分享到:


相關文章: