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