`
bevan58
  • 浏览: 36913 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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

本文出自 “熔 岩” 博客,转载请与作者联系!

分享到:
评论
2 楼 xchao 2010-11-11  
同时附上公司的SQL代码吧!其实也很简单,就两个字段!
这里完全是为了练习实验,才这样弄的两个字段!
if exists (select 1
            from  sysobjects
           where  id = object_id('公司')
            and   type = 'U')
   drop table 公司
go

/*==============================================================*/
/* Table: 公司                                                    */
/*==============================================================*/
create table 公司 (
   ID                   nvarchar(100)        not null,
   Name                 nvarchar(100)        null,
   constraint PK_公司 primary key nonclustered (ID)
)
go
1 楼 xchao 2010-11-11  
不错的文章!

不过有个疑问想请楼主指点下,
对于上面各关系的设置、应用都能理解!
唯一不解的是,比如,那个公司-经理的例子,
很典型的一对多,在PDM中体现现出的也是正确的,
但仔细观察PD给经理表生成的代码
if exists (select 1
            from  sysindexes
           where  id    = object_id('经理')
            and   name  = 'Relationship_4_FK'
            and   indid > 0
            and   indid < 255)
   drop index 经理.Relationship_4_FK
go

if exists (select 1
            from  sysobjects
           where  id = object_id('经理')
            and   type = 'U')
   drop table 经理
go

/*==============================================================*/
/* Table: 经理                                                    */
/*==============================================================*/
create table 经理 (
   ID                   nvarchar(100)        not null,
   公司_ID                nvarchar(100)        not null,
   Name                 nvarchar(100)        null,
   constraint PK_经理 primary key nonclustered (ID)
)
go

/*==============================================================*/
/* Index: Relationship_4_FK                                     */
/*==============================================================*/
create index Relationship_4_FK on 经理 (
公司_ID ASC
)
go

如上,根本没有体现出在经理表里面应该有个外键,引用公司表的ID,
而PD生成的代码只是在外键列上创建了一个索引,
心想难道这个能执行成外键?
但仔细下想不应该啊,外键必须明确指出被引用的表,即主表(公司),
不知道这个问题医院如何理解,怎么想也想不通,不明白,
希望楼主能指点指点!

相关推荐

    PowerDesigner 概念模型详解

    本知识点将从概念模型的重要性、使用PowerDesigner建立数据库概念模型的方法以及概念数据模型的详细教程三个方面进行深入解析。 一、概念模型的重要性 概念模型是数据建模的起点,它描述了现实世界中数据的抽象...

    PowerDesigner概念数据模型详解(图示)

    ### PowerDesigner概念数据模型详解 #### 一、概念数据模型(CDM)基本概念 **概念数据模型**(Conceptual Data Model, CDM)是PowerDesigner中用于构建数据库设计的初始阶段的重要工具。它帮助用户从非技术的角度...

    从PowerDesigner概念设计模型

    ### 从PowerDesigner概念设计模型解析 #### 一、引言 在软件开发与数据库设计领域,PowerDesigner作为一款强大的工具,广泛应用于概念数据模型(Conceptual Data Model, CDM)的设计之中。本文将深入探讨从...

    PowerDesigner 概念模型物理模型

    ### PowerDesigner 概念模型与物理模型详解 #### 一、引言 在数据库设计领域,PowerDesigner是一款功能强大的工具,被广泛应用于概念模型、逻辑模型以及物理模型的设计与实现过程中。本文旨在深入探讨如何利用...

    PD、powerdesigner 概念模型

    ### PowerDesigner概念数据模型(CDM)深度解析 #### 引言 在软件工程与数据库设计领域,PowerDesigner作为一款强大的CASE(Computer-Aided Software Engineering)工具,被广泛应用于概念数据模型(Conceptual Data ...

    PowerDesigner 概念数据模型文档

    **PowerDesigner 概念数据模型文档详解** PowerDesigner是一款强大的数据建模工具,它在IT行业中广泛用于数据库设计和管理。概念数据模型(Conceptual Data Model,CDM)是PowerDesigner中的一个重要组成部分,它...

    PowerDesigner16.5 中文教程-数据库模型操作教程_详解

    1. 概念模型转为物理模型:将CDM转换为PDM,此过程会根据选定的DBMS生成符合其语法的结构。 2. 物理模型转概念模型:有时需要从PDM回溯到LDM,以便于理解和修改数据库设计。 3. 不同数据库之间的转化:...

    PowerDesigner中概念数据模型

    ### PowerDesigner中概念数据模型详解 #### 一、概念数据模型(CDM)基本概念 **概念数据模型**(Conceptual Data Model,简称CDM)是在PowerDesigner中用于描述信息的一种高级抽象模型。它主要用于数据库的概念级...

    Powerdesigner数据模型.docx

    ### PowerDesigner 数据模型详解 #### 一、PowerDesigner与数据模型设计 PowerDesigner作为一款业界领先的数据建模工具,由Sybase公司开发,其最新版本为12.5。该工具的强大之处在于它不仅能够帮助设计人员高效地...

    PowerDesigner12.5 教程系列--概念数据模型

    **PowerDesigner 12.5 概念数据模型详解** PowerDesigner是一款强大的数据库设计与建模工具,尤其在企业级应用开发中广泛使用。在12.5版本中,它提供了对概念数据模型(Conceptual Data Model, CDM)的强大支持,...

    PowerDesigner教程系列(六)概念数据模型.pdf

    PowerDesigner 概念数据模型教程 本文主要介绍了概念数据模型中的联系定义和使用。在 PowerDesigner 中,联系是指实体集之间或实体集内部实例之间的连接。实体之间可以通过联系来相互关联。 ### 一、 联系的定义 ...

    powerdesigner画ER图详解

    PowerDesigner 画 ER 图详解 ...PowerDesigner 画 ER 图是概念数据模型设计的一个重要步骤,通过 PowerDesigner,可以创建概念数据模型、实体、属性和标识符,定义属性的标准检查约束,确保数据的正确性和一致性。

    PowerDesigner 模型设计

    1. **创建新概念模型**:启动PowerDesigner后,选择创建新的概念模型,系统会提供一个用于设计的工具栏。 2. **添加实体**:通过工具栏中的“Entity”图标向模型中添加实体。 3. **设置实体属性**:双击实体打开其...

    powerdesigner操作详解手册

    PowerDesigner不仅支持物理数据模型(PDM)的设计,还支持概念数据模型(CDM)和逻辑数据模型(LDM)的构建,使得数据库设计过程更为系统化。它具有强大的逆向工程能力,可以从现有数据库中生成数据模型,并能正向...

    PowerDesigner物理模型手册(英文).pdf

    ### PowerDesigner 物理数据模型详解 #### 一、引言 在数据库设计与开发过程中,物理数据模型(Physical Data Model, PDM)是至关重要的一步。它不仅为数据库的实际构建提供了具体指导,而且也是系统设计阶段的重要...

    PowerDesigner使用教程 —— 概念数据模型.doc )

    ### PowerDesigner 使用教程 —— 概念数据模型详解 #### 一、概念数据模型(CDM)概述 概念数据模型(Conceptual Data Model, CDM)是一种高级别的抽象模型,主要用于数据库设计过程中的概念级设计阶段。它以实体-...

    详解PowerDesigner建模

    PowerDesigner不仅能够帮助开发团队构建高质量的数据模型,还提供了对企业业务流程模型(Business Process Model - BPM)、概念数据模型(Conceptual Data Model - CDM)、物理数据模型(Physical Data Model - PDM)和...

    PowerDesigner

    #### 五、PD概念模型工具与业务规则 - **定义业务规则**: 业务规则是指在业务活动中必须遵循的规则,用于约束业务信息之间的关系,确保数据的完整性和一致性。 - **作用**: 每当信息实体中的数据发生变化时,系统会...

Global site tag (gtag.js) - Google Analytics