資料庫建模——powerdesiger常見問題總結

1向2飛發表於2013-07-31

問題一、 PowerDesigner 快捷工具欄 palette 不見了,怎麼重新開啟?

解決方法:Tools(工具欄)-----customsize -----toolbars(自定義工具欄)------palette(調色盤)勾選


問題二、PowerDesigner如何修改外來鍵命名規則
解決方法:

1》選擇Database—>Edit Current DBMS----Scripts-》Objects-》Reference--ConstName
可以發現右側的Value為:FK_%.U8:CHILD%_%.U9:REFR%_%.U8:PARENT%
命名方法是:'FK_'+8位子表名+9位Reference名+8位父表名。

你可以自定義為: FK_%.U7:CHILD%_RELATIONS_%.U7:PARENT%
可以使FK名稱變為FK_TABLE_2_RELATIONS_TABLE_1
掌握這種方法後就可以按照自己的想法修改了
2》生成建庫指令碼SQL檔案中的表頭註釋很討厭,可以在
Databse -> Generate Database (Ctrl+G)視窗中,選擇Options卡片,去掉Usage的Title鉤選項即可。
問題三、PowerDesigner 新增外來鍵

解決方法:
Model -> References新建一條外來鍵後,雙擊進入外來鍵屬性,在“Joins”卡片中可以選擇子表的外來鍵欄位

問題四、PowerDesigner如何實現Name和code不自動相等
解決方法:
設定tools--Gerneral options---&gtdialog----&gtname to code mirroring


問題五、PowerDesigner 如何把NAME 列在 scrip裡顯示出來
解決方法:

修改欄位生成規則。要給每個欄位都新增一個註釋的話,同一視窗中展開 Script. -> Object -> Column -> Add 的
Value修改為:

%20:COLUMN% [%COMPUTE%?AS (%COMPUTE%):%20:DATATYPE%

[%IDENTITY%?%IDENTITY%:[%NULL%][%NOTNULL%]][ default %DEFAULT%]
    
[[constraint %CONSTNAME%] check (%CONSTRAINT%)]]

其中的%COLNNAME%就是列的Name值(可以是中文)


問題六、PowerDesigner 自增長列的設定
解決方法:

PDM裡檢視錶的屬性,Columns選項卡,選中整列,檢視列屬性,點左上方的properties圖示(有手形圖案的那個),此時開啟一個設定視窗,General選項卡里面進行設定. 
在列屬性的General標籤頁裡有個Identity核取方塊,勾上就行了,主要是針對sqlserver資料庫

問題七、 PowerDesigner如何建索引
解決方法:

1 雙擊表設計圖,出來Table Properties,在Tab
頁中選擇 Indexes

2 單擊新建索引的屬性,出現Indexex Properties

3 增加一個索引包含的欄位


問題八、PowerDesigner 如何檢查設計模型
解決方法:

1 在選單欄中選擇 Tools ---- Check Model

2 選擇要檢查的每項設定

3 確定後,將出來檢查結果彙總資訊

問題九、設定CDM生成PDM時的錯誤檢查
解決方法:
Tools --&gt Check Model


問題十、如何防止cdm中“一對一關係”生成兩個引用(外來鍵)
解決方法:

要定義關係的支配方向,佔支配地位的實體(有D標誌)變為父表。
在cdm中雙擊一對一關係->cardinalities->Dominant role選擇支配關係

問題十一、PowerDesigner8中的CDM設計的外來鍵作主鍵的問題

兩個實體之間是一對一的關係。兩個實體的識別符號是“一樣的”--但是好像CDM中不允許相同。這樣的情況怎麼處理?
CDM裡好像沒有外來鍵,我是說轉換成PDM之後,外來鍵又要做表的主鍵,在對應的CDM裡是怎麼設定的?

解決方法:
雙擊關係,在彈出的Relationship Properties視窗中選擇cardinalities選項,然後將Dependent核取方塊選中,即可

問題十二、如何將CDM轉換成Physical DataModel(PDM)?
解決方法:
二者的區別是,CDM是純粹概念上的模型,PDM是和具體的資料庫型別相關的,比如SQL Server 2000或者Oracle。生成SQL語句當然也就需要從PDM生成。
在選單上選擇Tools -> Generate Phisical Data Model
最後選擇你的資料庫型別,即可。


問題十三、使用PowerDesigner生成SQL語句
解決方法:
可以使用 PowerDesigner 生成一個 SQL 指令碼,該指令碼用於實施模型的所有元件,然後,使用 SQL 指令碼生成一個資料庫,這時候要確保你用的是PDM。
    PDM生成建庫指令碼SQL:
Database------&gtGenerate Database
彈出: Database Generation對話方塊
1》Directory:生成檔案儲存路徑
2》File Name:定義生成檔名
3》script. Generation:選中
4》option選項卡中,並確保選中了 Create Database


問題十四、為什麼出現Warning : table Existence of index 表名 ?
解決方法:

說明該表沒有建立索引。不過這是一個警告,不是錯誤,可以不用理會它。

問題十五、如何建立聯合主鍵?
解決方法:

聯合主鍵就是一個表裡面有多個主鍵,比如一份學生選課的表裡面,學生ID和課程ID就同時是主鍵。

在設定Attributes,把2個欄位的P那項都勾上,P表示Primary Key主鍵。

問題十六、如何建立外來鍵Foreign Key?
解決方法:

在PowerDesigner中,通過建立關係Relationship就可以自動建立外來鍵,不需要手動新增。

建立Relationship有2種辦法:

1》可以通過選單選擇Model -> Relationships

2》可以通過在右邊的工具欄中拖拽Relationship控制元件。

問題十七、如何生成資料字典?
解決方法:
通過選單Report -> Report Wizard.

問題十八、由生成建表指令碼時,欄位超過15字元就發生錯誤

解決方法:
1》Database - Edit Current DBMS -script-objects-column-maxlen,把value值調大(原為30),比如改成60。出現表或者其它物件的長度也有這種錯誤的話都可以選擇對應的objects照此種方法更改!
2》生成建表指令碼時會彈出Database generation提示框:把options - check model的小勾給去掉,就是不進行檢查(不推薦)!
3》修改C:/Program Files/Sybase/PowerDesigner Trial 11/Resource Files/DBMS/oracl9i2.xdb檔案修改好後,再cdm轉為pdm時,選擇“Copy the DBMS definition in
model”把把這個資原始檔拷貝到模型中。
問題十九、生成的建表指令碼中如何把物件的雙引號去掉?

解決方法:

    1》Tools->Model Options->Naming Convention,把Name和Code的標籤的Charcter case選項設定成Uppercase或者Lowercase,只要不是Mixed Case就行
    2》Database->Edit current DBMS->Script->Sql->Format->CaseSensitivityUsingQuote,它的 comment為“Determines if the case sensitivity for identifiers is managed using double quotes”,表示是否適用雙引號來規定識別符號的大小寫,可以看到右邊的values預設值為“YES”,改為“No”即可!
問題二十、修改報表模板中一些術語的定義

解決方法:

即檔案:C:/Program Files/Sybase/PowerDesigner
Trial 11/Resource Files/Report Languages/Chinese.xrl
Tools-Resources-Report Languages-選擇Chinese-單擊Properties或雙擊目標
修改某些物件的名稱:Object Attributes/Physical
Data Model/Column/
        ForeignKey:外來鍵
        Mandatory:為空
        Primary:主鍵
        Table:表
用查詢替換,把“表格”替換成“表”
修改顯示的內容為別的:Values
Mapping/Lists/Standard,新增TRUE的轉化列為是,FALSE的轉化列為空另外Report-Title Page裡可以設定標題資訊

問題二十一、pd中複製一列是,實際上是一個連結。源列的變動同時體現在複製列上

問題二十二、資料庫設計通常步驟:

CDM確定主要結構--》生成PDM--》在PDM上修改,必要時生成CDM

問題二十三、若由pdm生成cdm再生成pdm,在pdm中修改過的外來鍵名將被改回到預設值

問題二十四、必要時可以通過修改模板(Database-Edit Current DBMS)改變指令碼的格式。例如:
Script-Objects-Column-Add的Value中開頭增加一行“--%COLNNAME%”以便在指令碼中顯示列的中英文對照

問題二十五、對於oracle而言,為表設定選項(如tablespace GPSSYSTEM)可使其建立到正確的表空間;為主鍵設定選項(using index tablespace GPSINDEX)使索引建立到正確的表空間中

問題二十六、有關Powerdesgner資料模型設計中,屬性名同名問題的解決方法
PowerDesigner預設在CDM中不能存在相同名稱的實體 屬性,這也是考慮到可能產生的一些如主鍵外來鍵等名稱衝突問題,但當我們進行實際資料庫設計時,可能會多次使用相同資料項(DataItem)便於理解各實 體。為此需要對更改PowerDesigner相關設定。軟體預設為DataItem不能重複使用(重名),需要進行以下操作:
選擇Tools->Model Options,在Model Setting設定目錄中,將Data Item下的Unique Code取消選中即可,系統預設將Unique Code和Allow Reuse均選中。
同 時該設定均是面向特定模型的,即針對當前模型有效,若希望在其它模型中也有此命名設定,則需要重新進行設定。不過在Check Model時,如果選擇全部Check,則依舊會報DataItem重名的錯誤資訊,這時需要我們在人為檢查確認資料項無誤時,可以在選擇不對 DataItem不檢查,各種資料型別對應匹配(這裡只給出與SQL Server中的常用對應型別,其它DBMS可以使用類似處理)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23890223/viewspace-767552/,如需轉載,請註明出處,否則將追究法律責任。

相關文章