用户登录
用户注册

分享至

powerdesigner 编辑

  • 作者: 阿Quen
  • 来源: 51数据库
  • 2020-10-03
就一些比较高级型的用法和技巧我着重说明下。
  1. 生成sql脚本
  Database→Generate Database
  选择要输出的文件路径,即文件存储路径,并根据需要修改文件名,单击确定后便会生成sql脚本。

  在Options选项卡里,可以个性化选择和配置sql脚本,如取消外键,去除drop语句等。

  Selection选项卡中可以选择哪些表要生成sql脚本。
  在Preview选项卡可以预览将要生成的sql脚本。
  2. 将所有名词转化为大写
  tools→Model Options...→Naming Convention→Code→Uppercase。

  3. 表字段设计窗口显示comment来编写注释
  双击表打开表的属性窗口→Columns选项卡→单击上排倒数第二个图标(Customize Columns and Filter)→勾选comment

  4. 修改表的字段Name的时候,Code不自动跟着变
  tools→General Options...→Dialog→取消勾选Name to Code mirroring

  5. 不同数据库之间的转化
  Database→Change Current DBMS→选择要转换成的目标数据库

  6. 导入sql脚本生成相应的数据库表模型图
  File→Reverse Engineer→Database...→修改模块名称并选择DBMS

  Using script files→点击下方图标(Add Files)来添加sql脚本文件→确定

  7. 由物理模型生成对象模型,并生成相应的get、set方法
  tools→Generate Object-Oriented Model...→选择语言→修改Name和Code→(Selection选项卡→选择要生成对象模型的表)→确定

  双击生成的某张表的类图打开属性窗口→选中全部字段→将字段Visibility全部改为private→单击下方Add...按钮→选择Get/Set Operations→确定
  之后生成代码即可:Language→Generate Java Code...

  【注意:不同语言Add...按钮下的内容有区别,如C#是Property】
  6. 生成数据库文档
  Report→Generate Report...→选择Generate RTF→修改Repor namet→语言选择Chinese→选择文件存放位置→确定

  PowerDesigner还提供了文档编辑功能:Report→Reports...→点击New Report图标→修改Repor namet→语言选择Chinese→Report template选择Full Physical Report
  之后即可打开文档编辑窗口,不过限于篇幅这里就不再详细说明如何编辑了,大家自己看看吧。
  8. 如何建立自增主键
  双击表打开属性窗口→勾选P主键复选框→双击设置为主键的字段(在行的头部双击)或者单击上方的属性图标按钮→在打开的窗口下方(注意不同数据库不一样,sql server是identity复选框)选择sequence,如果没有则单击旁边的新建按钮创建一个sequence。

  9. 如何建立视图
  工具栏中单击视图(view)按钮→创建视图→双击视图打开属性窗口,其中Usage是表示视图是只读的还是可更新的。如果我们只创建一般的视图,那么选择query only选项即可。

  切换到SQL Query选项卡,在文本框中可以设置定义视图的sql查询语句,在定义视图时最好不要使用*,而应该使用各个需要的列名,这样在视图属性的Columns中才能看到每个列。单击右下角Edit with SQL Editor按钮,即可弹出SQL Editor编辑器,编写SQL语句。也可采用其他sql语句生成器生成sql语句。

  10. 如何建立索引
  双击表打开属性窗口→选择Indexes选项卡→新建一索引→双击该索引打开属性窗口

  选择Columns选项卡→单击Add Columns图标按钮→选择要建立索引的字段→确定
  这里Column definition就不要选了,会与主键冲突。

  11. 如何建立存储过程
  工具栏中单击Procedure按钮→创建存储过程→双击存储过程打开属性窗口→选择Definition选项卡,其中在下拉列表框中,有Default Procedure、Default Function这两个选项,前者是定义过程,后者是定语函数,系统会根据选择的类型创建SQL语句的模板→编辑存储过程脚本。

  以上就是PowerDesigner物理模型的最主要内容了,其实这只是沧海一粟罢了,仅仅刚刚涉及到了一个模型,还有其他好多模型值得我们学习,这里要想真的讲全面的话,那一篇博文肯定容不下,需要连载了。
  PowerDesigner真的非常强大,用它设计UML同样很牛叉。



  powerdesign:powerdesign是sybase推出的主打数据库设计工具。powerdesign致力于采用基于entiry- relation的数据模型,分别从概念数据模型(conceptual data model)和物理数据模型(physical data model)两个层次对数据库进行设计。概念数据模型描述的是独立于数据库管理系统(dbms)的实体定义和实体关系定义。物理数据模型是在概念数据模型 的基础上针对目标数据库管理系统的具体化。

如何一次性将表结构的脚本导出来?
database --->generate database ---> genarate script 就可实现。

name用中文英文以便查询、写程序的时候方便, code才是最终产生的table name

powerdesigner中建了模型,如何把它作为文档导出?
利用report。选择一个模板,然后就生成了rtf或是htm格式的文档

如何将已经存在的数据库所有表,导入到powerdesign中?
用pd里的反向工程file--->reverse engineering ===> and go on

概念数据模型(cdm)
cdm表现数据库的全部逻辑的结构,与任何的软件或数据储藏结构无关。一个概念模型经常包括在物理数据库中仍然不实现的数据对象。它给运行计划或业务活动的数据一个正式表现方式。不考虑物理实现细节,只考虑实体之间的关系。

物理数据模型 (pdm)
pdm叙述数据库的物理实现。主要目的是把cdm中建立的现实世界模型生成特定的dbms脚本,产生数据库中保存信息的储存结构,保证数据在数据库中的完整性和一致性。

面向对象模型 (oom)
一个oom包含一系列包,类,接口和他们的关系。这些对象一起形成所有的(或部份)一个软件系统的逻辑的设计视图的类结构。一个oom本质上是软件系统的一个静态的概念模型。

业务程序模型(bpm)
bpm描述业务的各种不同内在任务和内在流程,而且客户如何以这些任务和流程互相影响。bpm是从业务合伙人的观点来看业务逻辑和规则的概念模型,使用一个图表描述程序,流程,信息和合作协议之间的交互作用。

正向工程
你能直接地从pdm产生一个数据库, 或产生一个能在你的数据库管理系统环境中运行的数据库脚本。可以生成数据库脚本,如果选择odbc方式,则可以直接连接到数据库,从而直接产生数据库表以及其他数据库对象。

逆向工程
将已存在的数据库产生进新的pdm 之内。数据来源可能是从脚本文件或一个开放数据库连接数据来源。

并不是每个设计都需要用到power designer。 例如:小的系统,或table数比较少的情况下就没有必要采用power designer了。

设计步骤

cdm pdm oom三者转换关系

powerdesigner仅仅是实现的工具
不要以为power能帮你把关系什么的全部建立好,很多数据库理论只是还是需要的,设计数据库的时候,那些范式什么的,一定要掌握。
设计一个好的数据库,最好的工具不是必须的,但是基础理论是一定要的。

powerdesigner用途不局限于数据建模
还可以用powerdweigner设计web service

并不是每个设计都需要用到pd
用powerdesigner对付比较大型的项目,是很好的,对于短平快类型的项目,如果时间要求你1个星期完成一个程序,那么完全没有必要用 powerdesigner,直接维护数据库就可以了,当表的数量超过10个(一个小系统的表在10个左右)的时候,建议还是用用 powerdesigner 。
我的看法:如果想做成一个比较规范的数据库,小项目也可以用。毕竟生成报表和正反向工程很有用。

零碎

pd中的cdm设计时,可以将所有需要的字段都定义好。然后在设计实体是直接取出来。pd提供了这样的统一管理的工具。在pd菜单栏-model-data item下。

为了使自己设计的cdm看起来象样一点,可以从工具栏中,拖动一个title。其显示的信息,是当前cdm的属性值。

为了使实体等symbol看起来显眼和舒服。可以根据个人喜好进行外观上的调整。当前设计界面中,右键-display perferences中进行设置。还可以增加shadow效果。选中symbol后,ctrl+w。或者右键菜单。

为了使布局整齐。选中需要调整的symbol后,菜单-symbol-align进行设置。快捷键:ctrl+up,ctrl+down,ctrl+left,ctrl+right即为上下左右对齐。

设计实体属性时注意的细节:m:表示强制非空;p:是否为主键;d:是否在模型中显示。gerenate:表示是否作为表生成。

默认情况下,cdm的实体会显示identifier一栏。如果不想其显示出来,在右键-display perferences中objectview-entity中设置。

关系的命名方法是:实体名1 实体名2。

关系中的角色(role)表示联系线上一个方向上的含义。用一个动词来描述。role只是起一个描述作用。

依赖(dependency):表示在联系中一个实体的存在是否依赖于另一个实体。寄生实体(dependent entity)是一种部分地被另一实体确定的实体。在依赖联系中,一个实体与另一实体通过标识符相联系,当一个实体的存在没有另一个实体的存在作为参考就 不能唯一确定时,两个实体间就存在依赖联系。
主从表就是典型的依赖关系。

中间实体(associative entity):是为了解决多对多联系而产生的一个人工实体,能够为中间实体定义属性。用鼠标右键单击多对多联系线,在弹出的菜单中选择“change to entity”,能够把这个联系转换成连接两个实体的中间实体。
善于利用自动生成的中间实体,可以简化设计工作,提高数据库设计的正确性。
中间实体一般不用再加入新的字段。

牢记:外键是通过关系relationship自动来建立的,不需要手动建立。不然会产生多余的键。所以设计时,关注实体本身的字段,以及实体间的关系,特别是多对多和依赖关系。

从cdm到pdm的转换需要注意:

不能改变diagram的名称
在树状图中,如果钩选红色标出的symbol表示覆盖修改,不钩选表示保护修改。

数据库为了保证数据完整性和一致性,提出了约束。即表约束,列约束以及参照完整性约束。通常数据库设计和程序开发不是绝对的分离的。所以前两者在实际开发过程中逐渐的完善。需要注意的还是参照完整性约束。
在pd中前两者的设定是对字段,后者是对关系。

参照完整性约束

限制(restrict)。不允许进行修改或删除操作。若修改或删除主表的主键时,如果子表中存在子记录,系统将产生一个错误提示。这是缺省的参照完整性设置。
置空(set null)。如果外键列允许为空,若修改或删除主表的主键时,把子表中参照的外键列设置为空值(null)。
置为缺省(set default)。如果指定了缺省值,若修改或删除主表的主键时,把子表中参照的外键设置为缺省值(default)。
级联(cascade)。把主表中主键修改为一个新的值时,相应修改子表中外键的值;或者删除主表中主键的记录时,要相应删除子表中外键的记录。

注意理解以上的约束时,抓住操作的都是主表。子表的操作都是相对主表来说的。操作方式就是update和delete。

引用基础数据表的数据时,可以建立对应的视图。选中需要作为视图的表,菜单栏-tools-create view

pd支持对已有数据的表更新表结构。不过需要谨慎操作,检查生成的sql脚本。

pd也可以生成随机的测试数据。

触发器就是dbms中提供的事件驱动机制。发生在表的insert,update和delete。执行sql语句或存储过程。

在pd中可以完成存储过程的编写,也便于管理。

逆向工程可以通过数据库脚本或者通过odbc数据源来实现。
软件
前端设计
程序设计
Java相关