怎么能在powerdesigner一对多中直接定义实体

 CDM是大多数开发者使用PD时最先创建嘚模型也是整个数据库设计最高层的抽象。CDM是建立在传统的ER图模型理论之上的ER图中有三大主要元素:实体型,属性和联系其中实体型对应到CDM中的Entity,属性对应到CDM中每个Entity的Attribute在概念上基本上是一一对应的。但在联系上CDM有了比较大的扩展,除了保留ER图原有的RelationShip概念之外还增加了Association,Inheritance两种实体关系下面就让我们分别看看这些关系的用法和之间的区别(下图中被标红的工具栏按钮就是用来向实体中添加这些关系的)。
  另外在介绍所有这些CDM中的元素之前,笔者先给出一个很简单的CDM图是对我们最最熟悉的学校场景的一个建模,下文中提到的所囿概念在图中都有体现大家在看下文的时候可以对照着来看:

从今日开始每天一部分内容,茬每个工作日争取让大家天天都有的看,每天内容不会太多
有错误的地方还请大家指正。
  powerdesigner一对多是Sybase公司的CASE工具集使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程利用powerdesigner一对多可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序还可为数据仓库制作结构模型,也能对团队设计模型进行控制它可与许多流行的数据庫设计软件,例如:PowerBuilderDelphi,VB等相配合使用来缩短开发时间和使系统设计更优化

Model)。还可优化PDM产生为特定DBMS创建数据库的SQL语句并可以文件形式存储以便在其他时刻运行这些SQL语句创建数据库。另外DataArchitect还可根据已存在的数据库反向生成PDM,CDM及创建数据库的SQL脚本
这部分用于创建功能模型和数据流图,创建"处理层次关系"
为客户/服务器应用程序创建应用模型。
此部分用来管理系统的各种数据源

概念数据模型 (CDM)CDM 表现数据库嘚全部逻辑的结构,与任何的软件或数据储藏结构无关。 一个概念模型经常包括在物理数据库中仍然不实现的数据对象

它给运行计划或业務活动的数据一个正式表现方式。

物理数据模型 (PDM)PDM 叙述数据库的物理实现


藉由 PDM ,你考虑真实的物理实现的细节 它进入帐户两个软件或数據储藏结构之内拿。 你能修正 PDM 适合你的表现或物理约束

面向对象模型 (OOM)一个OOM包含一系列包,类接口 , 和他们的关系。 这些对象一起形成所囿的 ( 或部份) 一个软件系统的逻辑的设计视图的类结构


一个OOM本质上是软件系统的一个静态的概念模型。
你使用 powerdesigner一对多 面向对象模型建立面姠对象模型.(OOM) 你能为纯粹地对象- 导向的靠模切目的建立一个OOM, 产生Java文件或者

PowerBuilder文件或你能使用一个来自OOM的物理数据模型(PDM)对象 , 来表示关系数据库設计分析。

业务程序模型 (BPM)BPM 描述业务的各种不同内在任务和内在流程而且客户如何以这些任务和流程互相影响。


BPM 是从业务合伙人的观点来看业务逻辑和规则的概念模型使用一个图表描述
程序,流程信息和合作协议之间的交互作用。

以下是其中的CDM PDM OOM三者的转换关系


对象浏览器可以用分层结构显示你的工作空间.
用于显示生成、覆盖和模型检查结果以及设计环境的总体信息。
用于组织模型中的图表以图形方式显示模型中各对象之间的关系。

对象浏览器可以用分层结构显示你的工作空间.
用于显示生成、覆盖和模型检查结果以及设计环境的总體信息。
用于组织模型中的图表以图形方式显示模型中各对象之间的关系

其他的窗口与其他的软件大同小异,没有多说的必要了呵呵

3、PD概念模型工具以及业务规则 业务规则是业务活动中必须遵循的规则,是业务信息之间约束的表达式,它反映了业务信息数据之间的彝族完整性约束.每当信息实体中包含的信息发生变化的时候,系统都会检查这些信息是否违反特定的业务规则.
业务规则有的六种类型: 事实,定义公式,确认需求和约束:

当你使用业务规则约束 CDM 的时候,他们不被转变为可执行的代码。 业务规则可能被实现为 PDM 的约束
你将会产生一条业务規则标明该如何将版税归因于作家。
1 选择模型的业务规则
业务规则的列表对话框显示已存在的业务规则。
2 点击增加一行工具
一支箭头茬新空行的开始处出现,并且一个默认的名字和代码被输入。默认为定义类型的业务规则

这是业务规则的名字 相同的代码自动地在代码列Φ被输入。
4 选择规则类型列下拉列表中的确认类型这样定义了确认类型的业务规则。
新创建的业务规则被提交名字点击字母顺序排列
當你点击的应用或者OK的时候,列表中的所有的名字按照字母顺序排列。
6 点击新的业务规则栏一支箭头出现在最后的一行。
8 点击注释栏注釋对话框被打开,可以输入规则的描述。
这段文本解释业务规则的意义

一个数据项目是一个基本的信息。
要管理多个作家的多个书, 你将会對每位作家版税的百分比创建数据项目并且为作家列表中的的作家名称排序
1 选择菜单栏的模型数据项目。数据项目的列表显示已存在的數据项目
2 点击增加一行工具。
一个箭头在第一个空白行的开始和一个默认的名称出现而且代码被进入。
这是数据项目的名称 相同的玳码自动地在代码列中被输入入。

新创建的数据项目的被提交名称按字母顺序地分类,当按应用或列表的确定的时候, 所有的名称按字母顺序地被分类。 列表的名称次序将会以其中任何一个操作而改变
5 点击新的数据项目行。一个箭头在行开始处出现
6 点击属性工具。或在行開始处双击箭头
属性页为新创建的数据项目。
7 选择对话框的底部,域下拉列表框的 Percent
这应用 Percent 域的数据类型到新的数据项目。 在数据类型列Φ SI 指出短整数型。


9 点击增加一行工具
一个箭头在第一个空白行的开始,一个默认的名称出现,相同的代码被输入
这是数据项目的名称。 相同的代码自动地在代码列中被输入
11 点击应用。新创建的数据项目被提交
12 点击新的数据项目行。一个箭头在行开始处出现
13 点击属性工具。或在行开始处双击箭头
属性页为新的数据项目出现。
14 点击问号按钮旁边数据类型下拉列表框
标准数据类型对话框出现。

16 在每┅个对话框中好点击
回到模型的窗口。
创建一个新的实体
你将会创建一个包含照片的信息一个关联对主题到作者的实体 , 和二个主题种類不同的的实体: periodicals and non-periodicals
1 点击工具面板的实体工具。
2 点击图表的一个空白处一个实体符号在点击位置出现。
在创建时的实体叫做Entity_n,n是一个对象创建佽序的实体数字
3 点击工具面板的指针工具。
4 双击你刚刚创建的实体符号
这是实体的名称。 相同的代码自动地在代码列中被输入
6 点击確定。新的实体显示名称 Picture
7 选择菜单中的模型->实体。实体对话框的列表显示已存在的实体

8 点击增加一行工具。
代码自动地设定与名称相哃
10 点击应用。新的实体创建被提交名称按字母顺序地分类
11 点击增加一行工具。
一个箭头在第一个空白行的开始处,一个默认的名称和代碼被输入进入对话况中
13 点击应用。新的实体创建被提交新的实体在列表上出现。
新的实体在 CDM 中出现

5、定义实体间的联系和角色

你将會创建在AUTHOR和PICTURE之间的关系实体。
1 点击工具面板的指针工具


4 在AUTHOR实体之内点击,当不要松开鼠标左键,拖拉光标到PICTURE实体 在PICTURE实体之内放开鼠标按鈕。
这创建在二个实体之间的关系
在关系选项里面定义角色
1 点击工具面板的指针工具。

4 点击详细资料详细资料页出现

一个域定义你能適用于多个数据项目的标准数据结构。 当你修正一个域时,你将更新全部与域关联的数据项目 当你作任何变化的时候 , 这导致数据一致化特性比较容易。这样,就可以创建一些自己常用的域,来应用到数据对象上,就不会导致相同的用途,但是数据类型和长度不一致


你将会创建二个域鉯将会为钱数量定义一个标准化数据类型和模型中的百分比
1 选择来自菜单栏的模型域。
域对话框的列表显示已存在的域
2 点击增加一行笁具。
一支箭头在第一空行的开始处出现,一个默认的名字和代码被进入
这是域的名字。 相同的代码自动地在代码列中被进入
4 点击应用。新创建的域被提交

7 点击紧邻数据类型下拉列表的问号按钮。

域现在有一个Money数据类型 一个Money数据类型用一个固定长度的数字来储存数字。 稍后当你应用这一个域用来储存Money的数量数据项目的时候,你将会他们继承这一个数据类型。
9 在长度框中打字 8
附到这一个域的数据项目嘚最大的长度将会是 8.
10 在精密框中打字 2 。
附到这一个域的数据项目在小数点之后能带二个位置

回到域特性页。 值 MN8,2 在数据类型列表框中出现 MN 是一个Money数据类型的代码。 8指出Money类型能有 8个长度 2指出数量有 2 个小数位精度.
12 点击OK,回到域的列表。
13 点击增加一行工具
一支箭头在第一个空皛行的开始处,一个默认的名字和代码被输入。
这是域的名称 相同的代码自动地在代码列中被进入。
一个箭头在行开始处出现
17 点击属性笁具。或在行开始处双击箭头属性页为新创建的域。
18 点击问号按钮旁边数据类型下拉列表框
标准数据类型对话框出现。 使用这一个对話框指定被域影响的数据形式
代码 SI 指出Percent域有短整数型数据类型。 因为你不能为短整数型数据类型指定长度和精度 , 所以长度和精度框不可鼡的
20 在每一个对话框中好点击。 域最大的好处就是可以很快的付给数据项目数据类型,并且保证加入到域中的所有数据项目保持一致(例如,佷多数据库的表都有一个ID,那么这个ID在很多时候都是相同的数据类型和长度,那么就可以直接定义一个ID的域,这样,当你需要修改ID长度的时候,就不鼡一个一个的修改啦)

你从子实体到父实体创建一个继承连接你将会从 PERIODICAL 和 NONPERIODICAL 实体到 TITLE 实体定义一个继承。
1.选择工具面板的继承工具
2.在 NONPERIODICAL 实体之內点击,按住鼠标左键不放,拖拉光标到 TITLE 实体 在 TITLE 实体之内放开鼠标按钮。

一个继承连接出现在这些实体之间 连接中间有一个半圆形, 和一個指向TITLE父实体的箭头。 NONPERIODICAL 是子实体 子实体继承它的父实体。
3 选择工具板上的继承工具点击半圆形,按住鼠标左键不放,拖拉光标到 PERIODICAL 实体 茬PERIODICAL实体内放开鼠标按钮。

你将会分配一个主题到继承使它互斥,而且定义它的生成模态
1 点击工具面板的指针工具。
2 双击继承连接的中央半圆形
3 类型名称在名称框中继承。这是继承的名称
4 选择子对象互斥的复选框。
因为主题是一份期刊或一份非期刊,不能两个兼有所鉯是互斥的。

5 点击生成定位键生成页出现。
6 在生成模式分组框中确定产生子对象复选框没有被选择
这里的选择将影响继承如何产生物悝数据模型PDM。 仅仅生成父对象意味着只有一个表将被生成在这里例子中,你只需要知道在每个子对象中的属性是不同的

8 在数据类型列Φ点击。
9 点击下拉列表箭头一个下拉列表框出现。
10 选择来自下拉列表框的 BL
你为那个指定属性定义 Boolean(BL) 数据类型。


这是强制性的复选框 当選择的时候,它指出当Periodical列被产生的时候不能包含NULL价值

十字架在半圆形中出现,指出继承是互斥的

继承不只是出现在编程中,在数据库设計中同样用到.

8、将CDM对象转换成PDM对象

2 从数据库管理系统下拉列表框选择 Sybase AS Anywhere 8 。这个对话框处理前面生成的教程文件名称作为PDM文件的名称但是扩展名为PDM。3 选择 Share 单选按钮

9、正向工程和逆向工程

你能直接地从 PDM产生一个数据库, 或产生一个能在你的数据库管理系统环境中运行的数据库脚夲,这是正向工程
默认是生成与PDM相同数据库的脚本,但是也可以产生其他数据库的脚本
产生一个数据库创建脚本
数据库生成对话框出现 它显示生成叁数。 默认叁数已经被选择
3 在目录框中,输入一条路径。
4 选择生成脚本的按钮
5 选择仅仅生成一个文件。
7 点击底部表定位键
表页列出模型中选择可用的所有数据库表。
8 全部点击选择工具这选择所有的表复选框。

可以生成数据库脚本,如果选择ODBC方式,则可以直接連接到数据库,从而直接产生数据库表以及其他数据库对象

你能逆向工程已存在的数据库进新的 PDM 之内。 数据来源可能是从脚本文件或一个開放数据库连接数据来源 当你逆向工程使用脚本的时候,你能使用一个单一脚本文件或一些脚本文件。
逆向工程数据库对象从一个脚本文件到新的 PDM
逆向工程来自一个脚本文件的数据库对象:
3 选择下拉列表框的一个数据库管理系统

4 点击确定。数据库逆向工程对话框出现
5 点击使用脚本文件的 Radio 按钮。
6 浏览适当的目录选择脚本文件

7 点击选项定位键显示选项页。
8 选择逆向工程选项

输出窗口的信息指出被指定的文件完全逆向工程。 逆向工程一个ODBC到新的 PDM:
3 选择下拉列表框的一个数据库管理系统

4 点击确定。数据库逆向工程对话框出现。
5 点击使用一个ODBC 單选框,选择一个ODBC

6 点击选项定位键显示选项页。
7 选择逆向工程选项

8 点击确定。ODBC逆向工程对话框出现

9 在上面部份对话框的下拉列表框中選择限定词和拥有者。
10 点击一个对象类型定位键
输出窗口的信息显示哪些表被转换而且指出数据库成功逆向工程。

当设计出数据库以后就需要讨论,那么有一份正规的DOC文件是很必要的那么,我们最后来讲讲生成报表基本都是操作的事情,没有什么技巧

我们一直讲嘚是powerdesigner一对多的数据建模部分,其实PD的面向对象建模部分也值得一讲虽然我更加愿意用Rose,但是powerdesigner一对多的业务流程建模等还是值得称赞的囿机会再说啦,呵呵
不要以为Power能帮你把关系什么的全部建立好,很多数据库理论只是还是需要的设计数据库的时候,那些范式什么的一定要掌握。
设计一个好的数据库最好的工具不是必须的,但是基础理论是一定要的
正如我上面讲的,powerdesigner一对多还可以进行业务流程建模面向对象建模。以前我转贴过用PowerDweigner设计web service的一片文章可以看看
3.并不是每个设计都需要用到PD
用powerdesigner一对多对付比较大型的项目,是很好的對于短平快类型的项目,如果时间要求你1个星期完成一个程序那么完全没有必要用powerdesigner一对多,直接维护数据库就可以了当表的数量超过10個(一个小系统的表在10个左右)的时候,建议还是用用powerdesigner一对多
关于powerdesigner一对多物理数据模型我基本没有讲,只讲了CDM->PDM的转换因为物理数据模型的操作跟概念数据模型类似,而且各种概念基本大家都了解(如果表列,过程等概念不知道的话那么建议还是先看看数据库理论嘚基础知识)。虽然物理数据模型在数据库建模中是最总要的一个但是,由于平常大家对数据库的了解都比较多我就认为没有必要多講了。
PD中还有一个很总要的工具-模型仓库他的作用平常用不到,当多个人一起用一个模型工作时才会用到,不属于数据建模的范畴就不讲了,毕竟我只准备了两个星期的时间来搞这个专题。

你指出使用数据库管理系统库中储存的数据库管理系统定义文件
4 点击细節定位键。细节页出现
5 挑选出来的或清除下列各项选项:

6 选择Selection 定位键。它列出 CDM 的所有对象默认地,所有的对象被选择

9 当程序已经完成苼成时,关闭结果窗户
PDM 在模型的窗口中出现

下面举例创建一个概念模型来看看PD的操作方式
1 按工具面板的实体工具。
当光标移动进图表的時候 , 变成实体的形状
2 在 CDM 图表中点击任何一处。
一个实体符号在点击位置出现实体名字为 Entity_n,n 是一个创建对象的次序编号。
3 实体工具仍然是鈳使用的, 因此点击再一次在 CDM 图表中产生另外的一个实体
现在有 CDM 图表的二个实体。
4 点击工具面板的关系工具
实体工具被现在释放,而且關系工具是可使用的
5 点击在第一个实体之内而且当继续按着鼠标按钮的时候,拖拉光标到第二个实体。 在第二个实体之内放开鼠标按钮這样可以产生关系。

6 点击鼠标右键释放关系工具。
一个工具保持可使用直到释放它 释放一个工具, 可以选择另外的一个工具或按鼠标右鍵。 默认的 ,当按鼠标右键,指针工具被激活
7 点击面板的套索工具,套索工具是现在可使用
8 在第一个实体的上面角落点击光标,按着鼠标按钮, 拖拉光标拉一个包括两个实体的长方形放开鼠标按钮,实体和关系被选择
9 拖拉实体到一个新位置,关系跟随实体一起移动
10 点击媔板的文本工具。文本工具是现在可使用
11 在关系下面点击光标,一些文本在被长方形指出的区域中出现
12 点击鼠标右键,你释放文本工具
13 双击文本,一个文本框出现
14 在文本框中输入短文本。
15 点击OK文本在图表中出现。
16 点击文本框的一个柄按着鼠标左键,拖拉光标到右邊直到所有的文本出现,放开鼠标按钮在图表背景上点击,文本框柄消失
17 点击面板的指针工具。你将使用这个工具选择并且删除符号
18 在实体符号上点击,选择你想删除的对象
19 按键盘上的 DEL 键,确认信息对话框出现, 问你如何删除选择

如果你选择删除对象,你将删除图标苻号并且删除模型中的对象。 如果你只选择删除符号,你将删除图标符号, 但是保存模型的对象
20 点击OK,图表中的实体和联合的关系被移动 對象也从模型删除。
21 点击剩余的实体当你点击文本的时候 ,按着键盘的SHIFT键,二个对象将被选择
22 按 DEL 键 , 并且在删除信息出现的时候点击 OK ,剩餘的实体和文本被删除

本文主要介绍powerdesigner一对多中概念数据模型 CDM的基本概念

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


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

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

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

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


1)数据结构表达为实体和属性;
2)数据操作表达為实体中的记录的插入、删除、修改、查询等操作;
3)完整性约束表达为数据的自身完整性约束(如数据类型、检查、规则等)和数据间的參照完整性约束(如联系、继承联系等);

二、实体、属性及标识符的定义实体(Entity)也称为实例,对应现实世界中可区别于其他对象的“倳件”或“事物”例如,学校中的每个学生医院中的每个手术。


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

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

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

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

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

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


本文主要介绍powerdesigner一对多概念数据模型以及实体、属性创建。

一、新建概念數据模型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)在上图所示窗口中点击插入属性按钮,弹出属性对话框如下图所示。

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


本文主要介绍属性的标准检查约束、如何定義属性的附加检查

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


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

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


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

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


标识符是实体中一个或多个属性的集合,可用来唯一标识实体中的一个实例要强调的是,CDMΦ的标识符等价于PDM中的主键或候选键
每个实体都必须至少有一个标识符。如果实体只有一个标识符则它为实体的主标识符。如果实体囿多个标识符则其中一个被指定为主标识符,其余的标识符就是次标识符了

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


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

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


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

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


数据项(Data Item)是信息存储的最小单位,它可以附加在实体上作为实体的属性
紸意:模型中允许存在没有附加至任何实体上的数据项。

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

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

三、数据项的唯一性代码选项和偅用选项 四、在实体中添加数据项


1)双击一个实体符号打开该实体的属性窗口。
2)单击Attributes选项卡打开如下图所示窗口

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

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

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

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

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

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

在CDM工具选项板中除了公共的工具外还包括如下图所示的其它对象产生工具。
 在图形窗口中创建两个实体後单击“实体间建立联系”工具,单击一个实体在按下鼠标左键的同时把光标拖至别一个实体上并释放鼠标左键,这样就在两个实体間创建了联系右键单击图形窗口,释放Relationship工具如下图所示


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

在非标定联系中一个实体集中的部分实例依赖于另一个实例集中的实例,在这种依赖联系Φ每个实体必须至少有一个标识符。而在标定联系中一个实体集中的全部实例完全依赖于另个实体集中的实例,在这种依赖联系中一個实体必须至少有一个标识符而另一个实体却可以没有自己的标识符。没有标识符的实体用它所依赖的实体的标识符作为自己的标识符换句话来理解,在标定联系中一个实体(选课)依赖 一个实体(学生),那么(学生)实体必须至少有一个标识符而(选课)实体鈳以没有自己的标识符,没有标标识符的实体可以用实体(学生)的标识符作为自己的标识符


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

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


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


 六、 定义联系的角色洺在联系的两个方向上各自包含有一个分组框其中的参数只对这个方向起作用,Role Name为角色名描述该方向联系的作用,一般用一个动词或動宾组表


如:“学生 to 课目 ” 组框中应该填写“拥有”,而在“课目To 学生”组框中填写“属于”(在此只是举例说明,可能有些用词不呔合理)

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

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


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

很感谢大伙对此系列教程的关注因为工作的佷多原因,一直没时间静下心来整理新的教程担心没有自己没有理解清楚写出来误导大伙,故一拖再一拖几年过去了,最近又收到很哆网友的邮件要求继续写下去没能一一回复,还望谅解以后每周抽出时间写一篇,篇幅长一点仅此答谢广大关注的网友。

目标:本攵主要介绍继承联系定义及使用

实体之间除了我们之前所讲的联系外,还存在分类关系、继承关系在CDM中我们统称分类关系、继承关系為继承联系。

通过特殊化或概化方法产生的实体类型之间的联系称为继承联系

特殊化:在实体集内部分组并把这些分组存放在不同的实體类型中的过程称为实体集的特殊化。

概化:从多个实体集的公共属性中抽象出一个公共实体类型的过程为实体集的概化

继承联系的一端是具有普遍性的实体集,为父实体集另一端连接的是具体特殊的一个或多个实体集,为子实体集

例如:“银行账户”是“借记卡账戶”与“信用卡账户”的父实体,相反“借记卡账户”与“信用卡账户”是“银行账户”的子实体

另外在继承联系中,还可以分为互斥性继承联系非互斥性继承联系

互斥性继承联系:父实体中的一个实例只能在一个子实体中。例如:“帐户”主实体下的“个人账户”與“公司账户”两个子实体之间的联系是互斥的

非互斥性继承联系:父实体中的一个实例可以在多个子实体中。例如:“职工”父实体丅的“干部”与“教师”子实体之间属于非互斥继承联系教师有可能也是干部,干部有可能也是教师

这里我就不再图示了,望大伙要認真理解概念

CDM中创建两个实体,AB,单击工具选项板上的继承工具连接AB实体图示1

A是父实体,B是子实体再创建实体C以同样的方法连接到C实体上。如图2所示表示BCA之间存在继承联系。

双击继承联系的半圆符号打开继承联系的属性窗口。如图3所示

Mutually exclusive children 表示父实体中的一條记录只能在一个子实体上出现子实体之间存在互斥的关系。 

Complete 表示父实体的所有实例必须是子实体之一例如:“人”实体有“男人”囷“女人”两个子实体,每个“人”实体的实例可以是“男人”或“女人”

定义由CDM生成PDM或者生成OOM中的class图的生成模式。

Generate parent:表示继承联系中嘚父实体会生成PDM中的表或Class图中的类

1) 选择Inherit all attributes 表示继承联系中的子实体生成PDM中的表或Class图中的类,并且继承父实体中的所有实体属性

目标:本攵主要介绍域的概念以及使用

域:实际上就是一个取值范围,也可扩展为一个数据类型域可以定义检查约束、取值范围、最大值、最尛值、默认值等。

域是通过用户自定义类型实现的定义一个域的后,可以实多个实体的属性共享这也模型设计中非常重要。

例如:“垺务生”、“客户”、“操作员”三个实体中都有“姓名”属性我们就可以定义一个“姓名”域,分别附加到三个实体中修改域的同時,使用域的实体的相关属性也会随之更新所图所示

打开实体的属性选项卡,如图所示从Domain下拉列表中选择一个域

type(数据类型、长度、精喥)Check(检查约束)、Rules(业务规则)、Mandatory等。如果都不选则表示设置域与数据项是可分离的。默认为Data type 不可分离可自行设置。如下图所示

属性不赋值时系统提供的默认值
属性的赋值全部变为小写字母
属性的赋值全部变为大写字母
该属性一旦赋值不能再修改
属性赋值列表,除列表中的值不能有其他的值

我要回帖

更多关于 powerdesigner一对多 的文章

 

随机推荐