文档章节

PowerDesigner概念模型详解

china008
 china008
发布于 2014/10/08 10:13
字数 1417
阅读 53
收藏 0

PowerDesigner概念模型详解

 

环境

PowerDesigner 12.5

Windows XP 中文版

 

一、概念模型的重要性

 

PowerDeigner是最强大、最优秀的数据建模工具,是Sybase公司最伟大的产品。目前最新版本是12.5,从9一直用到现在,对PD的认识也是在逐步加深。

 

常常在工作中,看到大家用PD,都是用来建几个表,实际上是做PDM,上来就干这个,实际上,这么用PD,是对强悍的PD一种侮辱。PD仅仅是这么玩的吗?

 

数据库设计的步骤是什么,难道上来稍稍想一下就搞个pdm出来?

 

下面简单回顾下大学课本里讲述的数据库设计的基本步骤:       
1、需求分析
从系统需求中寻找一些概念性名词,并甄选,并对这些名词相关属性做了解,这部分是人工的,PD做不了什么。
2、概念结构设计
针对甄选的名词进行分心,找出其中的关系(独立的、一对一、一对多、多对多、继承五种关系),并用E-R图描述出来,这是大学课本的做法。在PD中,这个过程可以用CDM(概念模型)来描述,PDM中实体概念模型表示方式比E-R更清晰,更好。
3、逻辑结构设计
实际上就是设计表的结构和表之间的主外关系等。这部分在PD中对应的是PDM(物理模型),而PD中的物理模型一般都是直接从概念模型生成的。也就是说,只要你做好概念模型,物理模型就可以自动生成。
当然,这种生成结果一般都需要做一些调整和优化。
4、物理结构设计
有了PDM,数据库的物理设计将不费吹灰之力,直接可以从PDM导出各种数据库系统的建库脚本。
5、数据库的建立和测试
这个过程也很简单,看看建库脚本的执行就知道了。不合理了重新修改PDM,然后生成sql再来。
6、数据库运行和维护。
这个一般是DBA的事情了,比如时间长了,数据量大了,在某些列上加上索引,调优等等。

 

从中可以看到,一上来就建PDM,是不合理的。实际上要求对概念模型有个透彻理解了才去做PDM,这种理解可以不画图,但至少是心中有图。

 

做CDM概念模型的好处是交流容易,全世界通用,谁看了都明白。你难道能用PDM的外键关系去看数据关系吗,如果一个表上有多个外键,外键关联像蜘蛛网一样,就晕菜了,谁也看不明白!

 

二、 使用PD建立数据库概念模型

 

1、一对一CDM

 

下图描述了 一个系统用户对应一个扩展信息,也可以没有扩展信息。扩展信息依赖用户信息的存在。并且一个扩展信息只能有一个用户信息。

 

关系的设置:

 

将其生成PDM

 

 

2、一对多CDM

 

下图CDM描述了一个公司有多个经理的模型,当然一个公司也可以没有经理(老板是光杆司令)。但一个经理必须属于一个公司。

关系的设置:

 

生成的PDM

 

3、多对多CDM

 

下面描述的是一个演员和角色的关系,一个演员可以演多个角色,一个角色可以由不同的演员来演,比如《红楼梦》的林妹妹,小时候找个演员A来演,长大后的形象由演员B来演。

 

关系设置,多对多关系最简单了,一般不需要设置:

 

生成的PDM如下:

 

 

4、继承关系CDM

 

下图描述的是一个继承关系,比如有一个教务系统,用户分学生老师,注册时候,老师和学生填写的信息由差异,但有公共信息。

 

 

关系配置,不需要,就集成关系,没啥好设置的。

 

生成的PDM如下:

 

也许你会发现,五个呢,怎么才四个,呵呵,单表就独立着和谁都没关系,还用画吗?

 

三、总结

 

1、数据库建模是系统设计中最重要一步,概念模型能很好的描述数据间的关系,还可以从概念模型精确生成符合一定标准范式的物理模型。

 

2、CDM能描述出更细微的数据关系,比如是0-n还1-n,这直接影响到数据业务上的约束,但是用PDM无法描述。CDM为业务交流节约了沟通成本。

 

3、CDM也为后来了解底层业务数据关系提供了依据,尤其是表很多很多时候,如果没有CDM,那只有设计数据库的人知道底层的关系了。

 

4、如果表很多,分模块的情况,还可以讲CDM分包来管理,这样可以避免将所有的实体关系画到一张图中所带来阅读上烦恼。

 

5、PD还有其他很多很强悍的功能,比如数据库反响到PDM,PDM导出脚本,PDM导出Java模型对象、XML模型。还可以生成DAO层的 持久化代码,甚至hbm文件,还可以做业务流程建模、生成数据字典报表等等。但PD最擅长的就是CDM-->PDM-->SQL,数据库反向 工程,报表功能,用好这些就不错了。


本文转载自:http://lavasoft.blog.51cto.com/62575/187158/

china008
粉丝 6
博文 286
码字总数 30406
作品 0
海淀
私信 提问
【PPT分享】PowerDesigner10.0与模型驱动开发.ppt

作者简介 我的名字是王晓昀 (WANG Xiao Yun) 我于1978年上北京大学.只上了三个月. 我于1979年去法国上学 1986年大学毕业后在巴黎的SDP软件公司工作 1988年开始开发PowerDesigner 1989年开发在...

红薯
2010/09/03
1K
9
PowerDesigner 16.5 安装配置

PowerDesigner16.5破解版是一款业内领先且开发人员常用的数据库建模工具,PowerDesigner可以从物理和概念两个层面设计数据库,方便用户制作处清晰直观的数据流程图和结构模型,欢迎有需要的朋...

Gibbons
2018/07/22
0
0
跨平台的 PowerDesigner-ERMaster

在linux一直没有找到一款可以替代powerdesigner的软件,每次设计数据库都得打开虚拟机,比较麻烦,某日,突然发现了一个不错的替代品-ERMaster,官网是http://ermaster.sourceforge.net,这个...

鉴客
2012/05/27
3.6K
1
PowerDesigner 15—— 企业架构建模的原动力

一、 引言 正 如建筑蓝图是建设一座高楼大厦的基石一样,企业架构对一个企业的生存和发展具有同样至关重要的作用。随着企业的发展,企业的信息系统与业务关联越来越紧 密,信息系统的复杂度和...

红薯
2009/02/03
5.8K
0
PowerDesigner中pdm物理模型中 Name和Comment相互转换

在使用PowerDesigner对数据库进行概念模型和物理模型设计时,一般在Name或Comment中写中文,在Code中写英文。Name用来显示,Code对应数据库中的列名,Comment中的文字会保存到数据库Table或C...

Oo若离oO
2018/07/23
80
0

没有更多内容

加载失败,请刷新页面

加载更多

Handler消息传递机制分析

Handler的用途和用法 写过Android程序的人大概都会遇到ANR(Application Not Responding)。如果程序在一段时间内没有响应,系统就会弹出一个对话框,让用户选择继续等待还是强制关闭应用。为...

tommwq
今天
5
0
JS前端MD5加密

Bootstrap官网获得md5 js地址:https://www.bootcdn.cn/blueimp-md5/ <!--MD5加密--><script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.js"></script> 使用方法: md5(pwd)......

被毒打的程序猿_先瑞
今天
6
0
BigDecimal 去后面无用的0的方法

BigDecimal a=new BigDecimal("0.1000"); System.out.println(a.stripTrailingZeros().toPlainString());...

xiaodong16
今天
7
0
JAVA--高级基础开发

[集合版双色球] 十二、双色球规则:双色球每注投注号码由6个红色球号码和1个蓝色球号码组成。红色球号码从1—33中选择;蓝色球号码从1—16中选择;请随机生成一注双色球号码。(要求同色号码...

李文杰-yaya
昨天
26
0
聊聊rocketmq broker的CONSUMER_SEND_MSG_BACK

序 本文主要研究一下rocketmq broker的CONSUMER_SEND_MSG_BACK CONSUMER_SEND_MSG_BACK rocketmq/common/src/main/java/org/apache/rocketmq/common/protocol/RequestCode.java public class......

go4it
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部