Craft6數(shù)據(jù)庫設計教程系列——數(shù)據(jù)庫設計流程_第1頁
Craft6數(shù)據(jù)庫設計教程系列——數(shù)據(jù)庫設計流程_第2頁
Craft6數(shù)據(jù)庫設計教程系列——數(shù)據(jù)庫設計流程_第3頁
Craft6數(shù)據(jù)庫設計教程系列——數(shù)據(jù)庫設計流程_第4頁
免費預覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、一、流程概括數(shù)據(jù)庫設計大致可分為5 個階段:1. 規(guī)劃階段包括論證必要性、可行性、根據(jù)項目情況進行數(shù)據(jù)庫選型。2. 需求階段調(diào)研業(yè)務,明確需求,撰寫文檔。3. 概念階段設計數(shù)據(jù)流圖、數(shù)據(jù)字典4. 邏輯階段設計 ER圖,從整體的角度把握數(shù)據(jù)庫模型5. 物理階段根據(jù) ER圖 + 數(shù)據(jù)字典,設計物理模型圖6. 開發(fā)階段根據(jù)物理模型生成基礎代碼,根據(jù)默認的功能驗證模型。開發(fā)過程中,根據(jù)業(yè)務變更,反復完善模型。二、規(guī)劃階段? 論證必要性是否需要使用數(shù)據(jù)庫做持久化處理?是否使用關(guān)系數(shù)據(jù)庫?比如對于工作流引擎,使用xml 來持久化流程的設計,反而更加靈活。另外,在處理大數(shù)據(jù)量,高并發(fā)的時候,用NoSql 會

2、更加理想。所以,開展一個項目之前,需要論證,使用什么方式的持久化技術(shù)更加合適。? 可行性看項目的部署方式、運行環(huán)境是否支持關(guān)系數(shù)據(jù)庫。? 數(shù)據(jù)庫選型根據(jù)項目規(guī)模、歷史原因、和其它系統(tǒng)集成需求、經(jīng)費等,考慮選擇那種數(shù)據(jù)庫產(chǎn)品。三、需求階段通過充分調(diào)查現(xiàn)實世界的業(yè)務對象,明確用戶的各種需求,確定系統(tǒng)的各項功能。需求階段不單止要考慮系統(tǒng)當前的業(yè)務需求,還要充分考慮到以后系統(tǒng)可能的擴充和改變。四、概念結(jié)構(gòu)設計階段這個階段主要是完成數(shù)據(jù)字典和數(shù)據(jù)流圖,這是從業(yè)務的角度挖掘系統(tǒng)涉及的數(shù)據(jù)流轉(zhuǎn)方式、實體和屬性成分說明。? 數(shù)據(jù)字典數(shù)據(jù)字典最重要的作用是作為分析階段的工具。任何字典最重要的用途都是供人查詢對不

3、了解的條目的解釋。在結(jié)構(gòu)化分析中,數(shù)據(jù)字典的作用是給數(shù)據(jù)流圖上每個成分加以定義和說明。換句話說,數(shù)據(jù)流圖上所有的成分的定義和解釋的文字集合就是數(shù)據(jù)字典,而且在數(shù)據(jù)字典中建立的一組嚴密一致的定義很有助于改進分析員和用戶的通信。? 數(shù)據(jù)流圖數(shù)據(jù)流是一組數(shù)據(jù)。在數(shù)據(jù)流圖中數(shù)據(jù)流用帶箭頭的線表示,在其線旁標注數(shù)據(jù)流名。在數(shù)據(jù)流圖中應該描繪所有可能的數(shù)據(jù)流向,而不應該描繪出現(xiàn)某個數(shù)據(jù)流的條件。? 數(shù)據(jù)流圖的加工(處理)方式在數(shù)據(jù)流圖中加工用圓圈表示,在圓圈內(nèi)寫上加工名。一個處理框可以代表一系列程序、單個程序或者程序的一個模塊。五、邏輯結(jié)構(gòu)設計階段這個階段最重要的任務就是根據(jù)數(shù)據(jù)流圖的分析設計出E-R 圖

4、。E=EntityR=RelationshipER圖即實體關(guān)聯(lián)圖筆者的使用習慣是在設計 E-R 圖時,注重整體考慮,主要分析系統(tǒng)涉及哪些實體、實體負責的業(yè)務邏輯,實體之間的關(guān)系(如1 對 1,1 對多,多對多等)是怎么處理的。而不會在E-R 圖中描畫實體的具體屬性。因為兩者關(guān)注的粒度是完全不同的。對于一些核心的關(guān)鍵屬性,如果有利于說明實體業(yè)務和關(guān)系的,可以加入,但是注意一定要嚴格控制。即類似這樣的E-R 圖(在網(wǎng)絡收集),筆者是不推薦的:因為這個圖內(nèi)容太多,雖然通過矩形、菱形和圓形區(qū)分各種元素,但是還是會被屬性(圓形)干擾了注意力。筆者認為,概念階段,主要關(guān)注點是實體和關(guān)聯(lián),屬性在數(shù)據(jù)字典環(huán)節(jié)

5、已經(jīng)做了初步的分析,這也足夠了。所以,筆者推薦的是類似這樣的E-R 圖:這個圖主要關(guān)注的就是實體和關(guān)聯(lián),以及實體和外部模塊的聯(lián)系情況。至于屬性,則只列出一些關(guān)鍵的屬性,如果沒有這類關(guān)鍵屬性,則不列出屬性也是合適的。六、物理結(jié)構(gòu)設計階段這個階段就是基于E-R 圖 +數(shù)據(jù)字典 +數(shù)據(jù)流圖進行數(shù)據(jù)庫設計,由于設計E-R 圖已經(jīng)主要參考了數(shù)據(jù)流圖,所以這個階段主要參考前面兩項。通過 E-R 圖中的實體,確定有哪些數(shù)據(jù)表,通過關(guān)聯(lián)確定數(shù)據(jù)表之間的外鍵關(guān)系(根據(jù)設計習慣和項目情況,有些實體關(guān)聯(lián)并不一定通過外鍵處理,不同模塊之間的表可以通過業(yè)務鍵進行業(yè)務上的關(guān)聯(lián),而不是物理結(jié)構(gòu)上的外鍵關(guān)聯(lián)。通過數(shù)據(jù)字典確定

6、數(shù)據(jù)表的字段和字段的數(shù)據(jù)類型、域和業(yè)務描述(字段備注Comment)等。筆者一般使用Powerdesigner完成物理模型的設計。七、開發(fā)、迭代和優(yōu)化階段數(shù)據(jù)表設計好后,如果企業(yè)的軟件開發(fā)架構(gòu)有代碼生成組件,則可以基于這些數(shù)據(jù)表生成基礎代碼,生成的基礎代碼一般有基礎的 CRUD功能,通過這些功能初步驗證一下數(shù)據(jù)表,沒有問題就可以往下開發(fā)了。然后在開發(fā)過程中,如果涉及數(shù)據(jù)表的更改,則通過代碼生成組件局部的更新相關(guān)的配置文件(如 ORM的映射文件和映射類)。在運營過程中,如果數(shù)據(jù)量、訪問量增大,則存在在數(shù)據(jù)庫層面的優(yōu)化,比如冗余數(shù)據(jù)、索引、表分割、維度方式的數(shù)據(jù)表設計等。數(shù)據(jù)庫物理模型的設計一般很難一步到位,在開發(fā)和維護階段均存在調(diào)整的可能性,調(diào)整有微調(diào),也有大調(diào)整。微調(diào)可以是增加、修改或減少一些字段;大調(diào)整,則可能業(yè)務發(fā)生很大的變化,或者原先的分析階段,在需求、數(shù)據(jù)流圖上理解有誤,導致數(shù)據(jù)表的重新設計。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論