PowerDesigner概念模型详解

PowerDesigner概念模型详解sql

 

环境数据库

PowerDesigner 12.5数据库设计

Windows XP 中文版工具

 

1、概念模型的重要性测试

 

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

 

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

 

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

 

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

 

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

 

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

 

2、 使用PD创建数据库概念模型

 

一、一对一CDM

 

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

 

关系的设置:

 

将其生成PDM

 

 

二、一对多CDM

 

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

关系的设置:

 

生成的PDM

 

三、多对多CDM

 

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

 

关系设置,多对多关系最简单了,通常不须要设置:

 

生成的PDM以下:

 

 

四、继承关系CDM

 

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

 

 

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

 

生成的PDM以下:

 

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

 

3、总结

 

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

 

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

 

三、CDM也为后来了解底层业务数据关系提供了依据,尤为是表不少不少时候,若是没有CDM,那只有设计数据库的人知道底层的关系了。

 

四、若是表不少,分模块的状况,还能够讲CDM分包来管理,这样能够避免将全部的实体关系画到一张图中所带来阅读上烦恼。

 

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