數據庫設計標准規范


按照規范設計的方法,一般將數據庫設計分為以下6個階段

1、需求分析:分析用戶的需求,包括數據、功能和性能需求(需求分析報告)

2、概念結構設計:主要采用E-R模型進行設計,包括畫E-R圖(概念模型)

3、邏輯結構設計:通過將E-R圖轉換成表,實現從E-R模型到關系模型的轉換(邏輯模型)

4、物理結構設計:主要是為所設計的數據庫選擇合適的存儲結構和存取路徑(物理模型)

5、數據庫實施:包括編程、測試和試運行(相關文檔)

6、數據庫的運行和維護系統的運行與數據庫的日常維護。

 

數據庫設計過程是一個反復修改、反復設計的迭代過程,不是一蹴而就就可以完成的。在數據庫設計過程中,需求分析和概念設計可以獨立於任何數據庫管理系統進行,邏輯設計和物理設計與選用的DBMS密切相關(采用PD為設計工具,邏輯模型也不需要指定DBMS)。

從實際工作來說,一般不是大型系統的數據庫設計,不需要嚴格按照以上階段進行,主要討論其中的第1和第3個階段,即需求分析和邏輯設計,而小型的數據庫設計時,一般也是根據需求分析報告直接生成物理模型,不會建立概念模型和邏輯模型的。

以下按標准的設計步驟來介紹各個階段的主要工作及設計重點,鑒於本人能力,每一部分只能泛泛而談,相關詳情分析可以查閱網上資料。

1、需求分析階段(常用自頂向下)

進行數據庫設計首先必須准確了解和分析用戶需求(包括數據與處理)。需求分析是整個設計過程的基礎,也是最困難、最耗時、最重要的一步。需求分析是否做得充分和准確,決定了在其上構建數據庫建築的速度與質量。需求分析做的不好,會導致整個數據庫設計返工重做。而需求分析也是整個軟件工程的基石。

需求分析的任務:

是通過詳細調查現實世界要處理的事務對象,充分了解業務工作概況,明確用戶的各種需求,然后在此基礎上確定系統的功能,需求分析人員還得充分考慮今后可能的擴充與改變,不僅僅能夠按當前應用需求來設計。調研的重點是數據與處理流程。

需求分析的主要任務如下:

A、調查分析用戶活動

B、收集和分析需求數據,確定系統邊界,信息需求,處理需求,安全性和完整性需求

C、編寫系統分析報告

需求分析的方法:

需求分析有兩種方法:自頂向下、自底向上;

一般常用的是SA(StructuredAnalysis)結構化分析方法,SA方法從最上層的系統組織結構入手,采用自頂向下,逐層分解的方式分析系統,用數據流圖和數據字典描述系統。

數據流圖(Data Flow Diagram,DFD)表達了數據和處理過程的關系,在SA方法中,處理過程的處理邏輯常常借助判定表或判定樹來描述。在處理功能逐步分解的同事,系統中的數據也逐級分解,形成若干層次的數據流圖。

系統中的數據則借助數據字典datadictionary,DD)來描述。數據字典是系統中各類數據描述的集合,數據字典通常包括數據項,數據結構,數據流,數據存儲,和處理過程5個階段。

2、概念結構設計階段(常用自底向上)

概念結構設計是整個數據庫設計的關鍵,它通過對用戶需求進行綜合,歸納與抽象,形成了一個獨立於具體DBMS的概念模型。

概念模型是對現實世界的一種抽象,從實際的人、物、事務和概念中抽取所關心的共同特性,忽略非本質的細節,這些共同特性被各種概念精確的加以描述,按某種規則組成了概念模型。

概念結構設計的目標是設計數據庫的E-R模型圖,確認需求信息的正確和完整。具體來說就是從需求分析中找到實體,確認實體的屬性、確認實體的關系,畫出ER圖。

設計概念結構通常有四類方法:

自頂向下:即首先定義全局概念結構的框架,再逐步細化。

自底向上:即首先定義各局部應用的概念結構,然后再將他們集成起來,得到全局概念結構。

逐步擴張:首先定義最重要的核心概念結構,然后向外擴張,以滾雪球的方式逐步生成其他的概念結構,直至總體概念結構。

混合策略:即自頂向下和自底向上相結合。

 

E-R圖的基本步驟:

l 確定實體類型

l 確定聯系類型

畫出E-R圖

l 確定實體的屬性

 

概念結構設計常用的方法一般是是自底向上,步驟如下圖:

 

 

 

 

第一步,數據抽象與局部E-R模型設計

A、數據抽象:

在多層數據流中選擇一個適當層次作為設計E-R圖的出發點。對需求分析階段收集到的數據進行分類(或聚合)組織,形成實體、實體包含的屬性、實體之間的聯系

常用的抽象、划分實體和屬性的方法:

分類:將一組具有某些共同特性和行為的對象抽象為一個實體。

聚合:將對象類型的組成成分抽象為屬性。

概括:

B、局部E-R模型設計

局部E-R模型設計的原則是屬性必須是不可分的數據項,不能再由放棄其他屬性組成(也即所謂的原子性);屬性不能與其他實體具有聯系,聯系只能發生在實體之間。

為簡化E-R圖,凡是能作為屬性對待的對象,盡量作為屬性。

第二步,全局E-R模型設計

集成各局部E-R模型,形成全局模型。視圖集成的方法有兩種:

A、多元集成法:一次性將多個局部E-R圖合並為一個全局E-R圖。

B、二元集成法:首先集成兩個重要的局部E-R圖,然后用累加的方法逐步將一個新的E-R圖集成進來。

合並局部E-R圖,消除沖突,初步生成E-R圖。合並的關鍵是合理消除各局部E-R圖的沖突。各分E-R圖之間的沖突主要有三類:屬性沖突,命名沖突,和結構沖突。

優化並消除初步E-R圖中不必要的冗余數據和冗余聯系,生成基本的E-R圖。

 

3、邏輯結構設計階段

邏輯結構設計的任務是將概念結構設計階段完成的實體模型轉換成特定的DBMS所支持的數據模型,並將其進行優化的過程。邏輯結構設計的目的是將E-R圖中的實體、屬性和聯系轉換成為關系模型。

E-R圖向關系模型的轉換,要解決的問題是如何將實體性和實體間的聯系轉換為關系模式,如何確定這些關系模式的屬性和碼。

 

3.1 初始關系模型設計

實體間關系轉換遵循的原則:

一個實體轉換為一個關系模型,實體的屬性就是關系的屬性,實體的鍵就是關系的鍵。

一個聯系轉換為一個關系模型,與該聯系相連的各實體的鍵以及聯系的屬性均轉換為該關系的屬性。

3.2 關系模式規范化

應用數據庫設計的范式理論對初始關系模型進行優化。數據庫設計的三大范式如下:

第一范式:每一個分類必須是一個不可分的數據項。屬性不可再分,確保每列的原子性。

第二范式:要求每個表只描述一件事情,每條記錄有唯一標識列。

第三范式:數據庫表中不包含已在其它表中已包含的非主關鍵字信息。

 

關系模式的規范化過程如下:

A、確定范式級別:考察關系模式的函數依賴關系,確定范式等級。

B、實施規范化處理:利用規范化方法和理論將關系模式規范化。

C、模式改進:

合並:將用於關聯查詢的具有相同主鍵的各表合並可提高查詢效率,例如表結構相近的。

分解:水平分解或者垂直分解;

水平分解,將關系的元組分為若干子集,提高查詢效率;垂直分解,把關系中經常一起使用的屬性分解出來,形成一個子關系,提高執行效率。分解時要保持無損連接和函數依賴。

 

4、物理結構設計階段

物理設計是為邏輯數據結構模型選取一個最適合應用環境的物理結構。

物理結構設計是對於給定的邏輯數據模型,選取一個最適合應用環境的物理結構(包括存儲結構和存取方法)。數據庫的物理結構設計分為兩步:

A、確定物理結構:存取方法和存儲結構

B、評價物理結構:評價重點是時間和空間效率

根據具體的數據庫管理系統所提供的多種存儲結構和存取方法等依賴於具體計算機結構的各項物理設計措施,對具體的應用任務選定最合適的物理存儲結構(數據類型 索引 主鍵)。

4.1 確定物理結構

1)存儲結構的設計

確定數據庫存儲結構時要綜合考慮存取時間、存儲空間利用率和維護代價三方面的因素。例如消除一切冗余數據雖然能夠節約存儲空間,但往往會導致檢索代價的增加,因此必須進行權衡,選擇一個折中方案。

2)數據存取路徑的設計(索引)

在關系數據庫中,選擇存取路徑主要是指確定如何建立索引。例如,應把哪些域作為次碼建立次索引,建立單碼索引還是組合索引,建立多少個為合適,是否建立聚集索引等。

3)數據存放位置的設計

為了提高性能,可將數據的易變部分、穩定部分、經常存取部分和存儲頻率較低部分分開存放。

4)系統配置的設計

DBMS產品一般都提供了一些存儲分配參數,供設計人員和DBA對數據庫進行物理優化。初始情況下,系統都為這些變量賦予了合理的缺省值,但是這些值不一定適合每一種應用環境,在進行物理設計時,需要重新對這些變量賦值以改善系統的性能。

4.2 評價物理結構

物理結構設計過程中需要對時間效率、空間效率、維護代價和各種用戶要求進行權衡,其結果可以產生多種方案,數據庫設計人員必須對方案進行細致的評價,從中選擇一個較優的方案作為數據庫的物理結構。

評價物理數據庫的方法完全依賴於所選用的DBMS,主要是從定量估算各種方案的存儲空間、存取時間和維護代價入手,對估算結果進行權衡、比較,選擇出一個較優的合理的物理結構。

 

5、數據庫實施階段

數據庫實施階段是指根據邏輯設計和物理設計的結果,在計算機上建立起實際的數據庫結構、裝入數據、進行測試和試運行的過程。

在數據庫實施階段,設計人員運營DBMS提供的數據庫語言(如sql)及其宿主語言,根據邏輯設計和物理設計的結果建立數據庫,編制和調試應用程序,組織數據入庫,並進行試運行。

 

 

6、數據庫運行和維護階段

數據庫應用系統經過試運行后,即可投入正式運行,數據庫運行與維護的主要任務包括:

A、維護數據庫的安全性與完整性

B、監測並改善數據庫性能

C、重新組織和構造數據庫

在數據庫系統運行過程中必須不斷地對其進行評價,調整,修改。只要數據庫系統在運行,就需要不斷地進行修改、調整和維護。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM