Powerdesigner的学习记录

一、 快捷键

在使用建模工具时,在窗口(工作区)空白处,点击鼠标右键,鼠标就可以变成鼠标指针。

1、 ctrl+G:将pdm转化为对应数据库的sql脚本。或者在工具栏中数据库—generate database中也可以设置sql文件

Ctrl+shift+P:生成pdm

Ctrl+shift+C:生成cdm

Ctrl+shift+O:生成oom

       2、调出palatte工具栏,在工具栏右击,选择palatte即可。

二、常用概念

1、 CDM(concept data model):概念数据模型

LDM(logical data model):逻辑数据模型

PDM(physical data model):物理数据模型

OOM(Object-oriented model):面向对象模型

BPM(business process model):业务流程模型

EnterpriseArchitecture Model 企业架构模型

PDB是早期的PowerBuilder编译生成的动态链接库的后缀名是PDB, 
但后来PowerDesigner出来后,它的物理模型图(数据表结构)文件后缀名是PDM,但同时它会生成这个文件的备份文件,就是后缀名为PDB的文件。

2、 生成脚本时,selection->选择users、tablespace、tables勾选或取消表或者用户或者表空间。

3、 生成sql脚本时,给字段添加注释:选择Database->Edit Current DBMS...后,选择Script->Objects->Column->ColumnComment,将ColumnComment的原始内容:
[%QUALIFIER%]%TABLE%.%COLUMN% is
%.q:COMMENT%

变更为
comment on column [%QUALIFIER%]%TABLE%.%COLUMN% is
%.q:COLNNAME%

第二步:从物理模型生产数据库时,Database->Generate Database..
Format标签选项中,将Generate name  in empty comment,勾选上,默认不勾选。

创建概念模型(CDM)说明

1、 Diagram:图表,在界面显示图表。

参数

说明

Minimum

属性可接受的最小数

Maximum

属性可接受的最大数

Default

属性不赋值时,系统提供的默认值

Unit

单位,如公里、吨、元

Format

属性的数据显示格式

Lowercase

属性的赋值全部变为小写字母

Uppercase

属性的赋值全部变为大写字母

Cannot modify

该属性一旦赋值不能再修改

List Of Values

属性赋值列表,除列表中的值,不能有其他的值

Label

属性列表值的标签

2、 Data Items:数据项对应属性(Attributes)

3、 Identifiers:标识符,表示实体的唯一表示,对应主键。

4、 概念模型中是实体(Entity)和联系(Relationship)对应物理模型中的表(Table)和引用(Reference)

5、 属性添加:插入一个属性;追加一个属性;从数据项中添加已有属性;重用已有的属性。D:Displayed,是否在图形窗口中显示,mandatory:是否为空。Precision:小数位;Domain:数值域。

6、 属性的约束

7、 数据项的唯一性代码选项和重用选项使用Tools--->ModelOptions->Model Settings。在Data Item组框中定义数据项的唯一性代码选项(Unique Code)与重用选项(AllowReuse)。 注意: 如果选择UniqueCode复选框 ,每个数据项在同一个命名空间有唯一的代码,而选择Allowreuse ,一个数据项可以充当多个实体的属性。

8、 联系:实体间建立联系(Relationship);实体间继承(Inheritance);关联与实体间建立联系(Associsation link);建立关联(Association)

9、 Mandatory:是否强制,即是否为空;Dependent:是否依赖用于标定联系,在非标定联系(实体可以单独存在)中,一个实体集中的部分实例依赖于另一个实例集中的实例,在这种依赖联系中,每个实体必须至少有一个标识符。而在标定联系(实体不能单独存在)中,一个实体集中的全部实例完全依赖于另个实体集中的实例,在这种依赖联系中一个实体必须至少有一个标识符,而另一个实体却可以没有自己的标识符。没有标识符的实体用它所依赖的实体的标识符作为自己的标识符。

10、         Dominant:只用于一对一联系中,并指明主从表关系,在生成PDM时,只会产生一个引用。

创建物理模型

1、 Joins:建立表间连接键,即将父表的主键对应子表的外键。

2、 Integrity:定义参照完整性;Mandatory parent:强制对应关系;Change parent allowed :允许修改父表中参照列的值。

3、 建立主键时,系统会在主键上建立索引,索引分为聚集索引和非聚集索引,在“键属性”窗口的General选项卡中可以设置该主键上建立的索引是聚集索引还是非聚集索引;Cluster为聚集索引。

4、 聚集索引:可以帮助把很大的范围,迅速减小范围。但是查找该记录,就要从这个小范围中Scan了。
       非聚集索引:把一个很大的范围,转换成一个小的地图。你需要在这个小地图中找你要寻找的信息的位置。然后通过这个位置,再去找你所需要的记录。

5、 建立表关联(添加外键)利用Reference来建立连接,在一对多关系中,如果课程表中没有RoomID列,系统会自动创建RoomID列并创建该列上的外键引用,如果已经存在RoomID列,则只添加外键引用,不会再添加新列。(使用引用时,软件会自动创建外键)。

视图

1、 Usage是表示视图是只读的视图还是可更新的视图,还有一个是check option选项,指定了 CHECK OPTION,也不能依据视图来验证任何直接对视图的基础表执行的更新。如果我们只创建一般的视图,那么就选择只查询选项。

2、 Dimensional Type指定该视图表示的是维度还是事实,这个主要是在进行数据仓库多维数据建模时使用,一般情况下不需要指定。后面的两个复选框也不需要进行修改。Type使用默认的view选项。

存储过程和函数

1、 存储过程和用户自定义函数都是在同一个组件中设置的,在工具栏中单击Procedure按钮,然后在设计面板中单击一次便可添加一个Procedure。

2、 切换到Definition选项卡,该选项卡中定义了存储过程的定义,在下拉列表框中,选择<DefaultProcedure>选项,如果是要定义函数,那么就需要选择<DefaultFunction>选项,系统会根据选择的类型创建SQL语句的模板。

3、 下面的SQL语句中,可以将create procedure[%QUALIFIER%]%PROC%保留,其他的删除,根据自己要创建的存储过程编写SQL语句。

4、存储过程格式:

CREATE PROCEDUREprocedure_name

@parameter_namedatatype=[default]

[WITH ENCRYPTION]

[WITH RECOMPILE]

AS

sql_statement

注:

@parameter_name 存储过程的参数名,必须以@为前缀

Datatype 参数的数据类型

Default 参数的默认值,如果执行存储过程时为提供该参数的变量值,则使用default值。

WITH ENCRYPTION: 对存储过程进行加密

WITH RECOMPILE: 对存储过程重新编译

执行存储过程:EXEC p_book1p @出版社='中国长安'

4、 在软件工程文档的数据库设计书需要有CDM、LDM、PDM三种模型

5、 概念模型(CDM)中只有实体和实体之间的关系,并没有实体的属性和唯一标识这些具体的内容。只表示数据库的整体逻辑结构,独立于任何软件和数据存储结构,采用实体-联系图(Entity-Relation Graph,E-R图)来表示实体和联系的概念。

注意:实体包含唯一标识它的一个或一组属性,这些属性称为实体类型的标识符(identifier),例如:学号是学生实体类型的标识符,姓名,地址,出生日期共同组成公民实体类型的标识符。

有些实体类型可以有几组属性充当标识符,可以选定其中一组属性作为实体类型的主标识符,其他的作为次标识符。

逻辑模型(LDM)是概念模型(CDM)的延伸,逻辑模型一方面显示了实体、实体的属性和实体之间的关系,另一方面又将继承、实体关系中的引用等在实体属性中进行展示。

物理模型(PDM)更接近关系数据库中的关系表,包括软件和数据存储结构,即:PDM与具体的数据库有关。

面向对象模型(OOM)包含一系列包、类、接口和他们的关系。可以直接生成javaBean文件。

总结:逻辑模型(LDM)不是必须的,可以直接通过概念模型(CDM)来生成物理模型(PDM)。

Mysql的sql脚本——>mysql_PDM——>CDM——>oracle_PDM——>oracle的sql脚本。

6、 CDM中Entity之间的关系

注意:联系具有方向性,每一个方向上都有一个基数。在联系的两个方向上各自包含有一个分组框,其中的参数只对这个方向起作用,Role Name为角色名,描述该方向联系的作用,一般用一个动词或动宾组表。
如:“学生 to 课目 ” 组框中应该填写“拥有”,而在“课目To 学生”组框中填写“属于”。(在此只是举例说明,可能有些用词不太合理)。

(1)Dependency:用于两个CDM之间的Dependency(依赖关系),PDM并不处理这种Dependency;

(2)Relationship:用于两个Entity间的关系表述,包括:one-one、one-many、many-many等

       在Relationship中还有三个属性可以设置:

       Mandatory:表示这个方向联系的强制关系,表示联系对应的那两个实体实例的个数不能为0,即不能为空;

       Dependent:依赖性联系/标定关联,表示主从表的关系,从表依赖于主表。对于依赖型联系,不可能为多对多联系,必须有一个作为主体的实体型。一个依赖联系的从实体可以没有自己的标识符(identifier);在标定联系中,一个实体(选课)依赖 一个实体(学生),那么(学生)实体必须至少有一个标识符,而(选课)实体可以没有自己的标识符,没有标标识符的实体可以用实体(学生)的标识符作为自己的标识符。

       Dominant:统制联系,仅用于一对一联系,并指明这种联系中的主从表关系。如果不勾选dominant,那么最终产生的PDM中教师表和学生表将互相包含对方的主键。

(3)Association:用于两个Entity间的事件表述,例如:老师和学生两个实体间的家访事件(event)。

       在PD中,选中任何一个联系,在右键的弹出菜单中选择“Change to Entity”命令即可完成联系转实体的操作,但是有的时候,把若干个实体型之间的联系抽象为一个实体型可能不太合适,这时候可以为这些实体型建立一个association,那么在生成PDM时,所有这些相关实体型的identifier都会被加入到association对应生成的表模型中。其实,association就是实体型的一种特例。

Cardinality:基数     general:常规设置

三、概念模型(CDM)转化为物理模型(PDM)

       1、先打开概念模型(CDM),选择工具-Generate Physical Data Model

       2、选择DBMS为指定的数据库,为物理模型起名字,点击确定即可。

四、物理模型(PDM)转化为概念模型(CDM)

       1、先打开物理模型(PDM),选择工具-Generate Conceptual Data Model

       2、为概念模型起好名字,点击确定即可

五、物理模型导出sql语句

       1、先打开物理模型(PDM),点击Database按钮的Generate Database或者按ctrl+G。

       2、设置sql文件的位置和名称

       3、在selection中选择要导出的表确定即可。Option中可以个性化选择和配置sql脚本,如取消外键、去除drop语句等。Preview选项卡可以预览将要生成的sql脚本。

六、将所有名词转化为大写

       tools→ModelOptions...→Naming Convention→Code→Uppercase。

七、表字段设计窗口显示comment来编写注释

       双击表打开表的属性窗口→Columns选项卡→单击上排倒数第二个图标(Customize Columns and Filter)→勾选comment

八、修改表的字段Name的时候,Code不自动跟着变

       tools→GeneralOptions...→Dialog→取消勾选Name to Code mirroring

九、不同数据库之间的转化

       Database→ChangeCurrent DBMS→选择要转换成的目标数据库

十、导入sql脚本生成相应的数据库表模型图

       1、File→Reverse Engineer→Database...→修改模块名称并选择DBMS(反向工程:还原)

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

十一、生成数据库文档

       Report→GenerateReport...→选择Generate RTF→修改Repornamet→语言选择Chinese→选择文件存放位置→确定

       PowerDesigner还提供了文档编辑功能:Report→Reports...→点击New Report图标→修改Repor namet→语言选择Chinese→Reporttemplate选择Full Physical Report

十二、如何建立自增主键

       双击表打开属性窗口→勾选P主键复选框→双击设置为主键的字段(在行的头部双击)或者单击上方的属性图标按钮→在打开的窗口下方(注意不同数据库不一样,sql server是identity复选框)选择sequence,如果没有则单击旁边的新建按钮创建一个sequence。

十三、如何建立视图

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

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

十四、如何建立索引

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

       选择Columns选项卡→单击AddColumns图标按钮→选择要建立索引的字段→确定

       这里Column definition就不要选了,会与主键冲突。

十五、如何建立存储过程

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

十六、实体间联系的设置

   None:父表修改,子表不影响。
    Restrict:父表修改,如果子表存在,则出错。
    Cascade:父表修改,如果子表存在,则相应的修改。

基数是下拉列表,表示实体间的对应关系,一对一还是一对多等。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一位远方的诗人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值