在linux 下运行PowerDesigner 15 Beta 2

PowerDesigner 是Sybase 的一款优秀的数据库辅助设计软件,目前没有开发Linux 版本,同时我在Linux 下也找不到可替代的产品。经过尝试,通过wine 可以在Linux 下将PowerDesinger 版本15 很好的运行起来,加上一些额外的努力,还可以启用PowerDesigner 对VB Script 以及数据库连接的支持。 我把主要步骤列出来,供有兴趣的朋友参考。 测试环境: Gentoo...

PowerDesigner 是Sybase 的一款优秀的数据库辅助设计软件,目前没有开发Linux 版本,同时我在Linux 下也找不到可替代的产品。经过尝试,通过wine 可以在Linux 下将PowerDesinger 版本15 很好的运行起来,加上一些额外的努力,还可以启用PowerDesigner 对VB Script 以及数据库连接的支持。 我把主要步骤列出来,供有兴趣的朋友参考。

测试环境:

  • Gentoo Linux 2.6.24-r3
  • wine-1.1.0
  • PowerDesigner 15 Beta 2

由于缺乏VC80的支持,PowerDesigner 15 Beta 2 的安装程序默认在wine 下面无法正常运行,安装会失败。一种解决方法是移植已有的Windows 安装版本。

移植已有的Windows 安装版本

在Windows 下安装好PowerDesigner,然后将以下目录copy至Linux :

  • 程序的安装目录
  • 将存放License的目录:C:\\Documents and Settings\\All Users\\Application Data\\PowerDesigner 15

然后在Windows 运行注册表,将以下keys 分别导出:

  • [HKEY_CURRENT_USER\Software\Sybase\PowerDesigner 15]
  • [HKEY_LOCAL_MACHINE\SOFTWARE\Sybase\PowerDesigner 15]
  • [HKEY_USERS\.Default\Software\Sybase\PowerDesigner 15]

在Linux 下运行wine regedit 导入以上keys, 如果出错,那么可能需要先对文件的编码进行转换:

$ recode UCS2..  *Sybase*.reg

NOTE:如果没有recode 命令,$ emerge -av1 recode

导入成功之后,在Linux 下运行注册表工具,修改key :[HKEY_LOCAL_MACHINE\SOFTWARE\Sybase\PowerDesigner 15\License\LicenseDirectory],将目录修改为License 在Linux 下存放的目录,例如 "C:\\Documents and Settings\\All Users\\Application Data\\PowerDesigner 15"

如果一切顺利,就可以用以下命令来运行PowerDesigner了。

env WINEPREFIX="$HOME/.wine" wine "C:\Program Files\Sybase\PowerDesigner 15\pdshell15.exe"

另外一种方法是在Linux wine 下安装VC80 支持,然后在Linux 下运行安装程序。

在Linux 下进行安装

NOTE: 命令中跟在#后面的是注释文本 

在运行安装程序之前,按照自己的需求先准备好如下环境:

  • 隔离的wine 环境
  • .Net FrameWork 2.0 Support
  • VB Script Support
    • VBScript 5.6
    • Vitual C++ 2005 support
  • VC80 dll support (必需)
    • Microsoft.VC80.CRT.manifest
    • msvcm80.dll
    • msvcp80.dll
    • msvcr80.dll
  • Connection Profile Support(可在安装完成之后进行)
    • Sun JRE 1.4.2
    • DB2 JDBC Type 4 Driver - db2jcc.jar
隔离的wine 环境

此步为可选。

NOTE:如果省略这一步,请替换下面各节命令中的路径.winePD/ 为.wine/

如果不希望影响原有的wine 环境,或者用于测试,可以为PowerDesigner 新建一个独立的wine 目录。

$ wineprefixcreate --prefix $HOME/.winePD  
$ export WINEPREFIX="$HOME/.winePD" 
.Net FrameWork 2.0 Support

这一步是可选。

PowerDesigner 在Beta 2中引入了.Net FrameWork 2.0 支持,用于更漂亮的模型自动排版功能,如果希望使用需要先安装.Net 2.0 ,但.Net 2.0需要IE 5.0以上支持,安装IE 6 可以参考 Wine AppDB - Internet Explorer 6.0,经过尝试是可行的。

IE 6.0安装好之后到MS 网站下载.Net 2.0 安装文件 dotnetfx.exe,放至 $HOME/.winePD/drive_c/,运行安装文件完成安装。

$ wine "c:\dotnetfx.exe"
VB Script Support

这一步是可选。

首先到MS 网站下载合适版本的VB Script 安装文件:WindowsXP-Windows2000-Script56-KB917344-x86-chs.exe

安装过程参考 Wine AppDB - Visual Basic 6.0 Enterprise Edition,所不同之处是安装的文件不一样。

NOTE: 下面的/win/目录是我的 Windows XP安装分区。

$ winecfg # add libraries overwrite; set OS to Windows ME; 
$ cd .winePD/drive_c/windows/system32/
$ for i in riched20.dll riched32.dll oleaut32.dll urlmon.dll hhctrl.ocx ; do mv $i $i.bak; done	
$ for i in riched20.dll riched32.dll oleaut32.dll urlmon.dll hhctrl.ocx ; do cp /win/windows/system32/$i .; done
$ cp /win/windows/system32/mfc42.dll .winePD/drive_c/windows/system32
$ wine "c:\WindowsXP-Windows2000-Script56-KB917344-x86-chs.exe"
$ winecfg # set OS back to Windows XP
VC80 dll support

这一步必需完成以运行PowerDesigner 15 Beta 2 安装程序。

在网上下载msvbvm60.dll 和MS-VC80.MSI ,还需要去MS 网站下载Vitual C++ 2005 support 安装文件 vcredist_x86.exe。然后参考以下步骤完成安装。

$  cp Desktop/msvbvm60.dll .winePD/drive_c/windows/system32
$  msiexec /i "c:\MS-VC80.MSI"
$  wine "c:\vcredist_x86.exe"
$  ls .winePD/drive_c/windows/winsxs/ # 确认vcredist_x86.exe 安装成功
Connection Profile Support

这一步是可选。

PowerDesigner 当中支持对数据库的连接,这是通过ODBC 驱动程序实现的,此外,PowerDeisnger也加入了对JDBC 驱动程序的支持,其称作Connection Profile。在Linux 下为wine 程序配置ODBC,我没有经验,可能需要安装MDAC,而通过JDBC则比较容易实现。对于DB2 类型的数据库,IBM 提供一种TYPE 4的JDBC 驱动程序,可以不需要在连接的客户端安装DB2 Client,仅仅拥有TYPE 4驱动程序以及JRE 支持即可。下面的配置就是通过在wine 中配置JRE 以及DB2 JDBC TYPE 4 驱动程序来实现在PowerDesigner 中对DB2 数据库的访问。

NOTE:Linux 世界中的libiodbc 和unixODBC 并不适用这个场景,其提供的ODBC 数据源并不是为wine 程序使用的。

首先需要下载Sun 的JRE安装程序(1.4.2 for windows) 和IBM 的DB2 JDBC TYPE 4 驱动程序(跨平台)。

NOTE:IBM 的JRE 安装程序会检测ibmpc 系统兼容性,我在wine中无法通过检测(甚至在vmware 这样的虚拟机中也不行),具体原因不知道,导致安装失败,因此选择Sun的JRE。

$ winecfg # 在Libraries 中将 urlmon 临时改为 Builtin
$ wine "c:\j2re-1_4_2_18-windows-i586-p.exe"
$ winecfg # 在Libraries 中将 urlmon 改回 Native
$ mkdir ~/.winePD/drive_c/db2java
$ cp /opt/IBM/db2/V8.1/java/db2jcc_license_cu.jar ~/.winePD/drive_c/db2java/
$ cp /opt/IBM/db2/V8.1/java/db2jcc.jar ~/.winePD/drive_c/db2java/

运行wine regedit,找到key:

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environmen]

添加或者修改以下2个键值:

CLASSPATH=C:\db2java\db2jcc.jar;C:\db2java\db2jcc_license_cu.jar;. 
PATH=C:\windows\system32;C:\windows;C:\Program Files\Java\j2re1.4.2_18\bin 
$ regedit #add values to CLASSPATH , PATH
开始安装PowerDesigner 15 Beta 2

下面开始真正安装PowerDesigner。

$ winecfg # 在Libraries 中将 oleaut32 临时改为 Builtin
$ wine "c:\PowerDesigner15.exe"
$ winecfg # 在Libraries 中将 oldaut32 改回 Native
$ wine "C:\Program Files\Sybase\PowerDesigner 15\pdshell15.exe"

整个安装过程应该很顺畅,如果遇到问题,可以重头检查一下必需的步骤。

测试VB Script

执行Tools - Execute Commands - Edit/Run Script,在代码编辑框中写入一句简单的VB Script代码,比如: "dim s",然后点击Run,如果没有任何错误弹出,说明VB Script 支持正常。

测试Connection Profile

在File 菜单中点击 Revers Engineer - Databases,选择IBM DB2 UDB 8.x Common Server - Using a datasource,浏览datasource,选择Connection Profile,Configure 一个新的数据库连接。

点击Test Connection,如果出错,查看output (alt+1)中的messages,有助于解决问题。

TroubleShooting

Could not find dependent assembly L"Microsoft.VC80.CRT" (On running PowerDesigner.exe)

解决方法:安装VC80 dll support。

Runtime error: R6034 - An application has made an attempt to load the C runtime library incorrectly (On running PowerDesigner.exe)

解决方法:安装VC80 dll support。

Failed to load DLL: pdflm15 (On running PowerDesigner.exe)

解决方法:安装VC80 dll support。

err:module:import_dll Library MSVBVM60.DLL (which is needed by ...

解决方法:在Windows 安装中复制msvbvm60.dll 或者网上下载到wine 的system32 目录。

err:module:import_dll Library MFC42.DLL (which is needed by L"C:\\windows\\system32\\vbscript.dll") not found (On Installing VBScript.exe)

解决方法:在Windows 安装中复制mfc42.dll 或者网上下载到wine 的system32 目录。

Required property "serverName" is unknown host

解决方法:检查网络连接,服务器设置,服务器地址,端口,数据库名称等。

Non SQL Error : Could not load class com.ibm.db2.jcc.DB2Driver。

解决方法:检查wine 注册表中CLASSPATH 是否包含正确的db2jcc.jar 全路径,注册表修改之后,应该重新运行PowerDesigner 应用程序。

Could not Initialize JavaVM!

解决方法:检查wine 注册表中PATH 是否包含正确的到JRE bin 路径,注册表修改之后,应该重新运行PowerDesigner 应用程序。

参考资料

延展阅读

 

在Power Designer 中应用概念模型进行数据库第一阶段设计的示例(二)

谁适合阅读本文本文适合已经掌握数据库基本设计理论或者已经具有实际经验,打算借助Power Designer进行辅助设计的读者。如果你已经是一个Power Designer的熟练使用者,或者你期望的是一些数据库的设计理论,请跳过本文。如果你还不清楚数据库的基本设计理论,比如关系模型,范式,又有志于数据库设计领域的话,最好能够先打好基础,先找些与上面有关的资料看看,即使是优秀的辅助设计工具也并不能够替代我们设计出一个规范化的模型。本文是第二部分,接上篇:在 Power Designer 中应用概念模型进行数据库第一阶段设计的示例(一) 假设您已经安装好Power Designer 9.5 版本,如果您还没有获得软件,请到Sybase网站下载试用版本 。定义更复杂的关系使用依赖关系(Dependent)还是使用上面的例子,我们假定这样的业务描述:雇员享有假期,雇员每次休假,需要记录雇员休假的起始日与结束日,假期以天为单位,一个雇员和一个开 始日唯一确定一个假期。根据这个业务描述,我们知道,对于假期而言,其必须依存于实体“Employee”而存在,即一个休假,必定有一个主体雇员。我们 在上一个模型的基础之上,添加一个实体,名称是“Holiday”,定义假期的属性开始日与结束日,这里并不需要重复定义一个雇员编号,而是替代的,使用 依赖关系,来表示实体“Holiday”依赖于实体“Employee”,关系定义如下图: 在实体“Holiday”中,我们需要设置开始日为主键标识符,开始日与其依赖实体中的雇员编号一起作为实体“Holiday”的标识符,用来唯一确定一个假期。这种依赖关系在概念图中表现如下: 从途中可以看出,在实体“Holiday”一端多了一个朝外的三角▲箭头,这个含义就是这个实体“的依赖于三角箭头所指的另外一个实体,在转化出来 的物理模型当中,实体“Employee”的empNo,在Holiday实体中不仅会作为一个外键,还同时会作为主键出现(与startData一起作 为复合主键)。使用Dominant...

谁适合阅读本文

本文适合已经掌握数据库基本设计理论或者已经具有实际经验,打算借助Power Designer进行辅助设计的读者。

如果你已经是一个Power Designer的熟练使用者,或者你期望的是一些数据库的设计理论,请跳过本文。

如果你还不清楚数据库的基本设计理论,比如关系模型,范式,又有志于数据库设计领域的话,最好能够先打好基础,先找些与上面有关的资料看看,即使是优秀的辅助设计工具也并不能够替代我们设计出一个规范化的模型。

本文是第二部分,接上篇:在 Power Designer 中应用概念模型进行数据库第一阶段设计的示例(一)

假设您已经安装好Power Designer 9.5 版本,如果您还没有获得软件,请到Sybase网站下载试用版本

定义更复杂的关系

使用依赖关系(Dependent)

还是使用上面的例子,我们假定这样的业务描述:雇员享有假期,雇员每次休假,需要记录雇员休假的起始日与结束日,假期以天为单位,一个雇员和一个开 始日唯一确定一个假期。根据这个业务描述,我们知道,对于假期而言,其必须依存于实体“Employee”而存在,即一个休假,必定有一个主体雇员。我们 在上一个模型的基础之上,添加一个实体,名称是“Holiday”,定义假期的属性开始日与结束日,这里并不需要重复定义一个雇员编号,而是替代的,使用 依赖关系,来表示实体“Holiday”依赖于实体“Employee”,关系定义如下图:

 

在实体“Holiday”中,我们需要设置开始日为主键标识符,开始日与其依赖实体中的雇员编号一起作为实体“Holiday”的标识符,用来唯一确定一个假期。这种依赖关系在概念图中表现如下:

 

从途中可以看出,在实体“Holiday”一端多了一个朝外的三角▲箭头,这个含义就是这个实体“的依赖于三角箭头所指的另外一个实体,在转化出来 的物理模型当中,实体“Employee”的empNo,在Holiday实体中不仅会作为一个外键,还同时会作为主键出现(与startData一起作 为复合主键)。

使用Dominant role

当两个实体之间的关系是1..1 时(尽管这种关系比较少见,常见于面向对象的设计方法当中,依赖实体中的主键通常与外健重合),你需要明确指定这两个实体,哪一个是父实体,哪一个是依赖实体,否则,系统在由概念模型转化为物理模型时,将不能确定需要在哪一端生成外键,这时就需要用到“Dominant role”选项,这个选项只有在1..1 的关系中才允许进行设置。我们假定这样的业务描述,企业中的部分雇员拥有一个系统帐号,并且是唯一的一个帐号,这些雇员需要保存一些额外的信息,比如帐号名称、密码等等。我们添加了一个新的实体“User”,其与雇员之间为1..1 的关系,由于一个用户帐号必定属于一个雇员,而一个雇员则可能没有用户帐号,所以我们定义实体“Employee”支配实体“User”。同时,由于 “User”依赖于“Employee”而存在,所以再定义一个由前者到后者的依赖关系,如下图:

 

Dominant role 选项中,箭头所指的实体为被支配的实体,即作为依赖实体。在模型图中,支配实体的一方会出现一个用圆括号括起来的大写字母“D”。

 

转化出来的物理模型中,表User中,empNo作为单独的主键,同时也是引用Employee表的一个外键。

处理多对多(n..n)的关系

在概念模型中,一般很少看见两个实体之间是直接的n..n 的关系,一般这种情况下我们会增加一个中间实体,在Power Designer中,提供了一个专门的符号来对应,叫做“Association”。请考虑以下的情形:

企业中拥有帐号的雇员在系统中具有不同的操作权限,这通过用户角色来进行管理,权限已经分配给了多个不同的角色,一个用户帐号至少属于一个角色,并 且可能会同时属于多个角色,一个角色可以包含0个或多个用户帐号。根据以上描述,我们添加一个实体“Role”,它与实体“User”之间是n..n 的关系,为了表达这种关系,我们增加一个“Association”并分别使用“Association Link”与其他两个实体建立关系,表示如下:

使用一个普通的实体,合理定义关系,并选择“Dependent”选项,是可以替代“Association”的,但使用 “Association”更方便、直观,使模型更容易理解,并可以减少因不谨慎而可能导致的错误。

(完)

8/23/2005 更新了下载链接

参考资源

  • 《Database Solution-A Step by Step Guide to Building Database》by Thomas M.Connolly, Carolyn E.Begg, 译者: 何玉洁,梁琦等
  • 下载第三方 Power Designer 使用教程

 

在Power Designer 中应用概念模型进行数据库第一阶段设计的示例(一)

谁适合阅读本文本文适合已经掌握数据库基本设计理论或者已经具有实际经验,打算借助Power Designer进行辅助设计的读者。如果你已经是一个Power Designer的熟练使用者,或者你期望的是一些数据库的设计理论,请跳过本文。如果你还不清楚数据库的基本设计理论,比如关系模型,范式,又有志于数据库设计领域的话,最好能够先打好基础,先找些与上面有关的资料看看,即使优秀的辅助设计工具也并不能够替代我们设计出一个规范化的模型。建立一个概念模型对于数据库的设计,我们一般从概念模型开始,在概念模型设计阶段,我们着重分析数据的逻辑结构,避免陷入具体的存储细节,所有的设计都与将来所要采用的具体数据库产品无关。假设您已经安装好Power Designer 9.5 版本,如果您还没有获得软件,请到Sybase网站下载试用版本 。运行程序,使用“Ctrl+N” 新建模型,在弹出的窗口中选择“Conceptual Data Model”,点击“OK”。在窗口左侧浏览器中的当前工作区节点下会新增一个概念模型,自动建立了一个默认的概念图Diagram_1,并且已经在当前工作窗口打开。一个概念模型可以拥有多个这样的概念图,可以在模型的属性中指定其中一个作为默认。工作区中有一个元件面板,包含了在概念模型中可以使用的各种符号。最常用的是:实体(Entity)和关系(Relationship),如下图:定义实体用鼠标双击实体的符号,可以进入实体的属性页。General 项目 Name:是用来在模型中标识一个实体,一般用于模型在界面中的显示(这个可以通过更改选项设置进行改变)。在一个模型当中,实体的名字不能重复。Code:在模型转化时一般作为对象的物理名称,比如把实体属性的Code转化为数据库中的列名,当然我们现在不必为了这个实体将来叫什么而费神,一般采取与Name一致即可。Generate:默认是选择状态,如果取消,则在转化为其他模型时,会忽略这个实体。 Attributes 项目 窗口中下面表格里的各项很类似于一个表结构的定义,但数据类型是经过抽象化的,采用独立的表示方法,不与任何一个具体的数据库系统相关。在此项目中为当前实体添加属性。后面的三列CheckBox分别代表:M:此属性不允许为空值 P:此属性为主键标识...

谁适合阅读本文

本文适合已经掌握数据库基本设计理论或者已经具有实际经验,打算借助Power Designer进行辅助设计的读者。

如果你已经是一个Power Designer的熟练使用者,或者你期望的是一些数据库的设计理论,请跳过本文。

如果你还不清楚数据库的基本设计理论,比如关系模型,范式,又有志于数据库设计领域的话,最好能够先打好基础,先找些与上面有关的资料看看,即使优秀的辅助设计工具也并不能够替代我们设计出一个规范化的模型。

建立一个概念模型

对于数据库的设计,我们一般从概念模型开始,在概念模型设计阶段,我们着重分析数据的逻辑结构,避免陷入具体的存储细节,所有的设计都与将来所要采用的具体数据库产品无关。

假设您已经安装好Power Designer 9.5 版本,如果您还没有获得软件,请到Sybase网站下载试用版本 。运行程序,使用“Ctrl+N” 新建模型,在弹出的窗口中选择“Conceptual Data Model”,点击“OK”。

在窗口左侧浏览器中的当前工作区节点下会新增一个概念模型,自动建立了一个默认的概念图Diagram_1,并且已经在当前工作窗口打开。一个概念模型可以拥有多个这样的概念图,可以在模型的属性中指定其中一个作为默认。

工作区中有一个元件面板,包含了在概念模型中可以使用的各种符号。最常用的是:实体(Entity)和关系(Relationship),如下图:


定义实体

用鼠标双击实体的符号,可以进入实体的属性页。

  1. General 项目

    Name:是用来在模型中标识一个实体,一般用于模型在界面中的显示(这个可以通过更改选项设置进行改变)。在一个模型当中,实体的名字不能重复。

    Code:在模型转化时一般作为对象的物理名称,比如把实体属性的Code转化为数据库中的列名,当然我们现在不必为了这个实体将来叫什么而费神,一般采取与Name一致即可。

    Generate:默认是选择状态,如果取消,则在转化为其他模型时,会忽略这个实体。

  2. Attributes 项目

窗口中下面表格里的各项很类似于一个表结构的定义,但数据类型是经过抽象化的,采用独立的表示方法,不与任何一个具体的数据库系统相关。

在此项目中为当前实体添加属性。

后面的三列CheckBox分别代表:

  • M:此属性不允许为空值
  • P:此属性为主键标识
  • D:为可显示属性

按“Crtl+U”呼出“定制列过滤器”的窗口,可以根据自己的喜好和实际需要选择那些列出现在窗口中,那些隐藏。使用快捷键 “Crtl+E”可以允许或者禁止当前过滤器。

我们分别重新命名了以上两个实体为部门(Department)和雇员(Employee),并分别添加了属性,如下图:

默认的,概念图只显示作为主键标识的属性,并且隐藏了数据类型。这样是为了使概念图更加简洁、易于理解,你完全可以通过选项更改这些显示配置。

定义关系

双击关系(Relationship)的符号,进入关系的属性页,在Detail项目中,我们可以对两个实体的关系进行详细的定义,如下图:

  1. General 项目

    一般最好为关系取一个贴切的名字,本例的业务关系描述如下:一个部门有多个员工,我们使用“Has”作为这个关系的名字。

    同样的我们也可以描述为:多个员工属于一个部门,可不可以使用“Belong to”作为关系名字呢?一般不推荐这样做,在概念图中有一个约定,关系的名字采用从“1,n”中“1”所在的方向向“n”所在一方进行读取的语义。本例即 “1”在部门一方,从部门一方向雇员一方读取语义,即:部门有(Has)多个员工。

  2. Detail 项目

假定对于实体部门(Department)和雇员(Employee),具有如下关系:

  • 一个部门可以有多个雇员,新成立的部门也可以暂时没有任何雇员;
  • 一个雇员必须属于一个部门,并且同时只能属于一个部门;

根据以上关系,我们修改属性页,部门-雇员的方向采用默认的0,n,雇员-部门的方向修改为强制约束(Mandatory),或者从下拉框中选择“1,1”,如下图:

最后定义完成的关系(Relationship)在概念图中表示如下:

注:在Power Designer中,关系符号靠近实体端的一个“横线”代表强制性约束,“空心圆圈”代表无强制约束,即这一方可以无对象关联;“非分岔”线代表为“1” 的关系,“分岔”线代表“多”的关系。以上四个符号共可以组合出16种关系(包含反向)。其中“多对多”的关系一般通过给出一个中间实体来进行分解,所以在许多概念图中,是看不到实际的“多对多”的关系存在的。

另外在关系的属性中还有两项:Dominant role 和Dependent,可以表示更复杂的关系,会在后面讲到。

(待续)

8/23/2005 更新了下载链接

参考资源

  • 《Database Solution-A Step by Step Guide to Building Database》by Thomas M.Connolly, Carolyn E.Begg, 译者: 何玉洁,梁琦等
  • 下载第三方 Power Designer 使用教程

 

 


Power Designer 使用笔记

10:34 2004-07-29 在物理模型中,对于一个关联非常多的表,可以使用Ctrl+M 创建这个表的多个快捷方式,然后使用Ctrl+鼠标拖动已有的联接矛点. 16:00 2004-07-31 如果需要一次性加入多个相同类型的对象,可以在左侧的窗口右击模型名称,选择List of 想要加入的对象,这样就可以在一个列表中使用向下键加入了,也可以方便的copy和paste. 使用模型check的功能,可以自动检查模型存在的一些问题,并可以选择自动修正操作. 有时PowerDesigner自动生成的唯一约束Key会重复,并且重复的key有时不能够全部被check出来,需要手动修改. 14:29 2004-08-02 在编辑视图时,column标签页中不能删除无用的字段,只能进入SQL Query页进行编辑,同时,在column页更改字段的顺序也无法在实际SQL中生效....

10:34 2004-07-29
在物理模型中,对于一个关联非常多的表,可以使用Ctrl+M 创建这个表的多个快捷方式,然后使用Ctrl+鼠标拖动已有的联接矛点.

16:00 2004-07-31
如果需要一次性加入多个相同类型的对象,可以在左侧的窗口右击模型名称,选择List of 想要加入的对象,这样就可以在一个列表中使用向下键加入了,也可以方便的copy和paste.
使用模型check的功能,可以自动检查模型存在的一些问题,并可以选择自动修正操作.
有时PowerDesigner自动生成的唯一约束Key会重复,并且重复的key有时不能够全部被check出来,需要手动修改.

14:29 2004-08-02
在编辑视图时,column标签页中不能删除无用的字段,只能进入SQL Query页进行编辑,同时,在column页更改字段的顺序也无法在实际SQL中生效.
当在SQL Query的字段列表中使用as语法时,有时更改as后面的列名不能在Column页中进行同步,导致创建视图中实际的列名与想要的不一致.可以通过检查 Preview标签,比较快速的判断是否有这种情况发生,当有不一致时,Preview中的sql会使用这样的格式:
create or replace view v1(column1, column2, ..., columnN) as
...
/
如果没有不一致,则不会生成括号部分.

19:02 2004-08-05
定义的视图可能互相之间会有引用关系,必须严格的按先后顺序创建,否则会出错,但powerDesigner在生成视图sql时不能指定先后顺序,是以视图名称来安排生成顺序的.
如果在oracle中,可以指定视图的属性 force 为true, 这样创建视图引用的对象即使不存在也不会报错.

16:18 2004-9-29
目前9.5版本中没有定义临时表类型的对象,无法定义oracle的global temporary 表.

V11

2006-04-04


Ctrl+C之后,使用Ctrl+K粘贴对象的快捷方式,用Ctrl+V会复制对象。

对于对象非常多的项目,比如上千个表,可以建立一个总览PDM,之后未各个模块分别建立PDM,只放入相关的表,并表示这这些表之间的关系,忽略这组表与外部的关系。 

改变Diagram 的显示格式

在Diagram的tables 中显示Schema

  • Tools -> Display Preferences -> Object view -> Table,选中 Owner.
  • 默认地, 这只改变当前的diagram,如果希望一起变更其他已经建立的diagrams,点击左下角的 Apply To按钮,然后选择希望变更的diagrams。如果希望这个变更对所有新建的diagram都有效,就点击按钮Set As Default。

默认的References 线条很难看

  • Tools -> Display Preferences -> Format -> Reference,点击Modify,Line Style -> Corners,选择第二个或者第三个折线格式,OK退出。

表的列数太多,导致diagram中对象太长

  • Tools -> Display Preferences -> Object view -> Table -> Table Columns,uncheck All Columns,选择Limit,数值用10或者20。也可以选择PK Columns 只显示primary keys,或者选择Key Columns 只显示primary keys, foreign keys, alt keys等keys。

把整个diagram 或者部分导出为图形文件

  • 选择要导出的对象(用shift多选,或者鼠标划亮多个) ,如果导出整个diagram就Ctrl+A,然后Edit -> Export Image,文件类型选择jpeg或者png,保存。

同时修改多个对象格式 

  • 如果使用shift键选中多个,然后右键->Format,不会同时修改多个对象。但选中多个后,使用Ctrl+T快捷键却可以。

设置命名转换

设置概念模型Entry只显示主键

设置允许Relationship code重名

设置改面模型允许Data Item Reuse

Data Item

  • 似乎是版本11带来的功能,原来9.5版本的模型没有这个选项
  • 可以在不同的表之间Reuse Data Item(Column),这样可以实现一处修改,到处生效。
  • Reused Data Item,一个表中修改非空约束,不会反映到其它表。
  • 可以在List Of Data Item视图中删除重复的项目。

Sysbase 发布PowerDesigner 版本12

 

mail.png


标签订阅|Tag Subscription

If you use an RSS reader, you can subscribe to a feed of all future entries tagged 'PowerDesigner'. [What is this?]

Subscribe to feed Subscribe to feed

最近更新|Recent Entries

不定期更新|Handy Entries

其它标签|Other Tags

分类栏目|Categories

按月归档|By Month

2008
11
10
07
05
04
03
02
01
2007
12
10
07
06
05
04
03
02
01
2006
12
11
10
09
08
07
06
05
04
03
02
01
2005
11
10
09
08
07
04
03
2004
12
11
10
09
08
07
06
05
04
03
02
01
2003
12
10
09
08
06
2002
09
08
04
03
02
2001
12
09
07
06
05

站内链接|Site Links

Powered by
Movable Type 3.34