PowerDesigner概念模型详解-阿里云开发者社区

开发者社区> 技术小阿哥> 正文

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,数据库反向工程,报表功能,用好这些就不错了。


本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/187158,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
PowerDesigner教程系列(三)概念数据模型
原文http://www.cnblogs.com/yxonline/archive/2007/04/09/705718.html 目标:本文主要介绍属性的标准检查约束、如何定义属性的附加检查。一、定义属性的标准检查约束标准检查约束是一组确保属性有效的表达式。
766 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4477 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
9423 0
PowerDesigner教程系列(四)概念数据模型
原文http://www.cnblogs.com/yxonline/archive/2007/04/11/708271.html   目标:本文主要介绍如何定义实体的主、次标识符。一、标识符标识符是实体中一个或多个属性的集合,可用来唯一标识实体中的一个实例。
633 0
PowerDesigner 教程系列(八)概念数据模型
原文 http://www.cnblogs.com/yxonline/archive/2011/01/14/1935708.html   目标:本文主要介绍域的概念以及使用。   一、概念 域:实际上就是一个取值范围,也可扩展为一个数据类型。
696 0
PowerDesigner教程系列(七)概念数据模型
原文http://www.cnblogs.com/yxonline/archive/2011/01/14/1935612.html 新年开篇说明: 很感谢大伙对此系列教程的关注,因为工作的很多原因,一 直没时间静下心来整理新的教程,担心没有自己没有理解清楚写出来误导大伙,故一拖再一拖,几年过去了,最近又收到很多网友的邮件要求继续写下去,没能一一 回复,还望谅解。
796 0
8434
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载