資料庫最好從概念模型開始,概念模型中以實體為單位,可以比較清晰的反映實體間關係。
需要特別注意的一點,在建立好乙個新的概念模型後,最好在model options中,將資料項的唯一**和允許重用兩個選項去掉。否則不同實體中的同名屬性會被認為是同乙個資料物件,改乙個另外的也會跟著改。大多數情況下都不需要這種特性,相反它會帶來麻煩。 但是,如果允許不同的表有相同的欄位名,在建立檢視的時候,需要為重複的欄位名指定別名。 有利有弊啊。
做好這個設定後,開始下面的步驟:
1)把建立上實體,最初只需要命名中文名稱。當然,之前需要進行系統的需求調研與分析。
2)分析實體間關係,畫上關係,準確的確實出是一對一還是一對多,對於多對多關係,最好建立關聯實體。
3)建立實體的屬性,先不要管英文名稱和資料型別,只命名中文名稱。新增屬性的過程中,盡量更細緻的修改實體及其關係。並指定各實體的主鍵。 不要讓實體沒有主鍵,這不是個好習慣。
4)對形成的模型進行討論、修正。
6)為各屬性命名英文名稱。這基本就是將來生成的資料庫裡的欄位名稱了。
7)為各屬性指定domain
至此,概念模型建立完成。 預設的圖形中的字元很小,可以通過右鍵彈出選單裡的顯示配置項,設計實體名稱及屬性的字型。 也可以設定不顯示關係的名稱,並修改關係連線的樣式,以獲得好的顯示效果。
也可以設定不同性質的實體為不同的底色,以獲得更明確的效果。但是不建議將實體分在不同的包中,那樣實體關係不太直觀,也會有一些其它麻煩。如果是超大型的系統,實體特別多,合理的劃分包是乙個重要的工作。
在對概念模型反覆的修正後,便可以生成物理模型了。在工具選單裡便有這項功能。
1)注意檢查生成的表間關係是否有問題。這時候概念模型裡的實體就轉化為物理模型裡的表了。一些概念模型裡的關係和約束,生成到物理模型裡可能會出現問題,需要手動修正一下。雖然這種情況不多見。
2)生成的很多外來鍵會重名,可以用check model檢查一下,把重名的外鍵名修改一下。
3)將所有字段設定不允許null值。就是勾上表的屬性視窗中,每個欄位的m列的選擇框,其實就是欄位的mandatory屬性。也可以在概念模型中做這一工作。 這樣做的好處是,在**中一般不會碰到從資料庫中取到的值為null的情況,可以簡化很多任務作。這裡多做的工作絕對是值得的。當然這種情況下,對於很多字段,我們最好提供預設值,以避免一些情況下對插入資料時有過高的要求。 我們不必每個欄位去指定預設值,因為我們應用了domain,前面提到過的一種自定義資料型別。下面我們繼續說明如何給domain新增預設值。
4)新增預設值物件。也許有些人不清楚,預設值是一些資料庫裡的一種物件,就象表、字段、觸發器一樣,預設值在sql
server中就是一種物件。在物理模型裡,可以建立它。一般我們可能只需要三個預設值物件:數字型的預設值、字串型的預設值以及日期型的預設值。 在物理模型中定義上這三個預設值物件。
5)為每個domain指定預設值物件。這樣,每個被指定為這個domain型別的不允許null的字段,就會繼承domain的預設值。注意,這是資料庫的特性,不是pd的特性。不管怎麼說,我們很容易的做了指定預設值的工作。好的資料庫設計可能會考慮的更細緻,比如有些數字型的字段,應該預設為1,而不是0。 這時候你只需要重新指定一下欄位的預設值,他就不會再從domain中繼承預設值了。
6)對物理模型檢查修正後,便可以生成資料庫了。 生成資料庫時有很多選項,比如是否生成一些物件的drop指令碼等,都可以控制的。
注意,在修改好物理模型後,不要再重新生成物理模型,否則很多在物理模型中定義的東西會丟失。如果需要做改動,以物理模型為準,概念模型可以反向生成,或者手動保持同步。
有些概念可能會亂,在這裡把這些名詞整理一下。
概念模型 --- 物理模型 --- 資料庫 ---- 解釋
1)、 實體 --- 表(table)-- 表 --- 實體和表對應,但並不完全是一回事了。
2)、 屬性 --- 字段 -- 字段 --- 不解釋了
3)、 domain --- domain ------自字義型別 --- 其實就是自字義資料型別。
4)、 預設值物件 -- 預設值物件 ---預設值物件 ---含有預設值,但不是預設值。不太常見,但很有用。sql server文件裡說未來的版本可能會取消預設值物件相關的一些東西,誰知道呢。
概念模型、物理模型、資料庫三者是可以相互轉化的,相互的正向或逆向工程。
PowerDesigner學習 概要介紹
定義實體 用滑鼠雙擊實體的符號,可以進入實體的屬性頁。general 專案 name 是用來在模型中標識乙個實體,一般用於模型在介面中的顯示 這個可以通過更改選項設定進行改變 在乙個模型當中,實體的名字不能重複。code 在模型轉化時一般作為物件的物理名稱,比如把實體屬性的code轉化為資料庫中的列...
PowerDesigner學習之零散筆記
本篇文章不定時更新,主要記錄使用powerdesigner時學到的新操作方法 1.檢視 增加資源倉庫使用者和刪除 repository adminitration user 2.防止在模型中修改列 cplumns 中的name,code也會跟著變 tool general options dialo...
power Designer 使用步驟
1.開啟你使用的power designer 我使用的是pd11 file new conceptual data model 生成一張概念模型,這一步就是我們所說的設計 er,由於我們知道概念設計不設計到具體的資料庫,所以在這裡我們不必對資料庫進行配置。2.進行一些er設計的準備工作,這些只是我自...