author:skate
time:2013/06/04
資料庫結構描述設計
最近在考慮如何能設計好一個資料庫結構描述,下面是個人一點想法,歡迎高人指正
任何系統都不是獨立的,是一個生態系統,資料庫也是一樣的,要使其在其生命週期內更好的服務於業務,在設計之初就要考慮周全。作為資料庫設計者在大方向上最為關心的是如下幾點,也是要實現的目標:
資料庫結構描述
硬體選型
運營維護
以一個建立平台系統為例,要經曆業務架構設計,資料架構設計,應用架構設計,系統架構設計,運營維護
業務架構:公司的業務模式,實現商務程序、功能等
資料架構:實現資料共用、一致性、完整性、準確性
資料定義:
資料標準:如待用資料:中繼資料、業務對象;動態資料:訂單等
資料概念性模型:根據需求分析,進行綜合分析,形成獨立於具體DBMS的概念性模型,要理清
實體和實體關聯
屬性和域
商務規則(應用實現和資料庫實現)
並綜合考慮如下幾點
儲存哪些資料
資料來源
資料的約束規則及
資料怎樣被使用
使用者想看到哪些資料
資料與其他系統是否互動
資料訪問方式
資料邏輯模型:將概念性模型轉化為某個具體的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能力,從而推斷出需要的硬體
運營維護
略
相關:
中小企業的db備份架構的思考
系統設計感悟
分庫分表的排序
串連數對DB系統的影響
-------續------