第四章 PowerDesigner概念模型详解.pdf
文本预览下载声明
PowerDesigner 概念模型详解
一、概念模型的重要性
PowerDeigner 是最强大、最优秀的数据建模工具,是Sybase 公司最伟大的产品。从
9 一直用到现在,对PD 的认识也是在逐步加深。
常常在工作中,看到大家用PD,都是用来建几个表,实际上是做PDM (Physical Data
Model),上来就干这个,实际上,这么用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 (Conceptual Data Model )概念模型的好处是交流容易,全世界通用,谁看了
都明白。你难道能用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 文件,还可以做
业务流程建模、生成数据字典报表等等。但
显示全部