1. 程式人生 > >資料庫設計的六階段:資料庫的設計過程

資料庫設計的六階段:資料庫的設計過程

 6.1 資料庫設計的六階段

  資料庫設計是建立資料庫及其應用系統的技術,是資訊系統開發和建設中的核心技術。具體說,資料庫設計是指對於一個給定的應用環境,構造最優的資料庫模式,建立資料庫及其應用系統,使之能夠有效地儲存資料,滿足各種使用者的應用需求(資訊要求和處理要求)。這個問題是資料庫在應用領域的主要研究課題。資料庫設計既是一項涉及多學科的綜合性技術,又是一項龐大的工程專案。有人講"三分技術,七分管理,十二分基礎資料"是資料庫建設的基本規律,這是有一定道理的。技術與管理的介面(稱之為"幹件")十分重要。資料庫建設是硬體、軟體和幹件的結合。這是資料庫設計的特點之一。資料庫的設計應該和應用系統設計相結合,也就是說,整個設計過程中要把結構(資料)設計和行為(處理)設計緊密結合起來。這是資料庫設計的特點之二。

  6.1.1 資料庫的設計過程

  按照規範的設計方法,一個完整的資料庫設計一般分為以下六個階段:

  ⑴ 需求分析:分析使用者的需求,包括資料、功能和效能需求;

  ⑵ 概念結構設計:主要採用E-R模型進行設計,包括畫E-R圖;

  ⑶ 邏輯結構設計:通過將E-R圖轉換成表,實現從E-R模型到關係模型的轉換;

  ⑷ 資料庫物理設計:主要是為所設計的資料庫選擇合適的儲存結構和存取路徑;

  ⑸ 資料庫的實施:包括程式設計、測試和試執行;

  ⑹ 資料庫執行與維護:系統的執行與資料庫的日常維護。

  資料庫設計的這六個階段,用圖6-1-1表示如下:

  圖6-1-1:資料庫的設計過程

  對於圖6-1-1,需要說明的是:

  ⑴ 概念結構是獨立於任何一種資料模型的資訊結構。邏輯結構設計的任務就是把概念結構設計階段設計好的基本E-R圖轉換為與選用的DBMS產品所支援的資料模型相符合的邏輯結構。從理論上講,設計邏輯結構應該選擇最適宜於相應概念結構的資料模型,然後對支援這種資料模型的各種DBMS進行比較,從中選出最合適的DBMS。但實際情況往往是已經給定了某種DBMS,設計人員沒有其他的選擇餘地。目前DBMS產品一般支援關係、網狀、層次三種模型中的一種,對某一種資料模型,各個機器系統又有許多不同的限制,提供不同的環境與工具。所以設計邏輯結構時一般要分三步進行:

  ① 將概念結構轉換為一般的關係、網狀、層次模型;

  ② 將轉換的關係、網狀、層次模型向特定的DBMS支援下的資料模型轉換;

  ③ 對資料模型進行優化;

  ⑵ 在資料庫的邏輯結構設計完成之後,要對資料模型進行優化。因為資料庫邏輯設計的結果不是唯一的。為了進一步提高資料庫應用系統的效能,還應該根據應用需要適當地修改、調整資料模型的結構,這就是資料模型的優化。關係資料模型的優化通常以規範化理論為指導,優化時可採用在第五章"完整性約束與模式分解"的5.8.3小節中介紹的模式分解方法對關係模式進行規範化。如果在優化過程中發現數據庫的邏輯結構有諸多問題,則需要返回到上一層修改或重新進行資料庫的邏輯結構設計;

  ⑶ 其實將概念模型轉換為全域性邏輯模型之後,還應該根據區域性應用的需求,結合具體DBMS的特點,設計使用者的外模式,這一點在圖6-1-1中沒有體現。目前關係資料庫管理系統一般都提供了檢視的概念,可以利用檢視來設計更符合區域性使用者需要的使用者外模式。定義資料庫全域性模式主要是從系統的時間效率、空間效率、易維護等角度出發。由於使用者外模式與模式是相對獨立的,因此在定義使用者外模式時可以注重考慮使用者的習慣與方便,包括:

  ① 使用更符合使用者習慣的別名;

  ② 可以對不同級別的使用者定義不同的VIEW,以保證系統的安全性;

  ③ 簡化使用者對系統的使用;

  ⑷ 在資料庫的物理結構設計完成之後,就可以針對系統常用的操作進行效能預測,評價所做的設計。如果發現目前的設計不能保證系統常用操作的效能要求的話,就需要返回到上兩層重新調整資料庫的邏輯結構設計;

  當評價一個DBMS產品時,效能指標是一個主要的因素。一個DBMS是一個複雜的軟體,而且不同的廠商可能將它們的系統定位於不同的市場。為此,他們對系統的某些特定部分進行更多的優化,或者選擇不同的設計。例如,一些系統要求有效地運行復雜查詢,而另一些系統用來在一秒中內執行很多簡單事務。在每一類系統中,都有很多競爭產品。為了幫助使用者在選擇DBMS的過程中找到適合自身的系統,人們提出了幾個效能基準測試。它們之中包括度量特定一類應用效能的基準測試和度量一個DBMS完成各種操作的好壞的基準測試(如,Wisconsin Benchmark)。

  基準測試應該是可移植的、易於理解的,並且可以很自然地就擴充套件到大的問題例項上。它們應該能夠度量峰值效能(如,每秒中處理事務的個數,即tps),同時也能度量在給定應用域內工作負載的效能價格比(如,$/tps)。現在已經建立了事務處理委員會(簡稱TPC)來定義事務處理和資料庫系統的基準測試。其他著名的基準測試已經被學術研究者和工業組織提了出來。屬於特定廠商的基準測試對於比較不同的系統沒有多大的用處(儘管它們可能在特定工作負載下判斷一個給定系統的好壞是有用的)。

  在全球資訊網上,通過URL可以獲得聯機版本的所有TPC基準程式描述以及基準程式結果。

  ⑸ 完成資料庫的物理設計之後,設計人員就要用RDBMS提供的資料定義語言和其他實用程式將資料庫的邏輯設計和物理設計的結果嚴格地描述出來,成為DBMS可以接受的原始碼。再經過除錯產生目標模式,然後就可以組織資料入庫了,這就是資料庫實施階段,即資料庫的物理實現。資料庫的物理實現包括兩項重要的工作:一是資料載入;二是應用程式的編碼和除錯。

  ⑹ 在完成資料庫的物理實現之後,進行系統的試驗性執行。這一階段實際執行資料庫應用程式,執行對資料庫的各種操作,測試應用程式的功能是否滿足設計要求。如果不滿足,對應用程式部分則要修改、調整,直到達到設計要求為止。如果在執行過程中發現系統的效能不滿足要求,就需要返回到上一層,重新調整資料庫的物理設計。

  ⑺ 資料庫試執行合格後,資料庫開發工作就基本完成,即可投入正式運行了。但是,由於應用環境在不斷變化,資料庫執行過程中物理儲存也會不斷變化,因此對資料庫設計進行評價、調整、修改等維護工作是一個長期的任務。也是設計工作的繼續和提高。在資料庫執行階段,對資料庫的經常性的維護工作主要是由DBA完成的,它包括:

  ① 資料庫的轉儲和恢復;

  ② 資料庫的安全性和完整性控制;

  ③ 資料庫效能的監督、分析和改造;

  ④ 資料庫的重組織與重構造;

  正像我們所強調的那樣,這個設計步驟既是資料庫的設計過程,也包括了資料庫應用系統的設計過程。在設計過程中把資料庫的設計和對資料庫中資料處理的設計緊密結合起來,將這兩方面的需求分析、抽象、設計、實現在各個階段同時進行,相互參照,相互補充,以完善兩方面的設計。事實上,如果不瞭解應用環境對資料的處理要求,或沒有考慮如何去實現這些處理要求,是不可能設計一個良好的資料庫結構的!