PowerDesigner教程系列(六)概念数据模型cdm
- 格式:doc
- 大小:158.00 KB
- 文档页数:5
PowerDesigner中概念数据模型设计概念数据模型(Conceptual Data Model,CDM)是数据库设计的重要环节之一,它用于描述业务需求和业务规则,为后续的逻辑数据模型和物理数据模型提供基础。
PowerDesigner是一款功能强大的数据库设计工具,它提供了丰富的功能和工具,可以帮助我们进行概念数据模型的设计。
在PowerDesigner中进行概念数据模型设计时,我们需要遵循以下步骤:1. 创建新模型:打开PowerDesigner,点击“File”菜单,选择“New”>“Model”来创建一个新的数据模型。
在弹出的对话框中,选择“Conceptual Data Model”作为模型类型,并为模型指定一个名称和描述。
2. 添加实体:在概念数据模型中,实体用于表示业务中的具体对象或概念。
在PowerDesigner中,我们可以通过点击“Model”菜单,选择“New”>“Entity”来添加一个新的实体。
在弹出的对话框中,填写实体的名称、描述和其他属性信息。
3. 定义属性:在实体中,我们需要定义属性来描述实体的特征和属性。
在PowerDesigner中,我们可以通过在实体上右键点击,选择“New”>“Attribute”来添加一个新的属性。
在弹出的对话框中,填写属性的名称、数据类型、长度等信息。
4. 建立关系:在概念数据模型中,实体之间存在各种关系,如一对一关系、一对多关系等。
在PowerDesigner中,我们可以通过在实体上右键点击,选择“New”>“Relationship”来添加一个新的关系。
在弹出的对话框中,选择关系的类型(如一对一、一对多等),并指定关系的名称和描述。
5. 添加约束:在概念数据模型中,我们需要定义各种约束来保证数据的完整性和一致性。
在PowerDesigner中,我们可以通过在实体或属性上右键点击,选择“New”>“Constraint”来添加一个新的约束。
声明:本博文即使自己学习知识的一种简单记录,方便自己使用,也是把自己在遇到问题,找到解决办法拿来与大家分享,方便大家学习中也会遇到同样的问题不知怎样解决提供一种方案,其中内容都出自笔者手稿,并经过亲身实践,有错误地方希望多多评论并指正,方便后面看的人。
关系数据库数据模型设计及设计工具PowerDesigner中实现CDM(概念模型)设计并转化为PDM(物理模型)博文摘要关系数据库从应用以来,一直是数据关系系统数据存储方式的不二选择,本博文是在一个关系数据库学习过程中对一个简单的关系数据库进行系统分析和模型设计的基础上,应用数据建模工具PowerDesigner工具来描叙概念数据模式CDM图,并转化成特定数据库中的物理数据模式的过程PDM,其中包括对Powerdesigner工具的使用方法的简单讲解,及从概念模型设计到物理模型实现的全过程。
实践过程一、任务描述根据下面的需求描述,使用Sybase Power Designer设计相应的数据库概念模型,并转换成MS SQL Server上的物理数据库结构。
二、问题描叙某银行准备开发一个银行业务管理系统,通过调查,得到以下的主要需求:银行有多个支行。
各个支行位于某个城市,每个支行有唯一的名字。
银行要监控每个支行的资产。
银行的客户通过其身份证号来标识。
银行存储每个客户的姓名及其居住的街道和城市。
客户可以有帐户,并且可以贷款。
客户可能和某个银行员工发生联系,该员工是此客户的贷款负责人或银行帐户负责人。
银行员工也通过身份证号来标识。
员工分为部门经理和普通员工,每个部门经理都负责领导其所在部门的员工,并且每个员工只允许在一个部门内工作。
每个支行的管理机构存储每个员工的姓名、电话号码、家庭地址及其经理的身份证号。
银行还需知道每个员工开始工作的日期,由此日期可以推知员工的雇佣期。
银行提供两类帐户——储蓄帐户和支票帐户。
帐户可以由2个或2个以上客户所共有,一个客户也可有两个或两个以上的帐户。
PowerDesigner9.5概念数据模型PowerDesigner9.5——概念数据模型(CDM )⼀、概念数据模型的理论基础Powerdesigner 中的概念数据模型⼆、建⽴CDM1. 创建CDM ⾸先应该明确模型所描述的业务问题.例如,需要存储那些信息,与业务有关的实体有那些,业务流程如何等.2. 创建新的CDM:在主窗⼝中选择File->New,再选择窗⼝中选择Conceptual Data Model,单击OK.主要⼯具名称和功能:Entity:建⽴实体Relationship:建⽴联系 Inheritance:建⽴继承 Association:建⽴关联 Link:建⽴连接 Note:插⼊注释插⼊注释⼀个简单的实体联系⽰例:三、业务规则业务规则反映了业务信息数据之间的⼀组完整性约束,每当信息实体中包含的信息发⽣变化时,系统都会检查这些信息是否违反了特定的业务规则.五中类型:Definition: 信息系统中对象的特征或特性 Fact: 信息系统中存在的事实 Formula: 信息系统中的计算公式 Repuirement:信息系统中功能的详细说明 Validation: 信息系统中数据之间的约束特性:Name,Code,Comment,Type,Expression 其中:Type 是五种类型中的⼀种Expression是业务规则的表达式创建业务规则:创建前,需要考虑有关问题,如:要解决的业务问题是什么?系统中是否有必须进⾏的处理?系统的范围是否有明确的规范?系统中存在那些约束?怎样描述这些处理,规范和约束?业务规则属于Definition,Fact, Formula, Repuirement, Validation 中的那⼀类?选择Model->Business Rules单击Properties⼯具按钮,输⼊相关的信息.四、定义CDM中的域1.含义:域定义了⼀个标准的数据结构,可以应⽤到多个数据项或属性中。
PowerDesigner 概念模型(CDM)和物理模型(PDM)的⽣成⽅法1. 概念数据模型1) 概念数据模型概念数据模型CDM(Conceptual Database Model)以下我们要完成对⽰例论坛系统的数据库设计⼯作,⾸先让我们建⽴⽬标系统的概念数据模型(CDM)。
在进⾏相关CDM演⽰之前,让我先简要介绍概念数据模型(CDM)的相关概念。
我们进⾏数据库设计时,⼀般都是概念层次(Conceptual level)开始的。
在概念层次上,你⽆须考虑数据库的实际物理执⾏细节。
概念模型(CDM)描述了与任何软件或数据存储系统⽆关的数据库整体逻辑结构,通常包含了与物理数据库⽆关的数据对象,提供了⼀种对⽤于运⾏企业或业务⾏为的形象化的表达⽅式。
(1)通过创建实体关系图表(E-R)来描述数据的组织结构。
(2)能够校验数据设计的合理性。
(3)⽣成指定了相应物理实现数据库的物理数据模型(PDM)(4)能够⽣成⽤UML标准描述CDM中对象的⾯向对象模型(OOM)(5)为在不同的设计阶段创建另⼀个模型版本,可以⽣成概念数据模型(CDM)关于Palette⼯具⾯板中含义简介:⼯具对应名称含义Pointer选择图形Grabber选定某个范围的图形Zoom In放⼤Zoom Out缩⼩Properties显⽰相应图符的属性Delete删除图符Package插⼊⼀个包(package)的图符Entity插⼊⼀个实体图符Relationship插⼊⼀个关系(Relationship)图符Inheritance插⼊⼀个继承(Inheritance)图符Association插⼊⼀个关联(Association)图符Association Link插⼊⼀个关联连接(Association Link)图符2) 新建CDM新建CDM(2)双击资源浏览窗⼝中新创建的CDM名称图标,打开CDM模型属性窗⼝,进⾏相关属性信息设置。
使用步骤:1.新建Conceptual Data Model文件,概念数据模型(CDM)。
2.工具(tool)里面生成…功能的第二项,或者ctrl+G生成物理数据模型(PDM文件后缀,我们常见的表的型式)。
3./数据库/生成数据库,或者ctrl+G生成sql脚本。
过程1中的技巧:a.同一个字段不能重复的写,如果要重复的使用该字段,该字段在拥有这个字段的表中应该是主键,其他要拥有该字段的表可以与该表建立多对一的关系,如此生成PDM后,该字段会自动的作为外键添加到需要的表中。
b.如果一个实体(表)没有一个自己的主键(作为其主键的是外键),则该实体应该写为“联合连接”(多对多关系)。
c.“关系”默认为一对多关系,在画一个关系的时候,出发点为一方,终点为多方。
d.设不了主键的原因:如果一个字段在多个表中出现则设不了,请删除在他表中多余重复的同名字段。
e.即使删除了表,曾经保存实体或关系时产生的字段仍然会存在,以便于在另外的地方引用时输入字段名,保存即可看到该字段已经设定好类型了,因此应该事先计划好字段(可以打开浏览器Data Items,找到并删除之)。
f.过程2中常见的报错:a.注意PDM生成选项中,DBMS请选择对应的类型,如选择Microsoft SQL Server 2000,否则生成的脚本出错,运行不了;注意不要点击下拉框右边的改变文件夹路径的设置,若改了请改回,否则会找不到选项。
b.Undefined data type 为未定义数据类型错误。
c.Existence of identifiers “实体”没有自己的主键,却有一个或多个外键,若与多个外键连接则该“实体”应该为“关系”,否则该有主键的主键。
d.原先和有主键的表建立了关系后,删除了关系而没有及时的删除主键表中的[标识符]信息(主键表的最末行有identifier_1 <pi>)e.Existence of referencef.Existence of relationship 与外界没有关系。
一、概念数据模型概述概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。
它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。
通常人们先将现实世界抽象为概念世界,然后再将概念世界转为机器世界。
换句话说,就是先将现实世界中的客观对象抽象为实体(Entity)和联系(Relationship),它并不依赖于具体的计算机系统或某个DBMS系统,这种模型就是我们所说的CDM;然后再将CDM转换为计算机上某个DBMS所支持的数据模型,这样的模型就是物理数据模型,即PDM。
CDM是一组严格定义的模型元素的集合,这些模型元素精确地描述了系统的静态特性、动态特性以及完整性约束条件等,其中包括了数据结构、数据操作和完整性约束三部分。
1)数据结构表达为实体和属性;2)数据操作表达为实体中的记录的插入、删除、修改、查询等操作;3)完整性约束表达为数据的自身完整性约束(如数据类型、检查、规则等)和数据间的参照完整性约束(如联系、继承联系等);二、实体、属性及标识符的定义实体(Entity),也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”。
例如,学校中的每个学生,医院中的每个手术。
每个实体都有用来描述实体特征的一组性质,称之为属性,一个实体由若干个属性来描述。
如学生实体可由学号、姓名、性别、出生年月、所在系别、入学年份等属性组成。
实体集(Entity Set)是具体相同类型及相同性质实体的集合。
例如学校所有学生的集合可定义为“学生”实体集,“学生”实体集中的每个实体均具有学号、姓名、性别、出生年月、所在系别、入学年份等性质。
实体类型(Entity Type)是实体集中每个实体所具有的共同性质的集合,例如“患者”实体类型为:患者{门诊号,姓名,性别,年龄,身份证号.............}。
实体是实体类型的一个实例,在含义明确的情况下,实体、实体类型通常互换使用。
1 CDM的基本概念目标:本文主要介绍PowerDesigner中概念数据模型 CDM的基本概念。
一、概念数据模型概述数据模型是现实世界中数据特征的抽象。
数据模型应该满足三个方面的要求:1)能够比较真实地模拟现实世界2)容易为人所理解3)便于计算机实现概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。
它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。
通常人们先将现实世界抽象为概念世界,然后再将概念世界转为机器世界。
换句话说,就是先将现实世界中的客观对象抽象为实体(Entity)和联系(Relationship),它并不依赖于具体的计算机系统或某个DBMS系统,这种模型就是我们所说的CDM;然后再将CDM转换为计算机上某个DBMS 所支持的数据模型,这样的模型就是物理数据模型,即PDM。
CDM是一组严格定义的模型元素的集合,这些模型元素精确地描述了系统的静态特性、动态特性以及完整性约束条件等,其中包括了数据结构、数据操作和完整性约束三部分。
1)数据结构表达为实体和属性;2)数据操作表达为实体中的记录的插入、删除、修改、查询等操作;3)完整性约束表达为数据的自身完整性约束(如数据类型、检查、规则等)和数据间的参照完整性约束(如联系、继承联系等);二、实体、属性及标识符的定义实体(Entity),也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”。
例如,学校中的每个学生,医院中的每个手术。
每个实体都有用来描述实体特征的一组性质,称之为属性,一个实体由若干个属性来描述。
如学生实体可由学号、姓名、性别、出生年月、所在系别、入学年份等属性组成。
实体集(Entity Set)是具体相同类型及相同性质实体的集合。
例如学校所有学生的集合可定义为“学生”实体集,“学生”实体集中的每个实体均具有学号、姓名、性别、出生年月、所在系别、入学年份等性质。
数据库设计---PowerDesigner(物理模型和概念模型)
内容
第⼀种⽅法:概念模型转物理模型
1、⾸先新建模型--选择概念模型(CDM)
2、新建实体(学⽣和卡),设置相应的属性
3、⼀共四种关系(1:1,1:n,n:1,n:n),根据⾃⼰需要建⽴关系
4、建⽴好各个实体之间的关系之后,我们就可以转换成物理模型了:⼯具-generatePDM
5、设置数据库:在设计⾯板空⽩处,右键-属性(properties)
6、⽣成数据库,设置好路径(Directory)-⽂件名(F)
7、打开导出的数据库,打开SQL(⽂件名),执⾏⼀下,数据库创建成功了。
第⼆种⽅法:直接建物理模型
1、选择物理模型
2、建表
3、设置属性
4、设置好各个表后,进⾏表关联(实体有多对多关系,表也可以设置的)
5、⽣成数据库以及执⾏制作好的(⽂件名-)SQL就可以看到新建⽴的数据库了。
总结:
数据库设计的基本步骤:需求分析-概念设计-逻辑结构设计-物理结构设计-数据库的建⽴和测试-数据库的运⾏和维护。
(1)对于需要设计⼤型数据库,我们应该遵循:先画ER 模型(概念设计)-物理设计。
因为概念模型更容易看出实体间的联系,便于理清思路。
如果直接设计物理模型,⼀堆外键,关系会很乱,搞不清之间的联系。
(2)对于只需设计⼏个表的数据库,我们可以偷偷懒,但是⾸先我们要明⽩之间的关系,然后我们在直接建⽴物理模型进⾏设计。
从PowerDesigner概念设计模型(CDM)中的3种实体关系说起CDM是大多数开发者使用PD时最先创建的模型,也是整个数据库设计最高层的抽象。
CDM 是建立在传统的ER图模型理论之上的,ER图中有三大主要元素:实体型,属性和联系。
其中实体型对应到CDM中的Entity,属性对应到CDM中每个Entity的Attribute,在概念上基本上是一一对应的。
但在联系上,CDM有了比较大的扩展,除了保留ER图原有的RelationShip概念之外,还增加了Association,Inheritance两种实体关系,下面就让我们分别看看这些关系的用法和之间的区别(下图中被标红的工具栏按钮就是用来向实体中添加这些关系的)。
另外,在介绍所有这些CDM中的元素之前,先给出一个很简单的CDM图,是对我们最最熟悉的学校场景的一个建模,下文中提到的所有概念在图中都有体现,大家在看下文的时候可以对照着来看:一. RelationShip(联系)先给出PD手册里对联系的定义:“A relationship is a link between entities. Fo r example, in a CDM that manages human resources, the relationship Member links the entities Employee and Team, because employees can be members of teams. This relationship expresses that each employee works in a team and that each team has employees.” 可见,也许联系的概念真的太简单了吧,所以反而不那么好表述,所以PD的文档里也是用一个例子来说明出现了什么样的情况我们就认为两个实体间是有联系的。
当我们提起实体间联系的时候,最先想到的恐怕是one to one,one to many 和many to many这三种联系类型,这些联系类型也是大家最熟悉的。
PowerDesigner教程系列(六)概念数据模型
目标:本文主要介绍联系的定义及使用。
一、联系
联系(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”,如图所示
待续。