程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 面向對象的關系數據庫設計

面向對象的關系數據庫設計

編輯:關於C語言

 

  

  一、概念的區分

 

  有些人把面向對象的數據庫設計(即數據庫模式)思想與面向對象數據庫管

理系統(OODBMS)理論混為一談。其實前者是數據庫用戶定義數據庫模式的思路

,後者是數據庫管理程序的思路。用戶使用面向對象方法學可以定義任何一種

DBMS數據庫,即網絡型、層次型、關系型、面向對象型均可,甚至文件系統設計

也照樣可以遵循面向對象的思路。 面向對象的思路或稱規范可以用於系統分析

、系統設計、程序設計,也可以用於數據 結構設計、數據庫設計。OOSE自上至

下、自始至終地貫徹面向對象思路,是一個一氣呵成 的統一體。面向對象的數

據庫設計只是 OOSE 的一個環節。

 

  二、數據庫設計的重要性

 

  一般數據庫設計方法有兩種,即屬性主導型和實體主導型。屬性主導型

從歸納數據庫應用的屬性出發,在歸並屬性集合(實體)時維持屬性間的函數依

賴關系。實體主導型則先 從尋找對數據庫應用有意義的實體入手,然後通過定

義屬性來定義實體。一般現實世界的 實體數在屬性數 1/10 以下時,宜使用實

體主導型設計方法。面向對象的數據庫設計是從對象模型出發的,屬於實體主導

型設計。 一般數據庫應用系統都遵循以下相關開發步驟:

 

1設計應用系統結構;

 

2 選擇便於將應

   用程序與DBMS結合的DBMS體系結構,如RDBMS;

 

3 根據應用程序使用的環境平台,選擇適宜的DBMS(如Oracle)和開發工具(如PB);

 

4 設計數據庫,編寫定義數據庫模式的SQL程序;

 

5 編寫確保數據正確錄入數據庫的用戶接口應用程序;

 

6 錄入數據庫數據;

 

7 運行各種與 數據庫相關的應用程序,以確認和修正數據庫的內容。

 

  對以上各步驟,有幾點需要說明:

 

(1) 這不是瀑布模型,每一步都可以有反饋。

  在公路局系統中,以上各步不僅有反饋、有反復,還有並行處理。比如一些

庫表在數 據錄入時,另一些庫表設計還在修改。這與我們的遞增式開發方法有

關,也與面向對象的 特征有關。

 

(2) 上述順序不是絕對的,大多數場合是從第三步開始的。

 

(3) 對大多數數據庫應用系統來說,上述各步中最重要、最困難的不是應用系統

設計而是數據庫設計。

 

  三、DBMS的支持和數據庫設計

 

  多數據庫應用系統開發者不重視數據庫設計的原因是:他們太迷信DBMS,認

為購入一個功能強大的DBMS後數據庫設計就不困難、不重要了。一些國內外的

數據庫教材常常 是在為DBMS的開發廠商做宣傳,而很少站在數據庫用戶角度,從

數據庫應用系統出發介紹數據庫設計方法。結果往往使讀者搞不清書中介紹的

是數據庫管理程序的設計思想,還是 應用這種 DBMS 進行數據庫設計的思想。

其實,DBMS只是給用戶為已采用的數據庫提供一個舞台,而是否使用這個舞台上

的道具以及唱什麼戲,則完全取決於用戶的戲劇腳本和導演(開發者)的安排。例

如,公路局系統所使用的數據庫管理系統,是以二維表為基本管理單元、支持所有

關系代數操作、支持 實體完整性與實體間參照完整性的全關系型RDBMS,而我們

要在這個舞台上利用上述"道具"設計一個面向對象的關系數據庫。

 

  四、應用對象模型與RDBMS模型的映射

 

  數據庫設計(模式)是否支持應用系統的對象模型,這是判斷是否是面向對象

數據庫系統的基本出發點。由於應用系統設計在前,數據庫設計隨後,所以應用

系統對象模型向 數據庫模式的映射是面向對象數據庫設計的關鍵。

 

  1. 三層數據庫模式面向對象模型的擴展

 

  一般數據庫設計多參照ANSL/SPARC關於數據庫模式的3層標准結構提案。

最接近物理數據庫的內部模式由DBMS提供的SQL來描述。概念模式可以由若干

個內部模式聚集而成 ,它是由數據庫用戶規范的一些表的集合。例如,公路局計

劃處數據庫模式、機務處數據 庫模式等,它們是邏輯數據庫,常常通過庫表ID來

界定庫邊界。一般的概念模式是數據庫 物理模式作用域的邊界,它能實現數據

庫的物理意義、特定DBMS 的特殊操作對外部應用 程序的信息隱蔽。外部模式

是從特定用戶應用角度看待的數據庫模式,從不同的應用出發對同一概念模式可

以給出多種不同的外部模式。例如

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved