在Powerdesigner中创建概念数据模型
点击菜单“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中创建概念数据模型的更多相关文章
- 在powerdesigner中创建物理数据模型
物理数据模型(PDM)是以常用的DBMS(数据库管理系统)理论为基础,将CDM/LDM中所建立的现实世界模型生成相应的DBMS的SQL语言脚本.PDM叙述数据库的物理实现,是对真实数据库的描述 PDM ...
- PowerDesigner中创建Oracle表全过程记录
本文记录如何在PowerDesigner中创建一个Oracle结构的表. 在进行本文阅读之前,需要在PowerDesigner进行 DBMS修改,DataBase创建,用户创建,表空间创建. 1. ...
- PowerDesigner使用教程 —— 概念数据模型 (转)
一.概念数据模型概述 概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充.它从用户的观点出发对信息进行建模,主要用于 ...
- PowerDesigner(五)-概念数据模型(CDM生成LDM,PDM和OOM)(转)
概念数据模型 概念数据模型(Conceptual Data Model,CDM):表达的是数据整体逻辑结构,该结构独立于任何软件和数据存储结构,即它只是系统分析人员,应用程序设计人员,维护人员和用户之 ...
- PowerDesigner(五)-概念数据模型(CDM生成LDM,PDM和OOM)
概念数据模型 概念数据模型(Conceptual Data Model,CDM):表达的是数据整体逻辑结构,该结构独立于任何软件和数据存储结构,即它只是系统分析人员,应用程序设计人员,维护人员和用户之 ...
- PowerDesigner概念数据模型 CDM
目标:本文主要介绍PowerDesigner中概念数据模型 CDM的基本概念. 一.概念数据模型概述数据模型是现实世界中数据特征的抽象.数据模型应该满足三个方面的要求:1)能够比较真实地模拟现实世界2 ...
- PowerDesigner 概念数据模型(CDM) 说明
ref: https://blog.csdn.net/tianlesoftware/article/details/6871179 关于PowerDesigner的说明参考: PowerDes ...
- PowerDesigner教程系列(二)概念数据模型
目标:本文主要介绍PowerDesigner概念数据模型以及实体.属性创建.一.新建概念数据模型1)选择File-->New,弹出如图所示对话框,选择CDM模型(即概念数据模型)建立模型. 2) ...
- PowerDesigner 概念数据模型
(转自:http://www.cnblogs.com/yxonline/archive/2007/04/09/705479.html) 目标:本文主要介绍PowerDesigner中概念数据模型 CD ...
随机推荐
- 基于docker 搭建Elasticsearch6.2.4(centos)
一.介绍 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为 ...
- 选择性卸载eclipse安装过的工具
我们有时候需要卸载eclipse中之前安装的一些工具,而不想全部删除,那就可以采取下面的方式: 打开eclipse,Help->About Eclipse->Installation De ...
- oracle创建job和删除job
https://blog.csdn.net/u010001043/article/details/56479774
- C语言可变参数个数
#include <stdio.h>#include <stdarg.h> void test(const char * format, ...); int main(void ...
- Web层的Controller代码逻辑
需要做的功能: 1.数据的校验. 为什么不在后面的Service层校验呢? 原因:Service是通用的,而调用方Controller有多个,每一个Controller代表一个业务,这些业务需要校验的 ...
- java8的几种常用用法
1. 如果接口的返回值有可能是null,请用Optional封装 public Optional<User> getUser() { return Optional.ofNullable( ...
- R语言实战(六)重抽样与自助法
本文对应<R语言实战>第12章:重抽样与自助法 之前学习的基本统计分析.回归分析.方差分析,是假定观测数据抽样自正态分布或者其他性质较好的理论分布,进而进行的假设检验和总体参数的置信区间估 ...
- PHP编程基础学习(一)——数据类型
PHP一共支持8种原始类型,其中: 4种标量类型: boolean(布尔型) integer(整型) float/double(浮点型) string(字符串型) 两种复合类型: array(数组) ...
- 大数据技术之_16_Scala学习_04_函数式编程-基础+面向对象编程-基础
第五章 函数式编程-基础5.1 函数式编程内容说明5.1.1 函数式编程内容5.1.2 函数式编程授课顺序5.2 函数式编程介绍5.2.1 几个概念的说明5.2.2 方法.函数.函数式编程和面向对象编 ...
- 快递鸟电子面单打印功能基于java
之前的后天管理系统的电子面单打印使用的是灵通打单. 使用相对比较麻烦,需要到处Excel之后再导入,麻烦. 快递鸟有电子面单api,后台系统直接对接很是方便,不过也遇到了好些问题. 不难是不难,但是遇 ...