數(shù)據(jù)庫的生命周期主要分為四個階段:需求分析、邏輯設(shè)計、物理設(shè)計、實現(xiàn)維護。
這個系列的博文將主要關(guān)注數(shù)據(jù)庫生命周期中的前兩個階段(需求分析、邏輯設(shè)計),還會涉及反范式化設(shè)計的一些內(nèi)容。如圖中高亮圈出的部分。
數(shù)據(jù)庫的物理設(shè)計,包括索引的選擇與優(yōu)化、數(shù)據(jù)分區(qū)等內(nèi)容。這些內(nèi)容也非常豐富,而且可以自成體系,園子里也有很多好文章,故在本系列中不作主要關(guān)注。本文最后將給出一些鏈接供大家參考。
數(shù)據(jù)庫生命周期的四個階段又能細分為多個小步驟,我們配合圖(1)來看看每一小步包含的內(nèi)容。
階段1 需求分析
數(shù)據(jù)庫設(shè)計與軟件設(shè)計一樣首先需要進行需求分析。
我們需要與數(shù)據(jù)的創(chuàng)造者和使用者進行訪談。對訪談獲得的信息進行整理、分析,并撰寫正式的需求文檔。
需求文檔中需包含:需要處理的數(shù)據(jù);數(shù)據(jù)的自然關(guān)系;數(shù)據(jù)庫實現(xiàn)的硬件環(huán)境、軟件平臺等; 階段2 邏輯設(shè)計
使用ER或UML建模技術(shù),創(chuàng)建概念數(shù)據(jù)模型圖,展示所有數(shù)據(jù)以及數(shù)據(jù)間關(guān)系。最終概念數(shù)據(jù)模型必須被轉(zhuǎn)化為范式化的表。
數(shù)據(jù)庫邏輯設(shè)計主要步驟包括:
a) 概念數(shù)據(jù)建模
注:在需求分析完成后,使用ER圖或UML圖對數(shù)據(jù)進行建模。使用ER圖或UML圖描述需求中的語義,即得到了數(shù)據(jù)概念模型(Conceptual Data Model),例如:三元關(guān)系(ternary relationships)、超類(supertypes)、子類(subtypes)等。
注:當在大型項目設(shè)計或多人參與設(shè)計的情況下,會產(chǎn)生數(shù)據(jù)和關(guān)系的多個視圖。這些視圖必須進行化簡與集成,消除模型中的冗余與不一致,最終形成一個全局的模型。多視圖集成可以使用ER建模語義中的同義詞(synonyms)、聚合(aggregation)、泛化(generalization)等方法。多視圖集成在整合多個應(yīng)用的場景中也非常重要。 階段3 物理設(shè)計
數(shù)據(jù)庫物理設(shè)計包括選擇索引,數(shù)據(jù)分區(qū)與分組等。
邏輯設(shè)計方法學(xué)通過減少需要分析的數(shù)據(jù)依賴,簡化了大型關(guān)系數(shù)據(jù)庫的設(shè)計,這也減輕了數(shù)據(jù)庫物理設(shè)計階段的壓力。
1. 概念數(shù)據(jù)建模和多視圖集成準確地反映了現(xiàn)實需求場景
2. 范式化在模型轉(zhuǎn)化為SQL表的過程中保留了數(shù)據(jù)完整性
數(shù)據(jù)庫物理設(shè)計的目標是盡可能優(yōu)化性能。
物理設(shè)計階段,全局表結(jié)構(gòu)可能需要進行重構(gòu)來滿足性能上的需求,這被稱為反范式化。
反范式化的步驟包括:
1. 辨別關(guān)鍵性流程,如頻繁運行、大容量、高優(yōu)先級的處理操作
2. 通過增加冗余來提高關(guān)鍵性流程的性能
3. 評估所造成的代價(對查詢、修改、存儲的影響)和可能損失的數(shù)據(jù)一致性
階段4 數(shù)據(jù)庫的實現(xiàn)維護
當設(shè)計完成之后,使用數(shù)據(jù)庫管理系統(tǒng)(DBMS)中的數(shù)據(jù)定義語言(DDL)來創(chuàng)建數(shù)據(jù)結(jié)構(gòu)。
數(shù)據(jù)庫創(chuàng)建完成后,應(yīng)用程序或用戶可以使用數(shù)據(jù)操作語言(DML)來使用(查詢、修改等)該數(shù)據(jù)庫。
一旦數(shù)據(jù)庫開始運行,就需要對其性能進行監(jiān)視。當數(shù)據(jù)庫性能無法滿足要求或用戶提出新的功能需求時,就需要對該數(shù)據(jù)庫進行再設(shè)計與修改。這形成了一個循環(huán):監(jiān)視 –> 再設(shè)計 –> 修改 –> 監(jiān)視…。
..
|