現實問題在計算機上的解決,需要我們從現實問題中抽象出實體模型,然后再將實體模型對應到數據庫關系表中。
例如,我們在思考學生選課,這件事情上,實體模型就是“學生”和“課程”兩個
此時,我們使用powerdesigner可以建立概念模型,用圖示的方法理解並表示兩個實體對象的關系。那么如何使用powerdesinger建立概念模型呢?
一、概念模型
- 創建一個ConceptualDataModel
- 創建entity
- 技巧:在概念模型的屬性設置中,DataType設置,可以直接用Code中的簡寫來進行設置,例如age的Data Type輸入va64,會自動補全
-
F6放大、F7縮小設置背景:Tools->Display Preferences->General
-
window color改變背景顏色grid:是否顯示虛點diagram:show page delimiter顯示分割線然后編輯對應的屬性信息注意:在實體對象中,只需要編輯屬性信息,不需要考慮關聯、外鍵等而實體間的關系,用Relationship來關聯
- 重點在Relationship上:
-
Entity1、Entity2兩個實體如上圖細線方框兩個實體間用RelationShip關聯:中間藍線:實線方向司機,是指每輛車必須對應一個司機;虛線方向車,是指每個司機可以沒有車來駕駛Dominant Role:支配關系,誰指向誰,就是誰支配誰司機to車:勾上Mandatory(強制的),就是說每個車必須對應一個司機:理解為司機對車是強制的關系,即每輛車必須對應一個司機車to司機:勾上Dependen(依賴的),就是說每個司機必須對應一個車:理解為車是 依賴司機而存在的,不存在沒有相應司機的車至此,概念模型建立完畢
二、建立物理模型
通過概念模型生成物理模型
兩個按鈕分別生成“面向對象模型oom”和“物理模型pdm”
先生成物理模型:
選擇對應數據庫,並填寫好名稱即可
其中關系:
面向對象模型:
從概念模型到物理模型的創建方式完成。
下面,開始獨立創建物理模型:
創建物理模型,命名,選擇數據庫
然后使用
創建table
創建table間關系
建立學生信息表
表名必須用全大些、並用下划線將英文單詞隔開:STUDENT_INFO
建立學科信息表:COURSE_INFO
每個學生可選多門課程,每門課程可由多個學生選:必須使用中間表建立“多對多”關系
學生學科信息表:STU_COU_INFO
然后使用工具中Reference從依賴拖向被依賴:學生學科信息表 依賴 學生信息表 和 學科信息表
技巧:
顯示是否可為空:tools->display preferences->table
domain:在建立表時,如果很多字段的data type是一樣的類型,一樣的長度,那么可以建立domain,方便統一管理
在菜單欄中的Domains(模型)
在其中創建自定義的域類型:
起名字,並為其選擇類型
那么,在 以后建表過程中,為字段選擇data type時,可以通過選擇domain來確定
點擊紅色方框中的按鈕,可以將domain顯示出來,然后進行選擇,注意:當選擇了domain后,data type便不再生效了
勾選domain,這樣就會顯示該欄
這兩個地方不沖突的設置是在:tools->model options->column&domain 給datatype勾上就可以保證兩個里面選一個應用了
在給一個表添加字段時,如果有些字段在其他表中已經存在,那么可以通過
來將那個字段包含進來,只是以后如果那個字段修改了,那么這個字段也會跟着變