「每天五分鐘,備戰架構師-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)。

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

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

體系機構

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

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

並行數據庫系統

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

數據倉庫

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

數據倉庫的結構包括:

數據源數據的存儲與管理OLAP服務器前端工具,主要包括各種報表工具、查詢工具、數據分析工具、數據挖掘工具等