PowerDesigner介绍及在项目中的应用

最近几年做了几个项目都用到了PowerDesigner,感觉这个工具相当强大啊,结合项目简单介绍下:

这几个项目主要用PowerDesigner的数据建模功能,具体使用举个例子如下:

首先需根据项目情况,建立如下的uml数据模型,可以添加属性,添加外键,约束等


建立好模型后,需check model下



根据建立的模型,生成数据库建立语句:

将数据库语句在所建立的项目数据库中执行,这样基础数据就建好了,用起来很方面

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数据源来实现。

你可能感兴趣的:(PowerDesigner介绍及在项目中的应用)