PowerDesigner应用教程深蓝居.docx

上传人:b****3 文档编号:6130558 上传时间:2023-05-09 格式:DOCX 页数:37 大小:2.40MB
下载 相关 举报
PowerDesigner应用教程深蓝居.docx_第1页
第1页 / 共37页
PowerDesigner应用教程深蓝居.docx_第2页
第2页 / 共37页
PowerDesigner应用教程深蓝居.docx_第3页
第3页 / 共37页
PowerDesigner应用教程深蓝居.docx_第4页
第4页 / 共37页
PowerDesigner应用教程深蓝居.docx_第5页
第5页 / 共37页
PowerDesigner应用教程深蓝居.docx_第6页
第6页 / 共37页
PowerDesigner应用教程深蓝居.docx_第7页
第7页 / 共37页
PowerDesigner应用教程深蓝居.docx_第8页
第8页 / 共37页
PowerDesigner应用教程深蓝居.docx_第9页
第9页 / 共37页
PowerDesigner应用教程深蓝居.docx_第10页
第10页 / 共37页
PowerDesigner应用教程深蓝居.docx_第11页
第11页 / 共37页
PowerDesigner应用教程深蓝居.docx_第12页
第12页 / 共37页
PowerDesigner应用教程深蓝居.docx_第13页
第13页 / 共37页
PowerDesigner应用教程深蓝居.docx_第14页
第14页 / 共37页
PowerDesigner应用教程深蓝居.docx_第15页
第15页 / 共37页
PowerDesigner应用教程深蓝居.docx_第16页
第16页 / 共37页
PowerDesigner应用教程深蓝居.docx_第17页
第17页 / 共37页
PowerDesigner应用教程深蓝居.docx_第18页
第18页 / 共37页
PowerDesigner应用教程深蓝居.docx_第19页
第19页 / 共37页
PowerDesigner应用教程深蓝居.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

PowerDesigner应用教程深蓝居.docx

《PowerDesigner应用教程深蓝居.docx》由会员分享,可在线阅读,更多相关《PowerDesigner应用教程深蓝居.docx(37页珍藏版)》请在冰点文库上搜索。

PowerDesigner应用教程深蓝居.docx

PowerDesigner应用教程深蓝居

 

PowerDesigner应用教程

 

PowerDesigner模型设计.......................................................1

概念模型设计.............................................................................4

计物理模型设计1——表和主外键......................................10

物理模型设计2——约束......................................................17

物理模型设计3——视图、存储过程和函数.......................26

PowerDesigner15使用时的十五个问题............................30

 

PowerDesigner模型设计

 

SybasePowerDesigner(简称PD)是最强大的数据库建模工具,市场占

有率第一,功能也确实十分强大,现在最新版本是15.1,已经支持最新的SQL

Server2008等数据库,另外在PD15中还增加了好几种模型,界面也得到了进

一步的美化,做出来的图更漂亮了。

下面是一个在PD15中新建模型的窗口:

 

PD本身除了进行数据库建模以外,还可以建业务模型、UML模型等,当然

这些建模其他很多工具也有相同的功能,PD在这些模型的建立上并没有看出有

什么明显的优势,所以我使用PD的目的只有一个就是进行数据库建模,这才是

他的强项。

 

1

 

一般来说在进行数据库建模时最常用的就是概念模型和物理模型,现在在

PD15中增加了逻辑数据模型和多维数据模型。

另外的数据流图、数据迁移模型

和UML类图就暂时不研究了。

在进行数据库建模时,最先是要建立概念模型,概念模型是一个抽象的宏观

层次的业务模型,最常用的是“实体-关系”图。

所以在概念模型中最重要的对

象是实体和关系。

根据概念模型可以生成逻辑模型,逻辑模型是概念模型的延伸,表示概念之

间的逻辑次序,是一个属于方法层次的模型。

具体来说,逻辑模型中一方面显示

了实体、实体的属性和实体之间的关系,另一方面又将继承、实体关系中的引用

等在实体的属性中进行展示。

逻辑模型介于概念模型和物理模型之间,具有物理

模型方面的特性,在概念模型中的多对多关系,在逻辑模型中将会以增加中间实

体的一对多关系的方式来实现。

逻辑模型主要是使得整个概念模型更易于理解,同时又不依赖于具体的数据

库实现,使用逻辑模型可以生成针对具体数据库管理系统的物理模型。

逻辑模型

并不是在整个步骤中必须的,可以直接通过概念模型来生成物理模型。

物理模型依赖于具体的物理实现,使用的就是数据库对象,原来的“实体-

关系”转换成“表-外键”,实体的属性转换为表的列,同时每个列的数据类型转

换为对应的DBMS中支持的数据类型。

对于SQLServer2008的物理模型,如果主键需要使用自增长,那么需要

修改具体的列,设置该列为Identity。

如果生成的数据类型不合理,也可以调整

数据类型,使得数据类型使用得更恰当。

在物理模型中除了生成的表外,还可以

手动增加视图、存储过程、业务规则等在概念模型和逻辑模型中无法表达的数据

 

2

 

库对象。

对物理模型调整好后,就可以将模型应用到SQLServer数据库中。

在数据

库中实现物理模型的方法有两种,一种是使用PD连接到SQLServer数据库,

然后将模型同步到数据库中,另一种方法就是生成数据库脚本。

 

3

 

概念模型设计

 

在概念模型中主要有以下几个操作和设置的对象:

实体(Entity)、实体属

性(Attribute)、实体标识(Identifiers)、关系(Relationship)、继承

(Inheritance)、关联(Association)、关联连接(AssociationLink)。

实体

实体就是我们抽象出的对象,比如:

一个选课系统中,学生、教师、班级、

课程等等都是实体。

实体属性就是一个实体中所包含的简单属性,比如学生实体,

具有学号、、生日、性别等属性。

另外实体还有个标识用于唯一的标识出每

个实体实例,比如学生实体中就可用将学生的学号作为该实体的标识。

标识可用

是一个实体属性也可以是多个属性的结合。

在PD中新建一个新的概念模型,系

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

 

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

再单击鼠

标图标,即可切换回一般鼠标的模式。

双击已经添加的实体,弹出实体属性设置

对话框,在General中可以设置实体的Name和Code等属性,如图所示:

 

4

 

切换到Attributes选项卡可以设置实体的属性Name、Code、DataType

等,右边还有3个复选框,M表示不能为空,P表示是标识属性,D表示在模

型图中是否显示,如果在设置属性时直接选中StudentID的P复选框,系统将

会自动生成该Student实体的一个Identifier。

 

如果不希望系统自动生成而是手动设置的话,那么切换到Identifiers选项

卡,添加一行Identifier,然后单击左上角的“属性”按钮,然后弹出的标识属

性设置对话框中单击“添加行”按钮,选择该标识中使用的属性。

例如将学号设

置为学生实体的标识,具体操作如图所示:

 

5

 

整个设置好的实体如图所示:

 

关系

关系用于表示一个实体与另外一个实体之间的对应关系,分为一对一(1:

1),

一对多(1:

n),多对一(n:

1),多对多(m:

n)4种对应关系,一对多和多对一

其实就是方向相反,所以实际上就是一对一、一对多和多对多。

最最常用的就是一对多,比如班级实体和学生实体就是一对多关系,一个班级

有多个学生,一个学生只会属于一个班级。

在设计面板中添加一个Class实体,

然后单击工具栏的Relationship按钮,然后在Class实体上单击一下,再到

Student上单击一下,就可以在Class和Student之间建立一对多关系,如图:

 

系统默认会给该关系一个命名Relationship_1,切换到鼠标指针模式,双

击Relationship_1,即可打开关系的属性窗口,可以在General选项卡中修改

6

 

该关系的Name、Code等,如图:

 

切换到Cardinalities选项卡,上面可以修改是一对多还是多对多之类的关

系,下面的Rolename没有多大的意义,就是在模型中显示文字,多的一方有

0,n和1,n两种,也就是说一个班级可以对应多个学生,那么一个班级中最少是

没有学生还是要至少存在一个学生,同样的一的一方有0,1和1,1两种,就是说

一个学生是可以不属于任何班级呢还是必须属于某一个存在的班级,这里我们都

选至少是1,所以最终的设置界面如图:

 

7

 

继承

在概念模型中的继承与在OO模型中的继承是一回事,就是要抽象出一个

实体,其他实体继承该实体后就拥有该实体的属性。

同样以选课系统为例,现在有学生实体,有教师实体,其他他们都是人,具

有人的属性,所以我们可以抽象出一个人的实体,人具有性别、生日、名字等属

性,教师具有职称、工号等属性这是学生没有的,所以不能放在人实体中,学生

具有学号属性是教师没有的。

 

这里只是概念模型,在DBMS中是没有继承这种说法的,所以在接下来的

逻辑模型和物理模型中,系统就会将继承转换为实际的实体和表。

这里只是概念

模型,所以才有继承的说法。

关联(Association)

Association也是一种实体间的连接,在Merise模型方法学理论中,

Association是一种用于连接分别代表明确定义的对象的不同实体,这种连接仅

仅通过另一个实体不能很明确地表达,而通过“事件(Event)”连接来表示。

也就是说,实体和实体之间存在着关系(多对多),但是这种关系还存在其

他的属性,这些属性如果如果作为一个明确的实体的实体来表示又不是很合适,

8

 

所以就使用了Association来表达,这种关系之间一般是一个“事件”虚实体,

也就是说是一个动词对应的实体。

前面说的可能还是太抽象,以实际的例子来说明:

现在有了学生实体,有课

程实体,一个学生可以选择多门课程,一门课程有多个学生来上课,所以之间就

存在一个“选课”的Association,其中记录了学生选课的时间、选课的状态:

 

一个学生会对应多个选课结果选择多门课程,一个课程对应多个选课学生选

课,所以学生实体和课程实体与选课的关系都是一对多,添加关联连接,一门课

程可能太枯燥了,没有学生来选,所以课程对应选课可能是0,n,一个学生可能

学分够了这学期一门课都不选,所以学生对应选课也可能是0,n的关系,所以我

们最终形成的概念模型如图所示:

 

这就是一个完整的概念模型。

接下来就是要根据概念模型生成逻辑模型或者

物理模型。

9

 

物理模型设计1——表和主外键

 

在PD中建立物理模型由以下几种办法:

1.直接新建物理模型。

2.设计好概念模型,然后由概念模型生成物理模型。

3.设计好逻辑模型,然后由逻辑模型生成物理模型。

4.使用逆向工程的方法,连接到现有的数据库,由数据库生成物理模型。

物理模型能够直观的反应出当前数据库的结构。

在数据库中的表、视图、存

储过程等数据库对象都可以在物理模型中进行设计。

由于物理模型和数据库的一

致性,接下来以数据库对象和物理模型对象的对应来一一介绍:

新建物理模型时需要指定物理模型对应的DBMS,这里我们使用SQL

Server2008,新建一个物理模型后,系统会显示一个专门用于物理模型设计的

工具栏:

 

若要在物理模型中添加一个表,单击“表”按钮,然后再到模型设计面板中

单击一次便可添加一个表,系统默认为表命名为Table_n,这里的n会随着添加

的表增多而顺序增加。

添加的表是没有任何列的,如图所示:

 

 

单击工具栏的鼠标指针按钮,将鼠标切换回指针模式,然后双击一个表,系

统将打开表属性窗口,在General选项卡中可以设置表的Name、Code等属性。

例如我们要新建一个教室表(ClassRoom),则可修改Name和Code。

Name

 

10

 

是在模型中显示的名称,Code是生成数据库表的时候的实际表名。

另外Name

中的容还会作为SQLServer中的表备注。

 

单击Columns切换到列选项卡,在下面的列表中可以添加表中的列。

Name

是模型上显示的名称,Code是生成的实际的表名,后面的3个复选框P代办主

键、F代表外键,M代表不能为空。

为教室表设计了两个列,如图所示:

 

11

 

 

主键

在设计一个表时,一般情况下每个表都会有一个主键,主键分为单列主键和

复合主键。

在为表设置主键时有以下几种办法:

1.在Columns选项卡中,直接选中主键列的P列复选框,这是最简单的方

式。

2.选中一个列,然后单击工具栏中的“属性”按钮,系统将弹出列属性窗口,

在该窗口中可以设置该列的各种属性,当然也包括该列是否是否是主键。

另外还

有一个很重要的复选框是“Identity”。

选中Identity复选框则表示该列为自增

列。

 

12

 

3.切换到Keys选项卡中,在其中添加一行命名为PK_ClassRoom,然后单

击工具栏的“属性”按钮,打开键属性窗口,在该窗口中切换到Columns选项

卡,单击添加列按钮,弹出列选择窗口,选中主键中应该包含的列,单击确定按

钮即可完成主键的创建。

 

13

 

另外需要注意的是,在建立主键时,系统会在主键上建立索引,索引分为聚

集索引和非聚集索引,在“键属性”窗口的General选项卡中可以设置该主键

上建立的索引是聚集索引还是非聚集索引,如图所示:

 

外键

如果是由概念模型或者逻辑模型生成物理模型,那么外键是通过

Relationship生成的,也可以通过工具栏中的Reference来实现两表之间的外

键关系。

假如一个课程只会在一个固定的教室上课,而一个教室会安排多个课程

在不同的时间上课,所以教室和课程是一对多的关系,那么课程表中就需要添加

RoomID列以形成外键列,具体操作方法就是在工具栏中单击“Reference”按

钮,然后在设计面板中,课程表上按下鼠标左键,并拖拽到教师表中放开鼠标,

这时如果课程表中没有RoomID列,系统会自动创建RoomID列并创建该列上

的外键引用,如果已经存在RoomID列,则只添加外键引用,不会再添加新列。

 

14

 

切换到鼠标指针模式,双击箭头,系统将弹出引用的属性窗口,在属性窗口

中可以设置该引用的Name、Code、关联的列、约束名、更新策略和删除策略

等。

 

15

 

物理模型设计2——约束

 

唯一约束

唯一约束与创建唯一索引基本上是一回事,因为在创建唯一约束的时候,系

统会创建对应的一个唯一索引,通过唯一索引来实现约束。

不过唯一约束更直观

的表达了对应列的唯一性,使得对应索引的目的更加清晰,所以一般建议创建唯

一约束而不是只创建唯一索引。

在PD中创建唯一约束的操作,以教室表来说,RoomID是主键,必然是唯

一的,RoomName如果我们也要去必须是唯一的,那么具体操作如下:

在PD的模型设计面板中,双击“教室”表,打开属性窗口,切换到"”Keys”

选项卡,可以看到里面有一行数据PK_ClassRoom,这是主键约束。

添加一行

数据,命名为UQ_RoomName,不能将右边的“P”列选上,然后单击工具栏

的“属性”按钮,弹出UQ_RoomName的属性窗口,切换到列选项卡,单击

增加列按钮,选择将RoomName列添加到其中,然后单击确定即可完成唯一

约束的添加。

 

16

 

这样系统就会自动创建唯一约束。

CHECK约束

CHECK分为列约束和表约束,列约束是只对表中的某一个列进行的约束,

可以在列的属性中进行设置,而表约束是对多个列进行的约束,需要在表的属性

中进行设置(其实列约束也可以在表约束中设置)。

1.标准CHECK约束

对于一些常用的CHECK约束,可以直接通过设置界面来完成。

以班级表为

例,ClassName每个学校有自己的命名规则,假设这里规定ClassName必须

以2开头,那么需要在ClassName列上定义CHECK约束,使得其满足命名规

具体操作是在PD中双击Class表,打开Class的属性窗口,切换到列选项

 

17

 

卡,选择ClassName列,单击工具栏的“属性”按钮,弹出ClassName的属

性窗口,切换到StandardChecks选项卡如图:

 

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

下:

参数

Minimum

Maximum

Default

Unit

Format

Lowercase

Uppercase

说明

属性可接受的最小数

属性可接受的最大数

属性不赋值时,系统提供的默认值

单位,如公里、吨、元

属性的数据显示格式

属性的赋值全部变为小写字母

属性的赋值全部变为大写字母

 

18

 

Cannotmodify

ListOfValues

Label

 

该属性一旦赋值不能再修改

属性赋值列表,除列表中的值,不能有其他的值

属性列表值的标签

2.直接编写SQL语句的CHECK约束

在前面弹出ClassName属性窗口中,单击左下角的“More”按钮,系统

将弹出更多的选项卡,切换到“AdditionalChecks”选项卡,可以设置约束名

和具体的约束容,如图所示:

 

表级的CHECK约束与列级的CHECK约束设置类似,单击表属性窗口左下

角的“More”按钮,切换到Check选项卡,设置CHECK约束的命名和SQL

语句容。

 

19

 

3.使用Rule创建约束

同样以班级名必须以2开头为例,通过Rule创建CHECK约束。

首先需要

创建一个Rule,双击Class表,打开表的属性窗口,切换到Rules选项卡,单

击“CreateaObject”按钮,系统将打开一个业务规则属性窗口,修改规则名,

并将规则的类型修改为Constraint,如图所示:

 

20

 

然后切换到Expression选项卡,设置规则的容为“ClassNameLIKE

'2%'”,单击确定按钮即可完成Rule的设置。

切换到表属性的Check选项卡,

默认约束容中的“%RULES%”就是用来表示Rule中设置的容,如果我们

还有一些其他的CHECK约束容,不希望在Rule中设置,而是在Check选项

卡中设置,那么只需要删除%RULES%将CHECK约束容添加进去,也可以保

留%RULES%,然后在与%RULES%之间添加一个and即可。

比如规定ClassID

必须小于10000,那么我们可以将Check容设置如下:

 

21

 

生成的脚本如下:

createtableClass(

ClassID

ClassName

int

varchar(20)

notnull,

notnull,

constraintPK_CLASSprimarykeynonclustered(ClassID),

constraintCKT_CLASScheck(ClassID<10000),

constraintClassNameRulecheck(ClassNameLIKE'2%')

go

可以看到,根据Rule生成的CHECK约束与在Check选项卡中设置的约束

将分别创建一个约束,相互并不影响。

默认约束

22

 

默认约束是用户在没有输入值的情况下,系统给出默认的值。

最常用的是

CreateTime字段,设置默认值为getdate(),在用户创建一行数据时记录下创

建时间。

例如对于选课表,需要记录下选课的时间,则可以设置ApplyTime的

默认值为getdate()函数。

 

设置默认值约束的操作如下:

双击选课表,打开表属性窗口,选择

ApplyTime字段,单击工具栏的属性按钮,打开列的属性窗口,切换到Standard

Checks选项卡,在Default下拉列表框中选择getdate()即可。

 

至此我们所有的约束在PD中的设置都介绍完了,下一篇将介绍视图、存储

23

 

过程等数据库对象。

 

24

 

物理模型设计3——视图、存储过程和函数

视图

在SQLServer中视图定义了一个SQL查询,一个查询中可以查询一个表也可以查询多个表,在PD中定

义视图与在SQLServer中定义查询相似。

例如要创几个所有学生的所有选课结果的视图,那么在工具栏

中选择视图按钮,然后在设计面板中单击鼠标一次便可添加一个空白的视图,切换到鼠标指针模式,双击

该视图便可打开视图的属性窗口。

在General选项卡中,可以设置视图的名字和其他属性。

 

Usage是表示视图是只读的视图还是可更新的视图,还有一个是checkoption选项,指定了CHECK

OPTION,也不能依据视图来验证任何直接对视图的基础表执行的更新。

如果我们只创建一般的视图,那

么就选择只查询选项。

DimensionalType指定该视图表示的是维度还是事实,这个主要是在进行数据仓库多维数据建模时使用,

一般情况下不需要指定。

后面的两个复选框也不需要进行修改。

Type使用默认的view选项。

切换到SQLQuery选项卡,在文本框中可以设置视图定义的查询容,建议直接先在SSMS中验证视图

定义SQL语句的正确性,然后再将SQL语句复制粘贴到该文本框中。

在定义视图时最好不要使用*,而

应该使用各个需要的列名,这样在视图属性的Columns中才能看到每个列。

设计SQLQuery如图所示。

 

25

 

 

当然,也可以在PD中使用自带的SQL编辑器编写SQL语句,单击右下角的“EditwithSQLEditor”按

钮,即可弹出SQLEditor编辑器,编写SQL语句。

存储过程和函数

存储过程和用户自定义函数都是在同一个组件中设置的,在工具栏中单击Procedure按钮,然后在设计面

板中单击一次便可添加一个Procedure。

例如要创建一个存储过程根据学生的学号获得学生所选的课程,

那么对于的操作如下:

在指针模式下双击添加的Procedure,打开Procedure属性窗口,在General选项卡中可以设置该存储

过程的名字。

 

26

 

然后切换到Definition选项卡,该选项卡中定义了存储过程的定义,在下拉列表框中,选择

Procedure>选项,如果是要定义函数,那么就需要选择选项,系统会根据选择的

类型创建SQL语句的模板。

 

在下面的SQL语句中,可以将createprocedure[%QUALIFIER%]%PROC%保留,其他的删除,根

27

 

据自己要创建的存储过程编写SQL语句。

createprocedure[%QUALIFIER%]%PROC%

StudentIDint

as

begin

selectCourseName

fromvwStudentCourse

whereStudentID=StudentID

end

单击确定按钮,系统会根据编写的SQL语句,将所使用的表、视图与存储过程关联起来,如图所示:

 

创建函数的过程与之类似,只是使用的是createfunction而不是createProcedure而已。

至此,最常见的数据库对象:

表(表的约束)、视图、存储过程、函数等在PD的创建已经介绍完了,接下

来会介绍PD的设置。

 

28

 

PowerDesigner15使用时的十五个问题

 

PowerDesigner的主要作用一般还是数据库建模,并生成对应的数据库设

计文档,可以与数据库保持同步。

一般常用的有CDM,PDM,UML建模,CDM可以转为PDM。

支持正向[生成数据库]和逆向工程[从数据库中生成],并直接关联到到数据

库中,PDM可以直接和数据库进行关联,并将数据库,表,视图,触发器等数

据库对象生成到数据库中,也可将这些对象更新到PDM中。

PowerDesigner的几个主要常用菜单是MODEL、DATEBASE、Tool,这

三个菜单下命令使用比较多,要熟悉。

PD还可以用来画用例图,序列图,类图等UML图。

也可以画企业架构图,软件应用架构图等等图形

15个问题列表:

 

No.1:

是不是一定要从CDM开始设计,然后在进行PDM的设计?

 

NO.2:

工具栏palette不见了,如何把它找出来?

 

NO.3:

如何建立与数据库的

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2