PowerDesigner常见问题解决与设置集锦.docx
《PowerDesigner常见问题解决与设置集锦.docx》由会员分享,可在线阅读,更多相关《PowerDesigner常见问题解决与设置集锦.docx(15页珍藏版)》请在冰豆网上搜索。
PowerDesigner常见问题解决与设置集锦
PowerDesigner15使用时的十五个问题
一般常用的有CDM,PDM,UML建模,CDM可以转为PDM。
支持正向[生成数据库]和逆向工程[从数据库中生成],并直接关联到到数据库中,PDM可以直接和数据库进行关联,并将数据库,表,视图,触发器等数据库对象生成到数据库中,也可将这些对象更新到PDM中。
PowerDesigner的几个主要常用菜单是MODEL、DATEBASE、Tool,这三个菜单下命令使用比较多,要熟悉。
PD还可以用来画用例图,序列图,类图等UML图。
也可以画企业架构图,软件应用架构图等等图形
15个问题列表:
No.1:
是不是一定要从CDM开始设计,然后在进行PDM的设计?
NO.2:
工具栏palette不见了,如何把它找出来?
NO.3:
如何建立与数据库的关联?
NO.4:
域和数据项有何作用?
No.5:
如何生成主键的自定义增长列,SQLServer和Oracle数据分别是如何操作的?
No.6:
NAME和CODE联动,如何取消?
NO.7.如何实现字段的NAME和Comment属性互换?
NO.8:
如何修改某个对象的命名规则,比如外键,比如主键,比如触发器等?
No.9:
如何用PD生成测试数据,以便测试?
No.10如何把CODE的NAME中文也生成在脚本中,也就是列名后就是NAME的说明文字?
NO.11如何将数据库结构,表名,表的字段导出到Word中,或者生成HTML文件以便查看?
No.12如何去除生成SQL时的双引号问题,双引号在Oracle中可以保证大小写,却异常麻烦?
NO.13如何修改PD的显示样式?
No.14如何去除表名,字段的长度限制?
No.15如何进行数据库的逆向工程?
说明:
本文提到的PD基于PD15.英文版。
No1:
是不是一定要从CDM开始设计,然后在进行PDM的设计?
本人觉得没有必要,项目的大小、熟悉程度、起步和个人习惯不一样,熟练业务的,项目小的直接用PDM设计未尝不可。
NO2:
工具栏palette不见了,如何把它找出来?
这个问题我找了所有的菜单才找到,在【Tools】-【CustomizeToolbars】点击打开,列表项里的【palette】选中即可,此外,这个窗口中还可以设计对齐的方式等等。
NO3:
如何建立与数据库的关联?
详细建立:
PowerDesigner建立与数据库的连接,以便生成数据库和从数据库生成到PD中。
[Oracle10G版]
PowerDesigner建立与数据库的连接,以便生成数据库和从数据库生成到PD中。
[SQLSERVER2005版]
NO4:
域和数据项有何作用?
域和数据项的作用是为了复用而设定的,数据类型可以保持一致,比如不少表里都有经纬度,则可以定义两个通用的域,如图所示,点击【Model】-【Domains】出现如图所示,建了三个域,那么建表时可以复用,打开列的属性的时候就可以复用了,如果域的类型发生了改变,则该列的数据类型也发生改变。
数据项作用类似于此。
还有一些,比如主键递增ID
No.5如何生成主键的自定义增长列,SQLServer和Oracle数据分别是如何操作的?
SQLServer版本:
Oracle版本:
No.6NAME和CODE联动,如何取消?
要熟悉几个常用的菜单,MODEL,DATABASE,Tools,REPORT等等,在【Tools】下找到【GeneralOptions】如图所示:
NO7.如何实现字段的NAME和Comment属性互换?
还有一个,如果你只想生成的时候,把NAME自动更新到Comment列,是这样操作的:
NO.8:
如何修改某个对象的命名规则,比如外键,比如主键,比如触发器等?
下面以主键为例,一般每个表都有一个主键,那主键的命名规则如何修改定义呢,
菜单:
【Database】--【EditCurrentDBMS】,如图所示:
No.9:
如何用PD生成测试数据,以便测试?
Powerdesigner中如何生成测试数据
No.10:
如何把CODE的NAME中文也生成在脚本中,也就是列名后就是NAME的说明文字?
修改字段生成规则。
要给每个字段都添加一个注释的话,如图所示:
NO.11:
如何将数据库结构,表名,表的字段导出到Word中,或者生成HTML文件以便查看?
这个涉及到数据库的脚本中,也就是将表生成数据库文档,可以是HTML格式,也可以是DOC格式.如图所示:
如果需要添加数据类型,注释等更多的信息,右键,选择【layout】,选择你需要的显示的信息即可。
No.12:
如何去除生成SQL时的双引号问题,双引号在Oracle中可以保证大小写,却异常麻烦?
生成SQL语句时,表名和字段名都是带双引号,这个在ORACLE中以后使用时都要带上""非常的麻烦,必须生成脚本时去除:
【Database】--【EditCurrentDBMS】,如图所示:
NO.13如何修改PD的显示样式?
设计PDM文档时,样式不一样,这个在哪里设置呢,如图所示,比如修改表的显示样式。
【Tools】--【Displaypreference】,
点击修改按钮,就可以修改表的样式了,包括字体大小,颜色,线的形状、阴影等等。
No.14如何去除表名,字段的长度限制?
当生成脚本时,有的表名或者列名莫名其妙的缩短了,这时因为限定了长度,这是把双刃剑,如果要强制表名或者字段名在某个范围内,这个作用刚好,如果不想限制,就需要修改那个限制的值了。
【Database】--【EditCurrentDBMS]--依次找到:
Script\Objects\Table
No.15如何进行数据库的逆向工程?
如何进行数据库,比如ORACLE,SQLSERVER的逆向工程,将数据库导入到PD中
这是我平常遇到的几个问题,大家有什么问题,一起交流哦。
有一个问题问一下:
有的时候,每个表都有一些默认字段,比如创建人,创建时间,修改时间,修改人,如何默认情况下添加每个表都有呢?
PowerDesigner常见问题解决与设置集锦
一.powerdesiner的自增长列
1.如果dbms是MsSql,则选定表后,database->editcurrentdbms->出现DBMSproperties对话框,选择General页,左侧的树选择SQL2000->Profile->Column->Extended
Attributes下面的ExtIdentityIncrement是步进值,ExtIdentitySeed是起始值,分别设定默认值,后返回。
2.在表的属性对话框里面,选择Clumns页,按Ctrl+U,在Idenitity前面打上钩。
如有必要,也可以将
ExtIdentityIncrement和ExtIdentitySeed也打上勾,这样在设定Idenitity时也可以直接指定起始值和步进值了。
btw:
我用的是PD11,刚刚开始学PD,关于Identity的设定也是找了好久。
3.对于qlserver,在表的属性对话框里面,选择Clumns页,按Alt+enter进入列的属性页面,在右下角勾选Idenitity属性即可.
二.sql语句中表名与字段名前的引号去除:
打开cdm的情况下,进入Tools-ModelOptions-NamingConvention,把Name和Code的标签的Charctercase选项设置成Uppercase或者Lowercase,只要不是MixedCase就行!
或者选择Database->Editcurrentdatabase->Script->Sql->Format,有一项CaseSensitivityUsingQuote,它的comment为“Determinesifthecasesensitivityfor
identifiersismanagedusingdoublequotes”,表示是否适用双引号来规定标识符的大小写,可以看到右边的values默认值为“YES”,改为“No”即可!
或者在打开pdm的情况下,进入Tools-ModelOptions-NamingConvention,把Name和Code的标签的Charctercase选项设置成Uppercase就可以!
三.在修改name的时候,code的值将跟着变动,很不方便
修改方法:
PowerDesign中的选项菜单里修改,在[Tool]-->[GeneralOptions]->[Dialog]->[Operatingmodes]->[NametoCodemirroring],这里默认是让名称和代码同步,
将前面的复选框去掉就行了。
四.由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”把把这个资源文件拷贝到模型中。
五.由CDM生成PDM时,自动生成的外键的重命名
PDMGenerationOptions->Detail->FKindexnames默认是%REFR%_FK,改为FK_%REFRCODE%,其中%REFRCODE%指的就是CDM中Relationship的code!
另外自动生成的父字段的规
则是PDMGenerationOptions->Detail->FKcolumnnametemplate中设置的,默认是%.3:
PARENT%_%COLUMN%,可以改为Par%COLUMN%表示是父字段!
六.建立一个表后,为何检测出现Existenceofindex的警告
Atableshouldcontainatleastonecolumn,oneindex,onekey,andonereference.
可以不检查Existenceofindex这项,也就没有这个警告错误了!
意思是说没有给表建立索引,而一个表一般至少要有一个索引,这是一个警告,不用管也没有关系!
七.如何防止一对一的关系生成两个引用(外键)
要定义关系的支配方向,占支配地位的实体(有D标志)变为父表。
在cdm中双击一对一关系->Detail->Dominantrole选择支配关系
八.修改报表模板中一些术语的定义
即文件:
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里可以设置标题信息
十.PowerDesigner生成SQL的Existenceofrefernce错误问题
现象:
用PowerDesigner生成SQL语句时,提示Existenceofrefernce错误。
原因:
该表没有与其他表的关联(如外键等),而PowerDesigner需要存在一个refernce才能生成SQL.
解决方法:
在工具栏空白处右键打开Palette面板,选中Link/ExtendedDependency按钮,然后在提示出错的表上添加到自己的Dependency。
重新生成SQL,你将发现刚才提示的错误没有了,问题解决。
十一.利用PowerDesigner批量生成测试数据
主要解决方法:
A:
在PowerDesigner建表
B:
然后给每一个表的字段建立相应的摘要文件
步骤如下:
Model->TestDataProfiles配置每一个字段摘要文件General:
输入Name、Code、
选择Class(数字、字符、时间)类型
选择GenerationSource:
Automatic、List、ODBC、FileDetail:
配置字段相关信息
所有字段摘要文件配置完成后双击该表->选择字段->Detail->选择TestDataParameters摘要文件如果字段值与其它字段有关系在:
ComputedExpression中输入计算列--生成测
试数据:
DataBase->GenerationTestData->
选择:
Genration类型(Sript、ODBC)
Selection(选择要生成的表)
TestDataGenration(Defaultnumberofrows生成记录行数)
1.使用PD12时出现以下错误:
Referenceconstraintnamemaximum
lengthislimitedto30characters
Keyconstraintnamemaximumlength
islimitedto30characters
Tablecodemaximumlength
Columncodemaximumlength
……
导致生成建表SQL时通不过,细究原因原来是默认设置的问题,改下就可以了。
调整以下参数:
Database=>EditcurrentDBMS数据库类型:
:
Script\Objects\MaxConstLenvalue=>255
Database=>EditcurrentDBMS数据库类型:
:
Script\Objects\Table\Maxlenvalue=>255
Database=>EditcurrentDBMS数据库类型:
:
Script\Objects\Column\Maxlenvalue=>255
但是要注意的是,表名、列名、主键等不要超过30个字符,否则Oracle不认。
2.附:
生成数据库脚本
Database=>Generatedatabase
-----------------------------
-----------------------------
默认生成的SQL语句(表名、字段名等)都带双引号,导致用SQLPlus插入Oracle数据库时表名与表列都带""号,要解决这个问题,在数据库中做如下设置:
Database->EditCurrentDBMS...->Script->Sql->
Format->CaseSensitivityUsingQuote改为No
3.如何在powerDesigner中给字段赋默认值
双击表,出现column列表,双击要设置的列的左边的灰色框,应该会弹出新的窗口,然后在新窗口上选择standardchecks,里面有default的
十二.powerdesigner生成的oracle脚本的表名带引号的解决方法
选择Database->Editcurrentdatabase,选择Sql->Format,有一项CaseSensitivityUsingQuote,它的comment为“Determinesifthecasesensitivityforidentifiersis
managedusingdoublequotes”,表示是否适用双引号来规定标识符的大小写,可以看到右边的values默认值为“YES”,如下图手指向的位置改为“No”,点击确定。
在弹出的确认对话框中点击确认
下面的方法介绍设置非当前数据库脚本生成。
你可以通过修改设置,去掉双引号。
菜单tools\resource\dbms,在弹出窗口中,选择oracle相应版的数据库,在弹出的“DBMSProperties”窗口中,修改script\sql\format中的CaseSensitivetyUseingQuote为
no就可以了