文章目录

  • CDM概念
    • 实体(entity)
    • 域(domain)
    • 联系(relationship)
    • 一对一双向关联模型
    • 一对一单向关联模型
    • 一对多关系
    • 多对多
  • 实体继承
    • 法一 :生成各自子表
    • 法二:只生成父表,加字段区分子表类型
    • 法三:主从表都要,靠外键关联

CDM概念

CDM表达的是数据库的整体逻辑结构,该结构独立于任何软件和数据存储结构,即它只是系统分析人员、应用程序设计人员、维护人员和用户之间相互理解的共同语言,并不针对具体的数据库平台(如Oracle或SQLServer)和工具(PowerBuilder)

实体(entity)

实体是现实世界中可区别于其他对象的“物体”,它可能是有形或无形的,具体或抽象的,有生命或无生命的。
每个实体有一组特征,称为实体的属性,用来描述实体的状态和特征(实际上就是Data Items)。

域(domain)

域(Domain)是某个或某丝属性的取值范围,定义域后可以被多个实体的属性共享使用域的定义在模型设计中具有重要意义,使得不同实体中的属性标准化更加容易。通俗的比喻,域就是数据类型的抽象。域在很多模型中都有出现。

联系(relationship)

实体可以通过联系(Relationship)相互关联。
按照实体之间的数量对应关系,通常可将联系分为:一对一联系(One to One)、一对多联系(One to Many)、多对多联系(Many to Many)等。
例如:

注意Mandatory选项:

一对一双向关联模型

几个模型是可以相互转化的,这里看下CDM转LDM的效果


对比一下两个模型
CDM

LDM

可以看到用户表和护照表分别都出现了对方的主键,也就意味着将来生成数据表后,可以通过护照查询用户,也可以通过用户查询护照。这个查询是双向的,下面看单向的咋整。

一对一单向关联模型

这个是一对一关系才有的设置,对于一对多模型,主表已经定好了,都是从表保存主表的主键。具体设置看下面:

这里的设置表示用户才是主表。

可以看到用户表一侧有一个大写的字母D表示主表(Dominant role),如果是直接用的双向管理中的实体,会有问题,原来的实体已经有关系,因此需要将实体进行拷贝,实体下面的数据项可以不用重命名可共用:

对象浏览器中是这样:

最后生成LDM的结果如下:

一对多关系

一般是从主表画向从表,当然从从表画到主表也可以,但是需要在关系属性页面修改cardinalities(最后得到是多对一关系)。例如下面的部门与员工实体:

如果实在搞不明白可以看最上面的描述:
Each部门must have one or more员工
Each员工must have one and only one部门
生成LDM:

多对多

多对多关系是先创建一对多关系,然后在关系属性页面修改cardinalities,例如下面的学生与课程的关系:

生成LDM的结果如下:

可以看到这里生成了一个中间表,中间表的字段分别是学生表和课程表的pi项。
中间表的主键是由两个字段组成的联合主键。
这里我们不需要在中间表存放额外的信息,因此可以直接设计多对多关系,如果我们需要存放额外信息就要将多对多关系拆分设计为两个一对多关系,例如:我们需要保存学生每门课程考试的分数,此时需要手动添加课程考核实体。

生成LDM:

发现在生成的LDM中,考核信息中间表中没有主键,这里有两种解决方案:
第一种是在考核信息中间表设置自己的主键,学号和课程编号做外键;
第二种是在CDM的一对多关系中设置依赖关系

设置了依赖关系后,主表的主键就会以主键的身份出现在从表中,我们将考核信息表的两个主表的关系中都设置上依赖关系:

可以看到有依赖关系的实体会出现小三角形。
再次生成LDM:

考核信息表中现在有了联合主键。

实体继承

最常见的实体继承场景就是多用户系统,一个系统通常会有不同用户或角色,每个用户有相同的属性或字段,也有不同的属性。在PD的CDM里面可通过设置继承来完成不同的多用户表设计。下图为一个父表三个子表继承的例子:

法一 :生成各自子表

各自生成对应表,在继承关系属性页中不勾选生成父表。

生成LDM的结果如下:

可以看到子表中都从父表拷贝了对应字段,在PDM中父表将会消失。

法二:只生成父表,加字段区分子表类型

1.在所有继承关系中不勾选Generate children;
2.仅需在其中一个继承关系中加区分子表类型的字段。

生成LDM如下:

在最终的PDM中子表将不会出现,只有主表。

法三:主从表都要,靠外键关联

在继承关系属性页中勾选生成父表和子表,但单选框中选择只继承主键即可。

最后生成LDM如下:

关于toolbox的继承按钮灰色无法点击的解决方法如下:
选择菜单:tools->model options->Notation 改为"E/R+Merise"

05.概念数据模型CDM相关推荐

  1. 物理数据模型(PDM)-概念数据模型 (CDM)-面向对象模型 (OOM):适用于已经设计好数据库表结构了。...

    步骤如下: 一.反向生成物理数据模型PDM 开发环境 PowerDesigner 15 ,SQL Server2005 (1)在开始逆向生成PDM图之前,需要为指定的数据库创建ODBC数据源.以Win ...

  2. mysql生产cdm文件_PowerDesigner 概念数据模型(CDM) 说明

    Conceptual Data Model:概念数据模型,它以实体-联系(Entity-RelationShip, E-R)理论为基础,并对这一理论进行了扩充.它从用户 关于PowerDesigner ...

  3. 三、概念数据模型CDM(Conceptual Database Model )

    最后整理一下正确的是: 脚本1: .set_value(_First, true, new)  .foreach_part(%Name%, "'#'")  .if (%_First ...

  4. PowerDesigner(五)-概念数据模型(CDM生成LDM,PDM和OOM)

     概念数据模型 概念数据模型(Conceptual Data Model,CDM):表达的是数据整体逻辑结构,该结构独立于任何软件和数据存储结构,即它只是系统分析人员,应用程序设计人员,维护人员和用户 ...

  5. 五、概念数据模型(CDM生成LDM,PDM和OOM)

      概念数据模型 概念数据模型(Conceptual Data Model,CDM):表达的是数据整体逻辑结构,该结构独立于任何软件和数据存储结构,即它只是系统分析人员,应用程序设计人员,维护人员和用 ...

  6. PowerDesigner--创建概念数据模型;并生成逻辑数据模型/物理数据模型/数据库SQL脚本

    PowerDesigner–创建概念数据模型 Conceptual Data Model 概念数据模型(CDM)帮助您分析信息系统的概念结构,以识别要表示的主要实体.它们的属性以及它们之间的关系. C ...

  7. 概念建模(CDM)-------数据建模(一)

    在网上也看了很多有关概念建模的理解和表述,但是都很难理解,非常的空洞,所以我决定写这个博客.谈谈我对概念建模的理解,希望大家能够提一些意见,大家一起进步. 概念 概念数据模型(CDM)中包含概念以及定 ...

  8. PowerDesigner教程系列(四)概念数据模型

    PowerDesigner教程系列(四)概念数据模型 原文http://www.cnblogs.com/yxonline/archive/2007/04/11/708271.html 目标: 本文主要 ...

  9. PowerDesigner 教程篇 - 概念数据模型

    一.概念数据模型概述     概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充.它从用户的观点出发对信息进行建模,主要用 ...

最新文章

  1. 无法对jar进行签名,Android jar signer问题
  2. LtRecyclerView:自带上拉下拉,能增加头条目和尾条目的RecyclerView
  3. 元计算:《元计算破解生命密码》听课笔记
  4. linux java静默安装软件,linux纯净版脚本执行安装JDK、静默安装Weblogic
  5. flume 一对多hdfs_10PB 规模的 HDFS 数据在 eBay 的迁移实战
  6. 详解spring框架入门到精通
  7. C/C++头文件全解析
  8. MySQL数据表查询操作
  9. 东方木分享:如何快速的安装网吧系统
  10. 数据分析-用python分析中国五大城市的PM2.5值(ols建立回归模型)
  11. HTML5期末大作业:红酒销售网页网站设计——品牌红酒销售网页模板(4页) html网页设计期末大作业_网页设计平时作业
  12. database rough 1
  13. 快递停发区域查询(需指定快递公司) 接口说明
  14. javascript可以直接比较时间字符串的大小
  15. cmt obm odm 代工模式oem_作为经销商如果你不懂什么是OEM、ODM、OBM?代工、贴牌是什么?那就把这些记住!...
  16. 如何快速查询全部单号物流,导出详细的物流信息
  17. 现代APaaS产品的5C特点
  18. 大数据 python hadoop_大数据与Hadoop
  19. 淮阴中学2021高考成绩查询,2019淮中、清中、滨河等高中高考成绩公布!全线飘红....附江苏省理科前十名的考生名单。...
  20. VBA-不打开工作簿提取数据

热门文章

  1. 2021必看,今日教学:RestTemplate-结合-Ribbon-使用
  2. Opencv Python:图片与视频互转
  3. 【Web基础入门】一文搞懂HTML + CSS + JavaScript 简单了解
  4. qq群排名霸屏技巧排名推广
  5. html插入隐藏背景音乐,HTML插入背景音乐方法【全】
  6. 优麒麟设置root登入
  7. [usaco 2009 dec]游荡的奶牛
  8. description标签如何正确使用?
  9. scala中下划线的几种含义
  10. Excel怎么调出开发工具选项