資料庫架構設計
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
author:skate
time:2013/06/04
資料庫架構設計
最近在考慮如何能設計好一個數據庫架構,下面是個人一點想法,歡迎高人指正
任何系統都不是獨立的,是一個生態系統,資料庫也是一樣的,要使其在其生命週期內更好的服務於業務,在設計之初就要考慮周全。作為資料庫設計者在大方向上最為關心的是如下幾點,也是要實現的目標:
資料庫架構
硬體選型
運營維護
以一個建立平臺系統為例,要經歷業務架構設計,資料架構設計,應用架構設計,系統架構設計,運營維護
業務架構:公司的業務模式,實現業務流程、功能等
資料架構:實現資料共享、一致性、完整性、準確性
資料定義:
資料標準:如靜態資料:元資料、業務物件;動態資料:訂單等
資料概念模型
實體和實體關係
屬性和域
業務規則(應用實現和資料庫實現)
並綜合考慮如下幾點
儲存哪些資料
資料來源
資料的約束規則及
資料怎樣被使用
使用者想看到哪些資料
資料與其他系統是否互動
資料訪問方式
資料邏輯模型:將概念模型轉化為某個具體的DBMS支援的模型,繪製E-R圖,在本階段要完成實體間 的關係;考慮屬性的域(值的型別,範圍,約束)
資料物理模型:將E-R圖轉化具體的RDBMS相應的表,如果系統比較大的話,還要考慮系統架構為邏輯模型設計一個合適的物理環境。
資料分佈:資料業務分佈與資料系統分佈(集中或分散式)
資料管理:資料模型與資料標準管理,資料分佈管理,資料質量管理,資料安全管理,資料生命週期、儲存維護管理
應用架構:從業務架構、資料架構考慮系統的功能邊界在哪,結合CRUD矩陣等分析方法考慮系統需
要劃分成多少個模組?如何封裝模組?才能保證模組本身高內聚和鬆耦合,每個模組之間
的介面和呼叫關係,採用什麼樣的技術框架。應用架構設計有幾個核心的原則:
開放-封閉原則:即對擴充套件開放,對修改封閉
高內聚低耦合原則:儘量將功能相關的內容組合在一起,封裝後對外提供介面。
封裝變化原則:越是可能發生變化的地方越要進行處理和封裝,將變化的影響限制在一定範圍之內。
平衡性原則:架構設計需要平衡多方面的要求,折衷考慮設計方案,比如效能和靈活性就常常是一對矛盾的要求。
系統架構:系統架構主要是關注的是非功能性要求的實現,如:
1.資料安全、容災需求
2.維護需求
3.擴充套件需求
4.高可用需求
5.資源、成本要求
6.保證每一模組高內聚低耦合
7.容量(效能和儲存)需求
8.併發訪問量,高併發訪問時的瓶頸,資料庫?應用伺服器?
9.海量資料儲存與訪問優化
10.資料庫分庫分表
11.軟體叢集/硬體叢集
12.系統過載保護
13.快取機制
14.容錯能力
15.與其他系統互動
16.分散式處理,資料一致性、完整性、及時性
如果系統比較簡單,資料量、訪問量很小,那就沒必要過多考慮系統架構,在部署上採用raid技術,分層儲存,讀寫分離,主備技術,負載均衡等方法。
通過以上就可以清晰的知道資料庫架構,再配合一個數據庫申請單就更全面,下面就開始硬體選型
硬體選型
方案要保證系統上線可以支撐1-2年左右,以後根據需要動態擴充套件;從儲存空間,效能空間兩個維度, 並結合系統架構考慮支撐業務需要的硬體需求,方法有兩種
1.根據監控資料,和當前類似業務對比,推斷出需要的硬體
2.對於我們io密集型系統,可以根據訪問量計算出需要的io能力,從而推斷出需要的硬體
運營維護
略
相關:
-------續------