PowerDesigner概念模型詳解
環境
PowerDesigner 12.5
Windows XP 中文版
1、概念模型的重要性
PowerDeigner是最強大、最優秀的數據建模工具,是Sybase公司最偉大的產品。目前最新版本是12.5,從9一直用到如今,對PD的認識也是在逐步加深。
經常在工做中,看到你們用PD,都是用來建幾個表,其實是作PDM,上來就幹這個,實際上,這麼用PD,是對強悍的PD一種侮辱。PD僅僅是這麼玩的嗎?
數據庫設計的步驟是什麼,難道上來稍稍想一下就搞個pdm出來?
下面簡單回顧下大學課本里講述的數據庫設計的基本步驟:
一、需求分析
從系統需求中尋找一些概念性名詞,並甄選,並對這些名詞相關屬性作了解,這部分是人工的,PD作不了什麼。
二、概念結構設計
針對甄選的名詞進行分心,找出其中的關係(獨立的、一對1、一對多、多對多、繼承五種關係),並用E-R圖描述出來,這是大學課本的作法。在PD中,這個過程能夠用CDM(概念模型)來描述,PDM中實體概念模型表示方式比E-R更清晰,更好。
三、邏輯結構設計
實際上就是設計表的結構和表之間的主外關係等。這部分在PD中對應的是PDM(物理模型),而PD中的物理模型通常都是直接從概念模型生成的。也就是說,只要你作好概念模型,物理模型就能夠自動生成。
固然,這種生成結果通常都須要作一些調整和優化。
四、物理結構設計
有了PDM,數據庫的物理設計將不費吹灰之力,直接能夠從PDM導出各類數據庫系統的建庫腳本。
五、數據庫的創建和測試
這個過程也很簡單,看看建庫腳本的執行就知道了。不合理了從新修改PDM,而後生成sql再來。
六、數據庫運行和維護。
這個通常是DBA的事情了,好比時間長了,數據量大了,在某些列上加上索引,調優等等。
從中能夠看到,一上來就建PDM,是不合理的。實際上要求對概念模型有個透徹理解了纔去作PDM,這種理解能夠不畫圖,但至少是心中有圖。
作CDM概念模型的好處是交流容易,全世界通用,誰看了都明白。你難道能用PDM的外鍵關係去看數據關係嗎,若是一個表上有多個外鍵,外鍵關聯像蜘蛛網同樣,就暈菜了,誰也看不明白!
2、 使用PD創建數據庫概念模型
一、一對一CDM
下圖描述了 一個系統用戶對應一個擴展信息,也能夠沒有擴展信息。擴展信息依賴用戶信息的存在。而且一個擴展信息只能有一個用戶信息。
關係的設置:
將其生成PDM
二、一對多CDM
下圖CDM描述了一個公司有多個經理的模型,固然一個公司也能夠沒有經理(老闆是光桿司令)。但一個經理必須屬於一個公司。
關係的設置:
生成的PDM
三、多對多CDM
下面描述的是一個演員和角色的關係,一個演員能夠演多個角色,一個角色能夠由不一樣的演員來演,好比《紅樓夢》的林妹妹,小時候找個演員A來演,長大後的形象由演員B來演。
關係設置,多對多關係最簡單了,通常不須要設置:
生成的PDM以下:
四、繼承關係CDM
下圖描述的是一個繼承關係,好比有一個教務系統,用戶分學生老師,註冊時候,老師和學生填寫的信息由差別,但有公共信息。
關係配置,不須要,就集成關係,沒啥好設置的。
生成的PDM以下:
也許你會發現,五個呢,怎麼才四個,呵呵,單表就獨立着和誰都不要緊,還用畫嗎?
3、總結
一、數據庫建模是系統設計中最重要一步,概念模型能很好的描述數據間的關係,還能夠從概念模型精確生成符合必定標準範式的物理模型。
二、CDM能描述出更細微的數據關係,好比是0-n還1-n,這直接影響到數據業務上的約束,可是用PDM沒法描述。CDM爲業務交流節約了溝通成本。
三、CDM也爲後來瞭解底層業務數據關係提供了依據,尤爲是表不少不少時候,若是沒有CDM,那只有設計數據庫的人知道底層的關係了。
四、若是表不少,分模塊的狀況,還能夠講CDM分包來管理,這樣能夠避免將全部的實體關係畫到一張圖中所帶來閱讀上煩惱。
五、PD還有其餘不少很強悍的功能,好比數據庫反響到PDM,PDM導出腳本,PDM導出Java模型對象、XML模型。還能夠生成DAO層的持久化代碼,甚至hbm文件,還能夠作業務流程建模、生成數據字典報表等等。但PD最擅長的就是CDM-->PDM-->SQL,數據庫反向工程,報表功能,用好這些就不錯了。