菜雞學習使用PowerDesigner對數據庫建模

PowerDesigner的基本介紹

PowerDesigner是Sybase的企業建模和設計解決方案,採用模型驅動方法,將業務與IT結合起來,可幫助部署有效的企業體系架構,併爲研發生命週期管理提供強大的分析與設計技術。PowerDesigner獨具匠心地將多種標準數據建模技術(UML、業務流程建模以及市場領先的數據建模)集成一體,並與 .NET、WorkSpace、PowerBuilder、Java™、Eclipse 等主流開發平臺集成起來,從而爲傳統的軟件開發週期管理提供業務分析和規範的數據庫設計解決方案。此外,它支持60多種關係數據庫管理系統(RDBMS)/版本。PowerDesigner運行在Microsoft Windows平臺上,並提供了Eclipse插件。
Gartner統計,PowerDesigner佔了大約30%的數據建模市場份額。PowerDesigner價格在3,000美元和7,500美元(每開發人員)之間。

PowerDesigner特性

PowerDesigner支持:

需求分析
面向對象建模(提供UML 2.0 所有視圖)
數據建模(支持主流關係數據庫管理系統)
業務過程建模(ProcessAnalyst)支持 BPMN
XML建模(支持XML Schema 和 DTD 標準)
數據倉庫建模(WarehouseArchitect)
代碼生成(支持語言及框架包括:Java、C#、VB .NET、Hibernate、EJB3、NHibernate、JSF、WinForm (.NET and .NET CF)、PowerBuilder、……)
報表生成
企業知識庫
Visual Studio 2005 插件
Eclipse 插件

使用PowerDesigner對數據庫建模

》創建Physical Data
》創建表,輸入表的字段,用連線創建表之間的關係
》把表導出,轉爲數據庫的表

創建Physical Data

在這裏插入圖片描述

創建表,輸入表的字段

在這裏插入圖片描述
用連線創建表之間的關係,給tab_enp添加外鍵
在這裏插入圖片描述
把表導出,轉爲數據庫的表
點擊Generate Database
在這裏插入圖片描述
更改數據源的名稱,點擊確定
在這裏插入圖片描述

PowerDesigner畫UML圖

UML
Unified Modeling Language (UML)又稱統一建模語言或標準建模語言
常用的包括用例圖,類圖,時序圖
用例圖
用例圖,展現了一組用例、參與者(actor)以及它們之間的關係。用例圖從用戶角度描述系統的靜態使用情況,用於建立需求模型。
參與者:在系統外部與系統直接交互的人或事物
用例:系統外部可見的一個系統功能單元
常見關係類型有:關聯、泛化、包含和擴展
在這裏插入圖片描述
在這裏插入圖片描述
類圖
在UML類圖中,常見的有以下幾種關係: 泛化(Generalization), 實現(Realization),關聯(Association),聚合(Aggregation),組合(Composition),依賴(Dependency)
各種關係的強弱順序: 泛化 = 實現 > 組合 > 聚合 > 關聯 > 依賴
泛化
泛化關係:是一種繼承關係,表示一般與特殊的關係,它指定了子類如何特化父類的所有特徵和行爲。例如:老虎是動物的一種,即有老虎的特性也有動物的共性。
箭頭指向:帶三角箭頭的實線,箭頭指向父類
實現
實現關係:是一種類與接口的關係,表示類是接口所有特徵和行爲的實現.
箭頭指向:帶三角箭頭的虛線,箭頭指向接口
關聯
關聯關係:是一種擁有的關係,它使一個類知道另一個類的屬性和方法;如:老師與學生,丈夫與妻子關聯可以是雙向的,也可以是單向的。雙向的關聯可以有兩個箭頭或者沒有箭頭,單向的關聯有一個箭頭。
代碼體現:成員變量
箭頭及指向:帶普通箭頭的實心線,指向被擁有者
在這裏插入圖片描述
老師與學生是多對多 學生與課程是一對多的關係
聚合
聚合關係:是整體與部分的關係,且部分可以離開整體而單獨存在。如車和輪胎是整體和部分的關係,輪胎離開車仍然可以存在。聚合關係是關聯關係的一種,是強的關聯關係;關聯和聚合在語法上無法區分,必須考察具體的邏輯關係。
代碼體現:成員變量
箭頭及指向:帶空心菱形的實心線,菱形指向整體
組合
組合關係:是整體與部分的關係,但部分不能離開整體而單獨存在。如公司和部門是整體和部分的關係,沒有公司就不存在部門。組合關係是關聯關係的一種,是比聚合關係還要強的關係,它要求普通的聚合關係中代表整體的對象負責代表部分的對象的生命週期。
代碼體現:成員變量
箭頭及指向:帶實心菱形的實線,菱形指向整體
依賴
依賴關係:是一種使用的關係,即一個類的實現需要另一個類的協助,所以要儘量不使用雙向的互相依賴.
代碼表現:局部變量、方法的參數或者對靜態方法的調用
箭頭及指向:帶箭頭的虛線,指向被使用者
在這裏插入圖片描述