軟件工程之系統建模篇【設計數據模型】


數據模型描述系統持久性數據庫層的邏輯內容與結構,數據模型用UML的類圖描述。首先簡要介紹數據模型的設計方法及關系數據庫的幾個術語,然后依次介紹如何將類映射到表、將關聯映射到關系數據庫及將泛化映射到數據庫。

  數據庫模型從層次上可以分為3類:概念數據模型、邏輯數據模型和物理數據模型。

  概念數據模型是面向用戶、面向現實世界的數據模型,與數據庫管理系統無關,邏輯數據模型反映了DBMS的存儲結構,是用戶從數據庫看到的數據模型,物理數據模型是特定的DBMS,定義實際中的數據如何存儲在持久存儲設備上。本章要設計的數據模型是邏輯數據模型,用面向對象方法設計數據模型於用傳統方法設計數據模型差別不大。

  設計步驟為:

  1、設計UML中的實體與ER圖中的實體

  2、設計UML實體類圖與E-R圖

  3、建模依據

  4、選擇數據庫系統   

  持久性數據庫層可以是關系型的數據庫,也可以是對象關系型的數據庫或者對象數據庫。從關系型數據庫技術到對象數據庫技術是一個演化過程,對象數據庫技術是這個演化過程的中間階段,盡管未來將屬於對象數據庫,但關系型數據庫在目前的數據庫軟件市場中仍占主流,本章為系統實例選擇關系型數據庫作為持久性數據庫層的數據庫管理系統。對於關系數據庫來說,可以用類圖描述數據庫模式,用類描述數據表,用類的操作描述觸發器和存儲過程。

  1、將類映射到表

  將實體類映射為關系數據表,必須遵循表的第一范式,列必須是不可再分的數據項,從類到表的映射可以是一對一,即一個類映射為一個表,但是,一對一映射可能會導致一些問題,如表太多,表丟失,以及對泛化關系處理不合理等,在設計中要靈活調整。

  2、將關系映射到關系數據庫

  類之間的多重性可以分為一對一,一對多和多對多3種情況,對3種多重性的處理已經有一些一般的轉換規則,數據模型的設計用UML符號構造型和其他擴展機制類模擬,關系表的UML符號用構造型為《relational table》的類符號表示,關系表的列用類中的屬性表示,帶有構造型《pk》的屬性代表主鍵,帶有構造型《fk》的屬性代表外鍵,不能接受空值的列用約束“{not null}”類表示。

  3、將泛化映射到數據庫

  將泛化映射到數據庫有3種方法:1.將每個類映射到一個表,為每個父類/子類對創建一個SQL視圖;2.將整個類層次映射到一個父類表,表包括所有類的屬性集;3.將每個子類映射到一個表,父類的所有屬性包含在每個表的列集中。

  注:面向對象設計模型中的依賴關系和實現關系都是非結構化的關系,因而不會映射到關系數據庫中。


免責聲明!

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



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