点击菜单“File”---->“New Model”

点击【OK】按钮后,将进入如下的画面

系统将出现一个工具栏如下,用于在设计面板中设计模型

单击Entity图标,然后在主面板中单击一次便可添加一个实体

切换回一般鼠标模式,双击已经添加的实体,弹出设置属性的对话框

在General选项卡中可以设置实体的Name和Code等属性,如下图所示:Code是实体在数据库中的实际名称,一般用英文,Name是显示的名称,一般用中文,方便理解

切换到Attributes选项卡可以添加实体的属性

设置完成之后如下图所示

关系

  关系用于表示一个实体与另一个实体之间的对应关系,分为“一对一(1:1),一对多(1:n),多对一(n:1),多对多(m:n)”4种对应关系,一对多和多对一其实就是方向相反,所以实际上就是一对一,一对多,多对多。最常用的就是“一对多(1:n)”,比如公司实体和员工实体就是一对多关系,一个公司有多名员工,而一名员工只会属于一个公司,再比如班级实体和学生实体就是一对多关系,一个班级有多个学生,一个学生只会属于一个班级。

  在设计面板中添加一个班级(Class)实体,然后建立班级实体和学生实体的“一对多”关联关系,如下图所示:

系统默认会给该关系命名为Relationship_1,切换到鼠标指针模式,双击Relationship_1,即可打开关系的属性窗口,如下图所示:

切换到Cardinalities选项卡,如下图所示:

  这里可以修改是一对多还是多对多之类的关系,Role name是设置在模型中显示的文字,没有多大的意义,多的一方有0,n和1,n两种,也就是说,一个班级可以对应多个学生,那么一个班级中最少是没有学生还是要至少存在一个学生,同意的一的一方有0,1和1,1两种,就是说一个学生可以不属于任何班级呢还是必须属于某一个存在的班级,而现实生活中比较符合常理的应该是“一个班级中至少存在一个学生,学生必须属于某一个存在的班级”,所以这里都选至少是1,所以最终的设置界面如图:

最终生成的E-R图如下:

继承

  在概念模型中的继承与OO模型中的继承是同一回事,就是要抽象出一个实体,其他实体,其他实体继承该实体后就拥有该实体的属性。

  以选课系统为例子,现在有学生实体,有教师实体,其实他们都是人,具有人的属性,所以我们可以抽象出一个人的实体,人具有性别,生日,名字,年龄等属性,教师具有职称、工号等属性,这是学生没有的,所以不能放在人实体中,学生具有学号属性是教师没有的。

  在概念模型中创建具有继承关系的E-R图之前,首先要开启工具栏上被禁用掉的三个图标,如下图所示:

关于如何开启工具栏上被禁用掉的三个图标,参考"开启PowerDesigner15工具栏上的被禁用掉的图标"

在概念模型中创建具有继承关系的E-R图

  这里的继承只是概念模型,在DBMS中是没有继承这种说法的,所以在逻辑模型和物理模型中,系统就会将继承转换为实际的实体和表,这里只是概念模型,所以才有继承的说法。

关联(Association)

  Association也是一种实体间的连接,在Merise模型方法学理论中,Association是一种用于连接分别代表明确定义的对象的不同实体,这种连接仅仅通过另一个实体不能很明确地表达,而通过“事件(Event)”连接来表示。也就是说,实体和实体之间存在着关系(多对多),但是这种关系还存在其他的属性,这些属性如果作为一个明确的实体来表示又不合适,所以就使用了Association来表达,这种关系之间一般是一个“事件”虚实体,也就是说是一个动词对应的实体。

  以实际的例子来说明:现在有了学生实体,有课程实体,一个学生可以选择多门课程,一门课程也可以被多个学生选择来学习,所以学生和课程之间就存在一个“选课”的Association,Association记录了学生选课的时间,选课的状态;一个学生会对应多个选课结果选择多门课程,,一门课程对应多个选课学生选课,所以“学生实体”和“课程实体”与“选课”的关系都是“一对多”,添加关联连接,一门课程可能太枯燥了,没有学生来选,所以“课程”对应“选课”可能是0,n的关系,一个学生可能学分够了这学期一门课都不选,所以“学生”对应“选课”也可能是0,n的关系,所以最终形成的概念模型如下图所示:

在Powerdesigner中创建概念数据模型的更多相关文章

  1. 在powerdesigner中创建物理数据模型

    物理数据模型(PDM)是以常用的DBMS(数据库管理系统)理论为基础,将CDM/LDM中所建立的现实世界模型生成相应的DBMS的SQL语言脚本.PDM叙述数据库的物理实现,是对真实数据库的描述 PDM ...

  2. PowerDesigner中创建Oracle表全过程记录

    本文记录如何在PowerDesigner中创建一个Oracle结构的表. 在进行本文阅读之前,需要在PowerDesigner进行 DBMS修改,DataBase创建,用户创建,表空间创建.   1. ...

  3. PowerDesigner使用教程 —— 概念数据模型 (转)

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

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

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

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

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

  6. PowerDesigner概念数据模型 CDM

    目标:本文主要介绍PowerDesigner中概念数据模型 CDM的基本概念. 一.概念数据模型概述数据模型是现实世界中数据特征的抽象.数据模型应该满足三个方面的要求:1)能够比较真实地模拟现实世界2 ...

  7. PowerDesigner 概念数据模型(CDM) 说明

        ref: https://blog.csdn.net/tianlesoftware/article/details/6871179 关于PowerDesigner的说明参考: PowerDes ...

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

    目标:本文主要介绍PowerDesigner概念数据模型以及实体.属性创建.一.新建概念数据模型1)选择File-->New,弹出如图所示对话框,选择CDM模型(即概念数据模型)建立模型. 2) ...

  9. PowerDesigner 概念数据模型

    (转自:http://www.cnblogs.com/yxonline/archive/2007/04/09/705479.html) 目标:本文主要介绍PowerDesigner中概念数据模型 CD ...

随机推荐

  1. 最后一面《HR面》------十大经典提问

    1.HR:你希望通过这份工作获得什么? 1).自杀式回答:我希望自己为之工作的企业能够重视质量,而且会给做得好的员工予以奖励.我希望通过这份工作锻炼自己,提升自己的能力,能让公司更加重视我. a.“我 ...

  2. JVM性能调优监控工具——jps、jstack、jmap、jhat、jstat、hprof使用详解

    摘要: JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps.jstack.jmap.jhat.jstat.hprof等小巧的工具,本博客希望 ...

  3. 在 Python 中使用 GDB 来调试 转载

    2013/11/01 | Comments 大约一年前,我接触了 Java 中的 Btrace 能够不停机查看线上 JVM 运行情况的特性让我艳羡不已. 另外还有强悍的 jStack 和 jConso ...

  4. 第一篇CodeIgniter框架的下载及安装

    初次学习Php,网上搜了很多php框架,最后选择了CodeIgniter. 安装环境:php5+mysql6.5+iis7 我的电脑是用来办公写文档用的,win7系统,不想换系统,所以就安装了win7 ...

  5. 一步一步学习IdentityServer3 (15) 授权模式那些事

    总结一句话,其实很简单 在什么Clients 拿的认证权限Scope 就去 去开什么Scope限制的服务接口门 在写Clients的时候,会有Scope,看下面的代码 new Client { Cli ...

  6. ABP zero 3.2 发布

    v3.2.0 (2017-03-07) Common Tenant based UI customizations (allow tenants to upload custom CSS and lo ...

  7. Django实战(22):处理登录和注销

    我们已经可以在view函数中判断用户是否已经登录以及获取用户信息: if request.user.is_authenticated(): #判断用户是否已登录 user = request.user ...

  8. Django实战(12):增加目录页,设定统一布局

    针对上一节的新需求,界面设计师还为我们设计了一个新的界面,不仅仅是目录页,还包含了站点的整体风格,如下图: 感谢界面设计师为我们提供的“又黑又硬”的工具条,这个看起来真的很酷.下面,让我们来享用她的工 ...

  9. Windows下的Apache

    https://blog.csdn.net/weixin_39082031/article/details/79088800

  10. CTF Writeup 一个专门收集WP的网站

    www.ctfwp.com 创建于2019-04-15 致力于收集网上公开writeup,方便大家学习.