使用powerdesigner进行数据库设计

fairystepwgl 2011-03-17

使用powerdesigner进行数据库设计确实方便,以下是一些常用的设置

附加:工具栏不见了

调色板(Palette)快捷工具栏不见了

PowerDesigner快捷工具栏palette不见了,怎么重新打开,找回来呢

上网搜索了一下”powerdesigner图形工具栏”,找到了找回PowerDesigner工具栏palette的方法

Tools(工具栏)

customsizetoolbars(自定义工具栏)

palette(调色板)勾选

修改外键命名规则

选择Database—>EditCurrentDBMS

选择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

掌握这种方法后就可以按照自己的想法修改了

生成建库脚本SQL文件中的表头注释很讨厌,可以在Databse->GenerateDatabase(Ctrl+G)窗口中,选择Options卡片,去掉Usage的Title钩选项即可。

添加外键

Model->References新建一条外键后,双击进入外键属性,在“Joins”卡片中可以选择子表的外键字段

如何实现Name和code不自动相等

如何实现在CDM中创建Entity时,Name和Code不自动对应

设置tools--Gerneraloptions--->dialog---->nametocodemirroring

-------------------------------------

如何把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值(可以是中文)

---------------------------------------------------------------------------------

POWERdESIGEN自增长列的设置

PDM里查看表的属性,Columns选项卡,选中整列,查看列属性,点左上方的properties图标(有手形图案的那个),此时打开一个设置窗口,General选项卡里面进行设置.

在列属性的General标签页里有个Identity复选框,勾上就行了

--------------------------------------

1如何在PowerDesigner下建索引

2如何在PowerDesigner下建自增列

3如何在PowerDesigner下检查设计模型

1如何在PowerDesigner下建索引

1双击表设计图,出来TableProperties,在Tab页中选择Indexes

2单击新建索引的属性,出现IndexexProperties

3增加一个索引包含的字段

2如何在PowerDesigner下建自增列

2使用SqlServer数据库中的下列语句来完成

建表语句中,在要做为自增列的字段中,加上如下

IDENTITY(1,1)

还有可以使用下面语句,重置自增种子

dbcccheckident(ConfigSys,reseed,0);

3如何在PowerDesigner下检查设计模型

1在菜单栏中选择Tools-?CheckModel,如下图

2选择要检查的每项设置

3确定后,将出来检查结果汇总信息

1.设置CDM生成PDM时的错误检查

Tools-->CheckModel

2.如何防止一对一的关系生成两个引用(外键)

要定义关系的支配方向,占支配地位的实体(有D标志)变为父表。

在cdm中双击一对一关系->Detail->Dominantrole选择支配关系

3.PowerDesigner8中的CDM设计的外键作主键的问题

两个实体之间是一对一的关系。两个实体的标识符是“一样的”--但是好像CDM中不允许相同。这样的情况怎么处理?

CDM里好像没有外键,我是说转换成PDM之后,外键又要做表的主键,在对应的CDM里是怎么设置的?

双击关系,在弹出的RelationshipProperties窗口中选择Detail选项,然后将Dependent复选框选中,即可

4.禁止根据name自动输入code

Tools-->GeneralOptions-->Dialog-->取消选中NametoCodemirroring

这段时间,使用PD做数据库模型,感觉很不错,将自已的经验总给一下.还有许多功能我没时间总结,以后有时间,继续补吧

1如何在PowerDesigner下建索引

2如何在PowerDesigner下建自增列

3如何在PowerDesigner下检查设计模型

1如何在PowerDesigner下建索引

1双击表设计图,出来TableProperties,在Tab页中选择Indexes

2单击新建索引的属性,出现IndexexProperties

3增加一个索引包含的字段

2如何在PowerDesigner下建自增列

2使用SqlServer数据库中的下列语句来完成

建表语句中,在要做为自增列的字段中,加上如下

IDENTITY(1,1)

还有可以使用下面语句,重置自增种子

dbcccheckident(ConfigSys,reseed,0);

3如何在PowerDesigner下检查设计模型

1在菜单栏中选择Tools-?CheckModel,如下图

2选择要检查的每项设置

3确定后,将出来检查结果汇总信息

在powerdesigner中设置自增得索引不用那么麻烦,其实只要在概念模型中在属性中把columns中要自增得字段得类型设置成为serial就可以了!

1。使用PowerDesigner检查数据库设计错误~

PowerDesigner还可用于快速检测新模型中的数据库设计错误。

检查新的模式:

从[Tools]菜单中选择[CheckModel]。

此时,就会出现[CheckModelParameters]对话框。可以使用缺省参数。

另外也可以直接在空白处单击右键,选择CheckModel...即可,我一般喜欢这样用。

单击[确定]。

此时,在[ResultList]中就会显示[CheckModel]的结果。

2。如何将ConceptualDataModel(CDM)转换成PhysicalDataModel(PDM)?

即将概念数据模型转换成物理数据模型。

二者的区别是,CDM是纯粹概念上的模型,PDM是和具体的数据库类型相关的,比如SQLServer2000或者Oracle。生成SQL语句当然也就需要从PDM生成。

在菜单上选择Tools->GeneratePhisicalDataModel

最后选择你的数据库类型,即可。

3。使用PowerDesigner生成SQL语句~

可以使用PowerDesigner生成一个SQL脚本,该脚本用于实施模型的所有组件。然后,使用SQL脚本生成一个数据库。

这时候要确保你用的是PDM。

生成SQL脚本以新建数据库:

从[Database]菜单中选择[GenerateDatabase]。

此时,就会出现[DatabaseGeneration]对话框

在[Directory]字段中键入c:Temp,并在[FileName]字段中键入NewDemo.sql。

确保选中了[Generation]。

单击[Database]选项卡,并确保选中了[CreateDatabase]。

浏览其它选项卡,以查看控制所生成脚本的许多其它属性的选项。

单击[确定]。

创建脚本后,就会出现[Result]对话框。

4。为什么出现Warning:tableExistenceofindex表名?

说明该表没有建立索引。不过这是一个警告,不是错误,可以不用理会它。

5。如何建立联合主键?

联合主键就是一个表里面有多个主键,比如一份学生选课的表里面,学生ID和课程ID就同时是主键。

在设置Attributes,把2个字段的P那项都勾上,P表示PrimaryKey主键。

6。如何建立外键ForeignKey?

在PowerDesigner中,通过建立关系Relationship就可以自动建立外键,不需要手动添加。

而建立Relationship有2种办法:可以通过菜单选择Model->Relationships...,也可以通过在右边的工具栏中拖拽Relationship控件。

7。如何生成数据字典?

通过菜单Report->ReportWizard...可以生成

注意可以选择Template.因为我是通过PDM生成,所以选择了StandardPhysicalTemplate~

1、安装PDv11.0版

2、由pdm生成建表脚本时,字段超过15字符就发生错误(oracle)

原因未知,解决办法是打开PDM后,会出现Database的菜单栏,进入Database-EditCurrentDBMS-script-objects-column-maxlen,把value值调大(原为30),比如改成60。出现表或者其它对象的长度也有这种错误的话都可以选择对应的objects照此种方法更改!

或者使用下面的这种方法:

生成建表脚本时会弹出Databasegeneration提示框:把options-checkmodel的小勾给去掉,就是不进行检查(不推荐)!

或者可以修改C:\ProgramFiles\Sybase\PowerDesignerTrial11\ResourceFiles\DBMS\oracl9i2.xdb文件

修改好后,再cdm转为pdm时,选择“CopytheDBMSdefinitioninmodel”把把这个资源文件拷贝到模型中。

3、生成的建表脚本中如何把对象的双引号去掉?

打开cdm的情况下,进入Tools-ModelOptions-NamingConvention,把Name和Code的标签的Charctercase选项设置成Uppercase或者Lowercase,只要不是MixedCase就行!

或者选择Database->Editcurrentdatabase->Script->Sql->Format,有一项CaseSensitivityUsingQuote,它的comment为“Determinesifthecasesensitivityforidentifiersismanagedusingdoublequotes”,表示是否适用双引号来规定标识符的大小写,可以看到右边的values默认值为“YES”,改为“No”即可!

或者在打开pdm的情况下,进入Tools-ModelOptions-NamingConvention,把Name和Code的标签的Charctercase选项设置成Uppercase就可以!

4、建立一个表后,为何检测出现Existenceofindex的警告

Atableshouldcontainatleastonecolumn,oneindex,onekey,andonereference.

可以不检查Existenceofindex这项,也就没有这个警告错误了!

意思是说没有给表建立索引,而一个表一般至少要有一个索引,这是一个警告,不用管也没有关系!

5、创建一个表在修改字段的时候,一修改name的内容,code也跟着变化,如何让code不随着name变化

Name和Code的右侧都有一个按钮“=”,如果需要不同步的话,把这个按钮弹起来就可以了。

Tools->GeneralOptions->Dialog->NametoCodeMirroring(去掉)

6、由CDM生成PDM时,自动生成的外键的重命名

PDMGenerationOptions->Detail->FKindexnames默认是%REFR%_FK,改为FK_%REFRCODE%,其中%REFRCODE%指的就是CDM中Relationship的code!另外自动生成的父字段的规则是PDMGenerationOptions->Detail->FKcolumnnametemplate中设置的,默认是%.3:PARENT%_%COLUMN%,可以改为Par%COLUMN%表示是父字段!

7、如何防止一对一的关系生成两个引用(外键)

要定义关系的支配方向,占支配地位的实体(有D标志)变为父表。

在cdm中双击一对一关系->Detail->Dominantrole选择支配关系

8、修改报表模板中一些术语的定义

即文件:C:\ProgramFiles\Sybase\PowerDesignerTrial11\ResourceFiles\ReportLanguages\Chinese.xrl

Tools-Resources-ReportLanguages-选择Chinese-单击Properties或双击目标

修改某些对象的名称:ObjectAttributes\PhysicalDataModel\Column\

ForeignKey:外键

Mandatory:为空

Primary:主键

Table:表

用查找替换,把“表格”替换成“表”

修改显示的内容为别的:ValuesMapping\Lists\Standard,添加TRUE的转化列为是,FALSE的转化列为空

另外Report-TitlePage里可以设置标题信息

1。pd中复制一列是,实际上是一个链接。源列的变动同时体现在复制列上

2。数据库设计通常步骤:CDM确定主要结构--》生成PDM--》在PDM上修改,必要时生成CDM

3。若由pdm生成cdm再生成pdm,在pdm中修改过的外键名将被改回到默认值

4。必要时可以通过修改模板(Database-EditCurrentDataBase)改变脚本的格式。例如:

Script-Objects-Column-Add的Value中开头增加一行“--%COLNNAME%”以便在脚本中显示列的中英文对照

5。去掉讨厌的name、code映射:Tools-GeneralOptions-cleartheNametoCodemirroringcheckbox

6。对于大小写不敏感的数据库(如Oracle),PowerDesign在创建脚本时自动给表名和字段名加上双引号,以“强字符串”形式来获取区分大小写,这样给SQL语句的编写制造很多麻烦。去掉这个添足的功能:

Database-〉EditCurrentDBMS-〉Script.-〉Sql-〉Format-〉CaseSensitivityUsingQuote

右边面板参数值Value选择No

7。由cdm生成pdm,可以控制是否将关系生成引用;由pdm生成脚本,可以控制是否将引用生成外键

8。对于oracle而言,为表设置选项(如tablespaceGPSSYSTEM)可使其创建到正确的表空间;为主键设置选项(usingindextablespaceGPSINDEX)使索引创建到正确的表空间中

1、安装PDv12.0版

2、由pdm生成建表脚本时,字段超过15字符就发生错误(oracle)

原因未知,解决办法是打开PDM后,会出现Database的菜单栏,进入Database-EditCurrentDBMS-script-objects-column-maxlen,把value值调大(原为30),比如改成60。出现表或者其它对象的长度也有这种错误的话都可以选择对应的objects照此种方法更改!

或者使用下面的这种方法:

生成建表脚本时会弹出Databasegeneration提示框:把options-checkmodel的小勾给去掉,就是不进行检查(不推荐)!

或者可以修改C:ProgramFilesSybasePowerDesignerTrial11ResourceFilesDBMSoracl9i2.xdb文件

修改好后,再cdm转为pdm时,选择“CopytheDBMSdefinitioninmodel”把把这个资源文件拷贝到模型中。

3、生成的建表脚本中如何把对象的双引号去掉?

打开cdm的情况下,进入Tools-ModelOptions-NamingConvention,把Name和Code的标签的Charctercase选项设置成Uppercase或者Lowercase,只要不是MixedCase就行!

或者选择Database->Editcurrentdatabase->Script->Sql->Format,有一项CaseSensitivityUsingQuote,它的comment为“Determinesifthecasesensitivityforidentifiersismanagedusingdoublequotes”,表示是否适用双引号来规定标识符的大小写,可以看到右边的values默认值为“YES”,改为“No”即可!

或者在打开pdm的情况下,进入Tools-ModelOptions-NamingConvention,把Name和Code的标签的Charctercase选项设置成Uppercase就可以!

4、建立一个表后,为何检测出现Existenceofindex的警告

Atableshouldcontainatleastonecolumn,oneindex,onekey,andonereference.

可以不检查Existenceofindex这项,也就没有这个警告错误了!

意思是说没有给表建立索引,而一个表一般至少要有一个索引,这是一个警告,不用管也没有关系!

5、创建一个表在修改字段的时候,一修改name的内容,code也跟着变化,如何让code不随着name变化

Name和Code的右侧都有一个按钮“=”,如果需要不同步的话,把这个按钮弹起来就可以了。

Tools->GeneralOptions->Dialog->NametoCodeMirroring(去掉)

6、由CDM生成PDM时,自动生成的外键的重命名

PDMGenerationOptions->Detail->FKindexnames默认是%REFR%_FK,改为FK_%REFRCODE%,其中%REFRCODE%指的就是CDM中Relationship的code!另外自动生成的父字段的规则是PDMGenerationOptions->Detail->FKcolumnnametemplate中设置的,默认是%.3:PARENT%_%COLUMN%,可以改为Par%COLUMN%表示是父字段!

7、如何防止一对一的关系生成两个引用(外键)

要定义关系的支配方向,占支配地位的实体(有D标志)变为父表。

在cdm中双击一对一关系->Detail->Dominantrole选择支配关系

8、修改报表模板中一些术语的定义

即文件:C:ProgramFilesSybasePowerDesignerTrial11ResourceFilesReportLanguagesChinese.xrl

Tools-Resources-ReportLanguages-选择Chinese-单击Properties或双击目标

修改某些对象的名称:ObjectAttributesPhysicalDataModelColumn

ForeignKey:外键

Mandatory:为空

Primary:主键

Table:表

用查找替换,把“表格”替换成“表”

修改显示的内容为别的:ValuesMappingListsStandard,添加TRUE的转化列为是,FALSE的转化列为空

另外Report-TitlePage里可以设置标题信息。

PowerDesign的使用主要是DBMS的配置

1、修改建表脚本生成规则。如果每个表格都有相同的字段,可以如下修改:

Database->EditCurrentDBMS展开Script->Object->Table->Create见右下的Value值,可以直接修改如下:/*tablename:%TNAME%*/

createtable[%QUALIFIER%]%TABLE%(

%TABLDEFN%

tschar(19)nulldefaultconvert(char(19),getdate(),20),

drsmallintnulldefault0

)

[%OPTIONS%]

其中的ts、dr两列会在生成SQL脚本的时候自动的插入每个表格中,其中的%TNAME%变量是给每个表格的SQL添加一个该表的Name值注释。

2、修改字段生成规则。要给每个字段都添加一个注释的话,同一窗口中展开Script->Object->Column->Add的Value修改为:

%20:COLUMN%[%COMPUTE%?AS(%COMPUTE%):%20:DATATYPE%[%IDENTITY%?%IDENTITY%:[%NULL%][%NOTNULL%]][default%DEFAULT%]

[[constraint%CONSTNAME%]check(%CONSTRAINT%)]]/*%COLNNAME%*/

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

3、修改外键命名规则。选择Database—>EditCurrentDBMS

选择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

掌握这种方法后就可以按照自己的想法修改了

生成建库脚本SQL文件中的表头注释很讨厌,可以在Databse->GenerateDatabase(Ctrl+G)窗口中,选择Options卡片,去掉Usage的Title钩选项即可。

4、添加外键

Model->References新建一条外键后,双击进入外键属性,在“Joins”卡片中可以选择子表的外键字段

5、去掉生成的SQL脚本双引号的问题:ORACLE8I2::Script\Sql\Format\CaseSensitivityUsingQuote改成No,默认是Yes所以会有双引号。

在修改name的时候,code的值将跟着变动,很不方便。修改方法:PowerDesign中的选项菜单里修改,在[Tool]-->[GeneralOptions]->[Dialog]->[Operatingmodes]->[NametoCodemirroring],这里默认是让名称和代码同步,将前面的复选框去掉就行了。

6、有关Powerdesgner数据模型设计中,属性名同名问题的解决方法

PowerDesigner默认在CDM中不能存在相同名称的实体属性,这也是考虑到可能产生的一些如主键外键等名称冲突问题,但当我们进行实际数据库设计时,可能会多次使用相同数据项(DataItem)便于理解各实体。为此需要对更改PowerDesigner相关设置。软件默认为DataItem不能重复使用(重名),需要进行以下操作:

选择Tools->ModelOptions,在ModelSetting设置目录中,将DataItem下的UniqueCode取消选中即可,系统默认将UniqueCode和AllowReuse均选中。

同时该设置均是面向特定模型的,即针对当前模型有效,若希望在其它模型中也有此命名设置,则需要重新进行设置。不过在CheckModel时,如果选择全部Check,则依旧会报DataItem重名的错误信息,这时需要我们在人为检查确认数据项无误时,可以在选择不对DataItem不检查,各种数据类型对应匹配(这里只给出与SQLServer中的常用对应类型,其它DBMS可以使用类似处理)

1如何在PowerDesigner下建索引

2如何在PowerDesigner下建自增列

3如何在PowerDesigner下检查设计模型

1如何在PowerDesigner下建索引

1双击表设计图,出来TableProperties,在Tab页中选择Indexes

2单击新建索引的属性,出现IndexexProperties

3增加一个索引包含的字段

2如何在PowerDesigner下建自增列

使用SqlServer数据库中的下列语句来完成

建表语句中,在要做为自增列的字段中,加上如下

IDENTITY(1,1)

还有可以使用下面语句,重置自增种子

dbcccheckident(ConfigSys,reseed,0);

3如何在PowerDesigner下检查设计模型

1在菜单栏中选择Tools-?CheckModel,如下图

2选择要检查的每项设置

3确定后,将出来检查结果汇总信息

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zclzzz/archive/2010/09/30/5915779.aspx

相关推荐