Powerdesigner数据库建模--概念模型--ER图

目标:

本文主要介绍PowerDesigner中概念数据模型 CDM的基本概念。

一、概念数据模型概述

数据模型是现实世界中数据特征的抽象。数据模型应该满足三个方面的要求:

1)能够比较真实地模拟现实世界

2)容易为人所理解

3)便于计算机实现

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

通常人们先将现实世界抽象为概念世界,然后再将概念世界转为机器世界。换句话说,就是先将现实 世界中的客观对象抽象为实体(Entity)和联系(Relationship),它并不依赖于具体的计算机系统或某个DBMS系统,这种模型就是我们所 说的CDM;然后再将CDM转换为计算机上某个DBMS所支持的数据模型,这样的模型就是物理数据模型,即PDM。

CDM是一组严格定义的模型元素的集合,这些模型元素精确地描述了系统的静态特性、动态特性以及完整性约束条件等,其中包括了数据结构、数据操作和完整性约束三部分。

1)数据结构表达为实体和属性;

2)数据操作表达为实体中的记录的插入、删除、修改、查询等操作;

3)完整性约束表达为数据的自身完整性约束(如数据类型、检查、规则等)和数据间的参照完整性约束(如联系、继承联系等);

二、实体、属性及标识符的定义

实体(Entity),也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”。例如,学校中的每个学生,医院中的每个手术。

每个实体都有用来描述实体特征的一组性质,称之为属性,一个实体由若干个属性来描述。如学生实体可由学号、姓名、性别、出生年月、所在系别、入学年份等属性组成。

实体集(Entity Set)是具体相同类型及相同性质实体的集合。例如学校所有学生的集合可定义为“学生”实体集,“学生”实体集中的每个实体均具有学号、姓名、性别、出生年月、所在系别、入学年份等性质。

实体类型(Entity Type)是实体集中每个实体所具有的共同性质的集合,例如“患者”实体类型为:患者{门诊号,姓名,性别,年龄,身份证号.............}。实体是实体类型的一个实例,在含义明确的情况下,实体、实体类型通常互换使用。

实体类型中的每个实体包含唯一标识它的一个或一组属性,这些属性称为实体类型的标识符(Identifier),如“学号”是学生实体类型的标识符,“姓名”、“出生日期”、“信址”共同组成“公民”实体类型的标识符。

有些实体类型可以有几组属性充当标识符,选定其中一组属性作为实体类型的主标识符,其他的作为次标识符。

三、实体、属性及标识符的表达

一、新建概念数据模型

1)选择File-->New,弹出如图所示对话框,选择CDM模型(即概念数据模型)建立模型。

2)完成概念数据模型的创建。以下图示,对当前的工作空间进行简单介绍。(以后再更详细说明)

3)选择新增的CDM模型,右击,在弹出的菜单中选择“Properties”属性项,弹出如 图所示对话框。在“General”标签里可以输入所建模型的名称、代码、描述、创建者、版本以及默认的图表等等信息。在“Notes”标签里可以输入相 关描述及说明信息。当然再有更多的标签,可以点击 "More>>"按钮,这里就不再进行详细解释。

二、创建新实体

1)在CDM的图形窗口中,单击工具选项版上的Entity工具,再单击图形窗口的空白处,在单击的位置就出现一个实体符号。点击Pointer工具或右击鼠标,释放Entitiy工具。如图所示

2)双击刚创建的实体符号,打开下列图标窗口,在此窗口“General”标签中可以输入实体的名称、代码、描述等信息。

三、添加实体属性

1)在上述窗口的“Attribute”选项标签上可以添加属性,如下图所示。

注意:

数据项中的“添加属性”和“重用已有数据项”这两项功能与模型中Data Item的Unique code 和Allow reuse选项有关。

P列表示该属性是否为主标识符;D列表示该属性是否在图形窗口中显示;M列表示该属性是否为强制的,即该列是否为空值。

如果一个实体属性为强制的,那么, 这个属性在每条记录中都必须被赋值,不能为空。

2)在上图所示窗口中,点击插入属性按钮,弹出属性对话框,如下图所示。

注意:这里涉及到域的概念,即一种标准的数据结构,它可应用至数据项或实体的属性上。在以下的教程中将另立章节详细说明。

一、定义属性的标准检查约束

标准检查约束是一组确保属性有效的表达式。在实体属性的特性窗口,打开如图所示的检查选项卡。

在这个选项卡可以定义属性的标准检查约束,窗口中每项的参数的含义,如下

参数 说明
Minimum 属性可接受的最小数
Maximum 属性可接受的最大数
Default 属性不赋值时,系统提供的默认值
Unit 单位,如公里、吨、元
Format 属性的数据显示格式
Lowercase 属性的赋值全部变为小写字母
Uppercase 属性的赋值全部变为大写字母
Cannot modify 该属性一旦赋值不能再修改
List Of Values 属性赋值列表,除列表中的值,不能有其他的值
Label 属性列表值的标签

二、定义属性的附加检查

当Standard checks 或Rules 不能满足检查的要求时,可以在Additional Checks选项卡的Server子页上,通过SQL语句中使用%MINMAX%、%LISTVAL%、%RULES%、%UPPER%、%LOWER% 几个变量来定义Standard和Rule,如图所示

%MINMAX%、%LISTVAL%、%UPPER%、%LOWER%

在Standard Check中定义的Minimum 和Maximum、List values 、uppervalues、lowervalues

%RULES%

在Rules特性窗口Expression选项卡中定义的有效性规则表达式

目标:

本文主要介绍如何定义实体的主、次标识符。

一、标识符

标识符是实体中一个或多个属性的集合,可用来唯一标识实体中的一个实例。要强调的是,CDM中的标识符等价于PDM中的主键或候选键。

每个实体都必须至少有一个标识符。如果实体只有一个标识符,则它为实体的主标识符。如果实体有多个标识符,则其中一个被指定为主标识符,其余的标识符就是次标识符了。

二、如果定义主、次标识符

1)选择某个实体双击弹出实体的属性对话框。在Identifiers选项卡上可以进行实体标识符的定义。如下图所示

2)选择第一行“主标识符”,点击属性按钮或双击第一行“主标识符”,弹出属性对话框,如图所示

3)选择"Attributes"选项卡,再点击“Add Attributes”工具,弹出如图所示窗口,选择某个属性作为标识符就行了。

目标:

本文主要介绍数据项、新增数据项、数据项的唯一性代码选项和重用选项等。

一、数据项

数据项(Data Item)是信息存储的最小单位,它可以附加在实体上作为实体的属性。

注意:模型中允许存在没有附加至任何实体上的数据项。

二、新建数据项

1)使用“Model”---> Data Items 菜单,在打开的窗口中显示已有的数据项的列表,点击 “Add a Row”按钮,创建一个新数据项,如图所示

2)当然您可以继续设置具体数据项的Code、DataType、Length等等信息。这里就不再详细说明了。

三、数据项的唯一性代码选项和重用选项

使用Tools--->Model Options->Model Settings。在Data Item组框中定义数据项的唯一性代码选项(Unique Code)与重用选项(Allow Reuse)。

注意:

如果选择Unique Code复选框 ,每个数据项在同一个命名空间有唯一的代码,而选择Allow reuse ,一个数据项可以充当多个实体的属性。

四、在实体中添加数据项

1)双击一个实体符号,打开该实体的属性窗口。

2)单击Attributes选项卡,打开如下图所示窗口

注意:

Add a DataItem 与 Reuse a DataItem的区别在于

Add a DataItem 情况下,选择一个已经存在的数据项,系统会自动复制所选择的数据项。如果您设置了UniqueCode选项,那系统在复制过程中,新数据项的Code会自动生成一个唯一的号码,否则与所选择的数据项完全一致。

Reuse a DataItem情况下,只引用不新增,就是引用那些已经存在的数据项,作为新实体的数据项。

目标:本文主要介绍联系的定义及使用。

一、 联系

联系(Relationship)是指实体集这间或实体集内部实例之间的连接。

实体之间可以通过联系来相互关联。与实体和实体集对应,联系也可以分为联系和联系集,联系集是实体集之间的联系,联系是实体之间的联系,联系是具有方向性的。联系和联系集在含义明确的情况之下均可称为联系。

按照实体类型中实例之间的数量对应关系,通常可将联系分为4类,即一对一(ONE TO ONE)联系、一对多(ONE TO MANY)联系、多对一(MANY TO ONE)联系和多对多联系(MANY TO MANY)。

二、 建立联系

在CDM工具选项板中除了公共的工具外,还包括如下图所示的其它对象产生工具。

在图形窗口中创建两个实体后,单击“实体间建立联系”工具,单击一个实体,在按下鼠标左键的同时把光标拖至别一个实体上并释放鼠标左键,这样就在两个实体间创建了联系,右键单击图形窗口,释放Relationship工具。如下图所示

三、 四种基本的联系

即一对一(ONE TO ONE)联系、一对多(ONE TO MANY)联系、多对一(MANY TO ONE)联系和多对多联系(MANY TO MANY)。如图所示

四、 其他几类特殊联系

除了4种基本的联系之外,实体集与实体集之间还存在标定联系(Identify Relationship)、非标定联系(Non-Identify RelationShip)和递归联系(Recursive Relationship)。

标定联系:

每个实体类型都有自己的标识符,如果两个实体集之间发生联系,其中一个实体类型的标识符进入另一个实体类型并与该实体类型中的标识符共同组成其标识符时,这种联系则称为标定联系,也叫依赖联系。反之称为非标定联系,也叫非依赖联系。

注意:

在非标定联系中,一个实体集中的部分实例依赖于另一个实例集中的实例,在这种依赖联系中,每个 实体必须至少有一个标识符。而在标定联系中,一个实体集中的全部实例完全依赖于另个实体集中的实例,在这种依赖联系中一个实体必须至少有一个标识符,而另 一个实体却可以没有自己的标识符。没有标识符的实体用它所依赖的实体的标识符作为自己的标识符。

换句话来理解,在标定联系中,一个实体(选课)依赖 一个实体(学生),那么(学生)实体必须至少有一个标识符,而(选课)实体可以没有自己的标识符,没有标标识符的实体可以用实体(学生)的标识符作为自己的标识符。

递归联系:

递归联系是实体集内部实例之间的一种联系,通常形象地称为自反联系。同一实体类型中不同实体集之间的联系也称为递归联系。

例如:在“职工”实体集中存在很多的职工,这些职工之间必须存在一种领导与被领导的关系。又如 “学生”实体信中的实体包含“班长”子实体集与“普通学生”子实体集,这两个子实体集之间的联系就是一种递归联系。创建递归联系时,只需要单击“实体间建 立联系”工具从实体的一部分拖至该实体的别一个部分即可。如图

五、 定义联系的特性

在两个实体间建立了联系后,双击联系线,打开联系特性窗口,如图所示。

 六、 定义联系的角色名
在联系的两个方向上各自包含有一个分组框,其中的参数只对这个方向起作用,Role Name为角色名,描述该方向联系的作用,一般用一个动词或动宾组表。
如:“学生 to 课目 ” 组框中应该填写“拥有”,而在“课目To 学生”组框中填写“属于”。(在此只是举例说明,可能有些用词不太合理)。

七、 定义联系的强制性
Mandatory 表洋这个方向联系的强制关系。选中这个复选框,则在联系线上产生一个联系线垂直的竖线。不选择这个复选框则表示联系这个方向上是可选的,在联系线上产生一个小圆圈。

八、 有关联系的基数
联系具有方向性,每个方向上都有一个基数。

举例,
“系” 与“学生”两个实体之间的联系是一对多联系,换句话说“学生”和“系”之间的联系是多对一联系。而且一个学生必须属于一个系,并且只能属于一个系,不能属于零个系,所以从“学生”实体至“系”实体的基数为“1,1”,从联系的另一方向考虑,一个系可以拥有多个学生,也可以没有任何学生,即零个学生,所以该方向联系的基数就为“0,n”,如图所示

待续。

时间: 2024-11-09 06:59:10

Powerdesigner数据库建模--概念模型--ER图的相关文章

用PowerDesigner对现有的数据库反向工程建立E-R图

由于早期的一个项目在数据库设计建立时没有输出为E-R图,偶在对此项目进行二次改造升级时则使用了PD对原有的数据库进行反向工程,即根据数据源将数据库的的所有表生成为E-R图结构,我使用的是PD 15,反向工程的命令为于"File"菜单中的"Reverse Engineer"-反向引擎.其它的版本的PD应该在"Database"菜单中.详细步骤如下: 1.启动PD,新建一个Physical Diagram 2.菜单:Database->Cong

数据库系统(四)---关系型数据库设计及E-R图

1.关系型数据库: 关系型数据库是一类采用关系模型作为逻辑数据模型的数据库系统,遵从数据库设计的基本步骤,包括:需求分析.概念结构设计.逻辑结构设计.物理结构设计.数据库实施.数据库的运行和维护等阶段. 概念结构设计与逻辑结构设计是关系数据库整个设计过程的关键. 2.关系数据库设计过程与各级模式 在关系数据库设计的不同阶段,会形成数据库的各级模式.   1)需求分析阶段,综合各个用户的应用需求:   2)概念结构设计阶段,形成独立于机器特点.独立于各个关系数据库管理系统产品的概念模式:   3)

数据库的设计(E-R图,数据库模型图,三大范式)

一.数据库设计的概念 数据库设计是将数据库中的数据实体及这些数据实体之间的关系,进行规划和结构化的过程. 二.数据库设计的重要性 如果一个数据库没有进行一个良好的设计,那么这个数据库完成之后他的缺点是: 1.效率会很低 2更新和检索数据时会出现很多问题, 反之,一个数据库被尽心策划了一番,具有良好的设计,那他的优点是: 1.效率会很高. 2.便于进一步扩展. 3.使得应用程序的开发变得更容易. 三.设计数据库的步骤 1.需求分析阶段:分析客户的业务和数据处理需求. 2.概要设计阶段:他主要就是绘

9. PD逆向工程--由数据库转为模型(ER图)

步骤: 1. 在控制面板-->管理工具(如果没找到管理工具,查看方式改为大图标)-->数据源(ODBC)-->用户DSN -->用户数据源下添加一个数据源(这里根据情况添加数据源) 图中orcle就是添加的数据源,这里因为我的数据库所在数据源是orcle的. 2.  打开PowerDesigner新建PDM模型如图: 3.  选择Database下的Connect,DataSource选择ODBCmachine data source,下面选择我们第一部建立的数据源sql2008,

数据库范式以及ER图

数据库范式包括第一.第二.第三以及BCNF范式,关于范式的探讨,博主在知乎上看见了一篇很不错的文章,分享文中,这边就不再做阐述.地址:https://www.zhihu.com/question/24696366 在这边列出一些数据库的定义: 1.关系模型:用二维表格结构表示实体集,外键表示实体间联系的数据模型称为关系模型.关系模型是由若干个关系模式组成的集合.2.关系模式:关系模式实际上就是记录类型.它包括:模式名,属性名,值域名以及模式的主键.关系模式仅是对数据特性的描述.3.关系实例:就是

数据库设计规范、E-R图、模型图

(1)数据库设计的优劣: 糟糕的数据库设计: ①数据冗余冗余.存储空间浪费. ②数据更新和插入异常. ③程序性能差. 良好的数据库设计 ①节省数据的存储空间. ②能够保证数据的完整新. ③方便进行数据应用系统的开发. (2)软件项目开发周期中的数据库设计: 一个完整的项目 开发需要经过: 1.需求分析:分析客户的业务和数据处理需求. 2.概要设计:设计数据库的E-R模型图,确认需求信息的正确和完整. 详细设计:应用三大范式审核数据库结构,将E-R模型图转换为数据库模型图. 代码编写:物理实现数据

PowerDesigner连接 MySQL 生成 ER图

powerdesigner 16.5 http://www.pcsoft.com.cn/soft/27495.html jdk 1.8 32位 https://mirrors.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-windows-i586.exe mysql 链接库 https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.47.zip File->Reverse

如何得到数据库表的E-R图

使用navicat 原文地址:https://www.cnblogs.com/xiang--liu/p/12227889.html

在EA中用ER图生成数据库

ER图 E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型.属性和联系的方法,用来描述现实世界的概念模型. 实体就是看的见摸得着或者能被人感知接受认可的客观存在,属性就是用来描述这个实体,联系自然是实体间的联系,只有相互联系才会完成一个系统的功能,直接上图: 此外还可以ER图可以在EA中进行绘制来帮助我们理清关系,并生成sql脚本来建立数据库就省了不少的时间,提高了效率 绘制ER图 在EA中除了能画UML图还有很强大的功能,一般软工中用到的图这