PowerDesigner(五)-概念数据模型(CDM生成LDM,PDM和OOM)
概念数据模型
概念数据模型(Conceptual Data Model,CDM):表达的是数据整体逻辑结构,该结构独立于任何软件和数据存储结构,即它只是系统分析人员,应用程序设计人员,维护人员和用户之间相 互理解的共同语言,并不针对具体的数据库平台(如Oracle或SQL Server)和工具(PowerBuilder)。CDM所包含的对象通常并没有在物理数据库中实现。
CDM可以完成以下工作:
- 数据图形化,形象化
- 数据表设计的合法校验
- 转化为PDM(Physical Data Model,物理数据模型)
- 生成OOM(Object-Oritented MOdel,面向对象模型)的类图
通常CDM采用实体-联系图(Entity-Relation Graph,E-R图)来表示("实体"和“联系”的概念)。目前,E-R图示CDM最流行的一种表达方式。
1.基本概念和约定
1.1实体与属性
实体是现实世界中可区别于其他对象的“物体”,它可能是有形或无形的,具体或抽象的,有生命或无生命的。
每个实体有一组特征,称为实体的属性,用来描述实体的状态和特征。如:某个员工,姓名:吊丝,性别:男,这些指标表示了吊丝这个实体的各项属性。
实体与属性之间的关系如图5-1所示。
图5-1
1.2联系
实体可以通过联系(Relationship)相互关联。按照实体之间的数量对应关系,通常可以将联系分为:一对一联系(One to
One),一对多联系(One to Many),多对多联系(Many to Many),递归联系(Recursive
Relationship)以及标识关系(Identify Relationship)等。
多对多联系
递归联系
1.3域
域(Domain)是某个或某些属性的取值范围,定义域后可以被多个实体的属性共享使用,域的定义在模型设计中具有重要意义,使得不同实体中的属性标准化更加容易。
1.4业务规则
业务规则反映了信息系统所描述对象的特殊的数据完整约束。一个业务规则可以是一个行业标准,一个客户需求或一本软件开发规范手册。当实体中包含的信息发生变化时,
系统都会检查这些信息是否违反了特定的业务规则。因此在创建业务规则之前,必须首先明确数据之间存在的约束关系。
2.建立概念模型
2.1确定业务问题
在BPM中已经明确了业务流程问题,在此基础上从中提炼出需要存储的信息。其中包括与业务有关的实体,实体间的关系,特殊的业务规则等。这些问题将成为建立CDM的基础。
2.2建立概念模型
(1)选择File-New Model命令,弹出如图5-2所示的窗口。选择Conceptual Data Model(概念模型)。
图5-2
(2)单击“确定”按钮,打开如图5-3所示的CDM工作区。在工作区包括左侧的浏览器窗口,右侧的设计窗口,下侧的输出窗口和浮动的工具窗口(Palette),可以利用工具窗口中的图标在设计窗口中设计E-R图。
图5-3
(3)建立实体及实体间的联系。
3.CDM生成LDM
LDM是PowerDesigner 15的新增模型,用于完成信息系统的逻辑设计。虽然LDM任然独立于DBMS的,但却可以进行外部键,索引,视图等对象的设计工作。
CDM生成LDM的具体方法如下:
(1)打开CDM模型,选择Tools-Generate Logical Data Model命令,打开如图5-4所示的LDM Generation Options(生成LDM的选项设置)窗口。
图5-4
(2)选择Detail选项卡,进行其他选项的设置。
(3)选择Selection选项卡,可以选择CDM,实体,如图5-5所示。
图5-5
(4)单击“确定”按钮,开始生成LDM。如图5-7所示。
图5-7
注:LDM的主要内容是介于CDM与PDM之间。
4.CDM生成PDM
CDM完成的是信息系统的概要设计,但在数据库的物理设计阶段必须在此基础上进行详细的后台设计,只有将CDM转换成PDM才能完成该阶段的设计工作。在
CDM生成PDM之前必须要选择一种DBMS作为目标数据库,CDM中定义的实体属性的数据类型将转换为目标数据库对的数据类型。
CDM生成PDM时,其中的对象要转换成PDM中的对象,即物理数据库中的对象。
CDM生成PDM的具体过程如下:
(1)打开CDM模型,选择Tools-Generate Physical Data
Model命令,打开如图5-8所示的窗口。在General选项中选择生成PDM的方式及参数。选中Generate new Physical
Data
Model单选按钮表示生成新的PDM,DBMS表示目标数据库管理系统(及版本),Name表示目标PDM的名称,Code表示目标PDM的代码。选中
Update existing Physical Data Model单选按钮则表示与已经存在的PDM合并生成新的PDM。
图5-8
(2)选择Detail选项卡,进行详细选择设置。
(3)选择Selection选项卡,选择要转换为PDM表的实体,如图5-9所示。
图5-9
(4)单击"确定"按钮,开始生成PDM。如果在Detail选项卡中选中Check model复选框,则在Result List窗口中将显示在处理过程中出现的警告,错误和提示信息。
(5)根据提示对出现的警告和错误进行修改。
(6)生成PDM如图5-10所示。如果PDM中显示的信息过多,难以阅读,可以通过更改Tools-Display Preferences命令设置以减小信息的信息。
图5-10
5.CDM生成OOM
当从CDM生成OOM时,PowerDesigner将CDM中的对象和数据类型转换成UML语言支持的OOM对象和数据类型。
CDM生成OOM的的具体步骤如下:
(1)打开CDM模型,选择Tools-Generate Object-Oriented Model命令,打开如图5-11所示窗口。
图5-11
(2)选择Detail选项卡,进行其他选项的设置。
(3)选择Selection选项卡,可以选择CDM,包和实体。
(4)单击“确定”按钮,开始生成OOM。效果如5-12所示。
图5-12
6.小结
以上通过CDM生成LDM,PDM和OOM模型,只是将系统的概要设计转化成相关的内容,为系统的详细审计生成了框架,此后还需要再LDM,PDM和OOM中进一步设计,例如:在PDM中添加存储过程,触发器,在OOM中设计用例图等。
PowerDesigner(五)-概念数据模型(CDM生成LDM,PDM和OOM)的更多相关文章
- PowerDesigner(五)-概念数据模型(CDM生成LDM,PDM和OOM)(转)
概念数据模型 概念数据模型(Conceptual Data Model,CDM):表达的是数据整体逻辑结构,该结构独立于任何软件和数据存储结构,即它只是系统分析人员,应用程序设计人员,维护人员和用户之 ...
- 五、概念数据模型(CDM生成LDM,PDM和OOM)
概念数据模型 概念数据模型(Conceptual Data Model,CDM):表达的是数据整体逻辑结构,该结构独立于任何软件和数据存储结构,即它只是系统分析人员,应用程序设计人员,维护人员和用 ...
- PowerDesigner概念数据模型 CDM
目标:本文主要介绍PowerDesigner中概念数据模型 CDM的基本概念. 一.概念数据模型概述数据模型是现实世界中数据特征的抽象.数据模型应该满足三个方面的要求:1)能够比较真实地模拟现实世界2 ...
- PowerDesigner 概念数据模型(CDM)
大 中 小 PowerDesigner 概念数据模型(CDM) 说明 2014-05-07 大数据深... 来源 阅 51 转藏到我的图书馆 微信 分享: QQ空间 QQ好友 新 ...
- 物理数据模型(PDM)->概念数据模型 (CDM)->面向对象模型 (OOM):适用于已经设计好数据库表结构了。
物理数据模型(PDM)->概念数据模型 (CDM)->面向对象模型 (OOM):适用于已经设计好数据库表结构了. 步骤如下: 一.反向生成物理数据模型PDM 开发环境 PowerDes ...
- 概念数据模型CDM基础
概念数据模型CDM 概念数据模型是设计数据库不可或缺的一步,是整个数据库设计的关键,CDM的主要作用如下: 1)能够真实地模拟真实世界,是需求分析人员和数据库设计人员沟通的桥梁.2)将系统需求分析得到 ...
- PowerDesigner 概念数据模型(CDM) 说明
ref: https://blog.csdn.net/tianlesoftware/article/details/6871179 关于PowerDesigner的说明参考: PowerDes ...
- PowerDesigner 概念数据模型
(转自:http://www.cnblogs.com/yxonline/archive/2007/04/09/705479.html) 目标:本文主要介绍PowerDesigner中概念数据模型 CD ...
- PowerDesigner教程系列(一)概念数据模型
目标: 本文主要介绍PowerDesigner中概念数据模型 CDM的基本概念. 一.概念数据模型概述 数据模型是现实世界中数据特征的抽象.数据模型应该满足三个方面的要求:1)能够比较真实地模拟现实世 ...
随机推荐
- Swift调用Objective-C
Swift调用Objective-C需要一个名为“<工程名>-Bridging-Header.h”的桥接头文件,如下图所示.桥接头文件的作用是为Swift调用Objective-C对象搭建 ...
- dorado spring知识补充
一定要加context配置,无法扫描到注入@Componet的类 在app-context.xml添加一句代码 <context:component-scan base-package=&quo ...
- 限制SSH访问源,禁止4A之外的地址跳转访问
[fuel节点] 在/etc/hosts.allow文件中添加: sshd:10.129.0.1:allow sshd:10.129.0.2:allow sshd:10.129.0.3:allow s ...
- 基于IOS和Android设备MDM技术方案服务价格
导读:前段时间 www.mbaike.net 博客被恶意攻击,导致程序崩溃,目前已经替换了以前的Wordpress程序,现提供IOS和Android版本MDM的代码和相关文档咨询服务. 一.IOS版M ...
- [DevExpress]ChartControl之饼状图百分比示例
关键代码: using System; using System.Data; using System.Windows.Forms; using DevExpress.XtraCharts; name ...
- jquery 点击查看,收起特效
<div class="all"> <p><a href="javascript:;" id="onvk"&g ...
- ACE_linux:TCP通信
1.涉及类 ACE_INET_Addr//ACE网络地址ACE_SOCK_Acceptor//ACE网络服务器ACE_SOCK_Connector//ACE网络客户端ACE_SOCK_Stream// ...
- 51nod1417 天堂里的游戏
---恢复内容开始--- 1417 天堂里的游戏 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 多年后,每当Noder看到吉普赛人,就会想起那个遥 ...
- HttpUnit学习笔记
<!-- htmlUnit --> <dependency> <groupId>net.sourceforge.htmlunit</groupId> & ...
- python 控制台输出中文乱码问题
乱码原因: 源码文件的编码格式为utf-8,但是window的本地默认编码是gbk,所以在控制台直接打印utf-8的字符串当然是乱码了! 解决方法: 1,print mystr.decode('utf ...