1、Database Edit Current DBMS scriptobjectsMaxConstLen另外,如果column的长度超过15也会出错,那就修改:Database Edit Current DBMS scriptobjectscolumnMaxLen出现表或者其它对象的长度也有这种错误的话都可以选择对应的objects照此种方法更改!3、在修改name的时候,code的值将跟着变动,很不方便修改方法:PowerDesign中的选项菜单里修改,在Tool-General Options-Dialog-Operating modes-Name to Code mirroring,这里默
2、认是让名称和代码同步,将前面的复选框去掉就行了。4、Powerdesigner的反向工程:Power Designer的反向工程 Power Designer是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。利用Power Designer可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设计模型进行控制。Power Designer的4种模型:概念数据模型 (CDM)物理数据模型 (PDM) 面向对象模型 (OOM) 业务程序模型 (BPM) 我主要介绍
3、一下PDM:PDM 叙述数据库的物理实现,帮助你考虑真实的物理实现的细节。你能通过修正PDM来适合你的表现或物理约束。主要目的是把CDM中建立的现实世界模型生成特定的DBMS脚本,产生数据库中保存信息的储存结构,保证数据在数据库中的完整性和一致性。PDM是适合于系统设计阶段的工具。简单说:就是PDM可以自动生成诸如create table之类的sql脚本.在数据建模过程中,我们建立概念数据模型,通过正向工程生成物理数据模型,生成数据库建库脚本,最后将物理数据模型生成关系数据库。系统数据库设计人员希望能够将数据库设计和关系数据库生成无缝地集成起来,如何保证物理数据模型与其对应数据库之间的双向同步
4、成为数据建模非常关键的一点。Powerdesigner作为强大的Case工具,为我们提供了方便的逆向工程特性。可以将目前所有流行的后端数据库(包括Sybase、DB2、Oracle等)的结构信息通过逆向工程加入到PowerDesigner的物理数据模型和概念数据模型中,包括表、索引、触发器、视图等。下面说一下如何用PowerDesigner进行逆向工程.1.我用的数据库是oracle9i,我为了访问oracle数据库,在我的机器上安装了oracle客户端(提供了oracle客户端的驱动程序,而精简客户端则不可以),配置一个名称为mylcl的服务:MYLCL = (DESCRIPTION = (
5、ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.106)(PORT = 1521) ) (CONNECT_DATA = (SID = pwsc)用户名为:testuser,密码为test. 2.在pd中,新建一个pdm,选择数据库为oracle9i3.选择Database-configure connections,转到system dsn标签,点击添加,选择驱动程序,由于我的数据库是oracle,所以我选择oracle in oraclient10g_home1(安装了oracle客户端才有这个驱动,而精简客户端没有此驱
6、动)4.在data source name 中,可以随便命名一个ora-test,在tns-server name中选择第一步中的服务名称:mylcl.点击test connection,输入用户名密码,connection ok!5.点击database-reverse engineer database ,选择odbc datasource:ora-test.然后点击确定哈哈,看见什么了.我就不说了吧pdm的图表如何?其实pd还可以通过sql来进行反向工程,我就不说了特此存档.同时也希望对大家有帮助.5、Powerdesigner自增字段的设置(1)对于oracle,选择类型serial(
7、2)对于sqlserver,需要用到domain6、Cdm生成pdm时不能显示出dbms的解决方法做了反向工程,dbms的选择变成了选择具体的数据库了,不再是指向原来的安装文件里面的配置。重新选择7、建表建议1)每个表有一个自增的字段,定为主键,建议用“表名+ID来命名”,这个字段没有任何实际意义。2)表中有了自增ID后,不重复的(原来可能设为主键的)字段需要设置不重复,方法:(1)双击表,选择identifers页:增加一个identifier(identifier2)(2)双击identifier2左边的“=”,弹出以下框:(3)选择Attributes页,点击按钮来增加列(4)选择字段,
8、确定,结果如下:表示不能重复3)联系:一般一对一,一对多,如果多对多会产生新表。注意:一对多的话,在外码的那个表中会自动产生主码所在表中的那个字段,所以不需要手动增加外码的。8、去掉PowerDesigner生成SQL脚本中字段名带的引号例子:create table TAB_DQSHJJFZGK ( TAB_DQSH_ID NUMBER(6) not null, City VARCHAR2(10) not null,RegionIDName VARCHAR2(300) not null,Time DATE not null,RegionArea NUMBER,UrbanPopu NUMBER
9、(20,4),VillagePopu NUMBER(22,6),FamilyNumCensusPopuUsualPopuForeignPopuFlowPopuGDPTotal DYCYDCZ NUMBER(22,6), DECYDCZ NUMBER, DSCYDCZ NUMBER(22,6),TranComExpensesDescription VARCHAR2(3000),TVNumPCNumTELNumMobileNum HLWSWRS NUMBER,InfoOrigin VARCHAR2(1000),SubmitTime DATE,Submiter VARCHAR2(30),LastUp
10、dateTimeLastUpdater GEOID VARCHAR2(500), constraint PK_TAB_DQSHJJFZGK primary key (TAB_DQSH_ID), constraint AK_IDENTIFIER_2_TAB_DQSH unique (, );上面的字段名有些有”,有些没有”,如果有”那么在作insert into等操作时也必须加上”如insert into TAB_DQSHJJFZGK(DYCYDCZ,”TVNum”) values(30,20)有”的原因是:使用PowerDesigner生成数据库建表SQL脚本时,尤其是Oracle数据库时,表
11、名一般会带引号。其实加引号是PL/SQL的规范,数据库会严格按照“”中的名称建表,如果没有“”,会按照ORACLE默认的设置建表(DBA STUDIO里面),默认是全部大写,这样,在ORACLE数据库里的字段就如“Column_1”。如果你把引号去掉,ORACLE自动默认为全部大写,即“COLUMN_1”,所以这段SQL在PL/SQL中执行的时候是没有任何问题的,如果不加引号,在PL/SQL会自动识别为大写。如果加了引号,sql或者hql查询“Column_1=XXX”时,就会报错:ORA-00904:COLUMN_1: 无效的标识符,除非写为“Column_1=”。这个问题是生成脚本格式的问题,因此,我们可以尝试在DBMS配置文件中修改相应的格式设置来解决这个问题。选择Edit Current DBMS,再选择Script-Sql-Format,有一项CaseSensitivityUsingQuote,它的comment为“Determines if the case sensitivity for identifiers is managed using double quotes”,表示是否适用双引号来规定标识符的大小写,可以看到右边的values默认值为“YES”,改为“No”,点击【应用】按钮。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1