`

PowerDesigner中设计物理模型1

阅读更多

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

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

  1. 直接新建物理模型。
  2. 设计好概念模型,然后由概念模型生成物理模型。
  3. 设计好逻辑模型,然后由逻辑模型生成物理模型。
  4. 使用逆向工程的方法,连接到现有的数据库,由数据库生成物理模型。

物理模型能够直观的反应出当前数据库的结构。在数据库中的表、视图、存储过程等数据库对象都可以在物理模型中进行设计。由于物理模型和数据库的一致性,接下来以数据库对象和物理模型对象的对应来一一介绍:

新建物理模型时需要指定物理模型对应的DBMS,这里我们使用SQL Server 2008,新建一个物理模型后,系统会显示一个专门用于物理模型设计的工具栏:

image

若要在物理模型中添加一个表,单击“表”按钮,然后再到模型设计面板中单击一次便可添加一个表,系统默认为表命名为Table_n,这里的n会随着添加的表增多而顺序增加。添加的表是没有任何列的,如图所示:

image

单 击工具栏的鼠标指针按钮,将鼠标切换回指针模式,然后双击一个表,系统将打开表属性窗口,在General选项卡中可以设置表的Name、Code等属 性。例如我们要新建一个教室表(ClassRoom),则可修改Name和Code。Name是在模型中显示的名称,Code是生成数据库表的时候的实际 表名。另外Name中的内容还会作为SQL Server中的表备注。

image

单击Columns切换到列选项卡,在下面的列表中可以添加表中的列。Name是模型上显示的名称,Code是生成的实际的表名,后面的3个复选框P代办主键、F代表外键,M代表不能为空。为教室表设计了两个列,如图所示:

image 

主键

在设计一个表时,一般情况下每个表都会有一个主键,主键分为单列主键和复合主键。在为表设置主键时有以下几种办法:

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

2.选中一个列,然后单击工具栏中的“属性”按钮,系统将弹出列属性窗口,在该窗口中可以设置该列的各种属性,当然也包括该列是否是否是主键。另外还有一个很重要的复选框是“Identity”。选中Identity复选框则表示该列为自增列。

image

3.切换到Keys选项卡中,在其中添加一行命名为PK_ClassRoom,然后单击工具栏的“属性”按钮,打开键属性窗口,在该窗口中切换到Columns选项卡,单击添加列按钮,弹出列选择窗口,选中主键中应该包含的列,单击确定按钮即可完成主键的创建。

image

另外需要注意的是,在建立主键时,系统会在主键上建立索引,索引分为聚集索引和非聚集索引,在“键属性”窗口的General选项卡中可以设置该主键上建立的索引是聚集索引还是非聚集索引,如图所示:

image

外键

如 果是由概念模型或者逻辑模型生成物理模型,那么外键是通过Relationship生成的,也可以通过工具栏中的Reference来实现两表之间的外键 关系。假如一个课程只会在一个固定的教室上课,而一个教室会安排多个课程在不同的时间上课,所以教室和课程是一对多的关系,那么课程表中就需要添加 RoomID列以形成外键列,具体操作方法就是在工具栏中单击“Reference”按钮,然后在设计面板中,课程表上按下鼠标左键,并拖拽到教师表中放 开鼠标,这时如果课程表中没有RoomID列,系统会自动创建RoomID列并创建该列上的外键引用,如果已经存在RoomID列,则只添加外键引用,不 会再添加新列。

 image

切换到鼠标指针模式,双击箭头,系统将弹出引用的属性窗口,在属性窗口中可以设置该引用的Name、Code、关联的列、约束名、更新策略和删除策略等。

 

在PowerDesigner中设计物理模型2——约束

唯一约束

唯一约束与创建唯一索引基本上是一回事,因为在创建唯一约束的时候,系统会创建对应的一个唯一索引,通过唯一索引来实现约束。不过唯一约束更直观的表达了对应列的唯一性,使得对应索引的目的更加清晰,所以一般建议创建唯一约束而不是只创建唯一索引。

在PD中创建唯一约束的操作,以教室表来说,RoomID是主键,必然是唯一的,RoomName如果我们也要去必须是唯一的,那么具体操作如下:

在 PD的模型设计面板中,双击“教室”表,打开属性窗口,切换到"”Keys”选项卡,可以看到里面有一行数据PK_ClassRoom,这是主键约束。添 加一行数据,命名为UQ_RoomName,不能将右边的“P”列选上,然后单击工具栏的“属性”按钮,弹出UQ_RoomName的属性窗口,切换到列 选项卡,单击增加列按钮,选择将RoomName列添加到其中,然后单击确定即可完成唯一约束的添加。

image

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

CHECK约束

CHECK分为列约束和表约束,列约束是只对表中的某一个列进行的约束,可以在列的属性中进行设置,而表约束是对多个列进行的约束,需要在表的属性中进行设置(其实列约束也可以在表约束中设置)。

1.标准CHECK约束

对 于一些常用的CHECK约束,可以直接通过设置界面来完成。以班级表为例,ClassName每个学校有自己的命名规则,假设这里规定ClassName 必须以2开头,那么需要在ClassName列上定义CHECK约束,使得其满足命名规范。具体操作是在PD中双击Class表,打开Class的属性窗 口,切换到列选项卡,选择ClassName列,单击工具栏的“属性”按钮,弹出ClassName的属性窗口,切换到StandardChecks选项 卡如图:

image

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

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

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

在前面弹出ClassName属性窗口中,单击左下角的“More”按钮,系统将弹出更多的选项卡,切换到“Additional Checks”选项卡,可以设置约束名和具体的约束内容,如图所示:

image

表级的CHECK约束与列级的CHECK约束设置类似,单击表属性窗口左下角的“More”按钮,切换到Check选项卡,设置CHECK约束的命名和SQL语句内容。

image

3.使用Rule创建约束

同 样以班级名必须以2开头为例,通过Rule创建CHECK约束。首先需要创建一个Rule,双击Class表,打开表的属性窗口,切换到Rules选项 卡,单击“Create a Object”按钮,系统将打开一个业务规则属性窗口,修改规则名,并将规则的类型修改为Constraint,如图所示:

image

然 后切换到Expression选项卡,设置规则的内容为“ClassName LIKE '2%'”,单击确定按钮即可完成Rule的设置。切换到表属性的Check选项卡,默认约束内容中的“%RULES%”就是用来表示Rule中设置的内 容,如果我们还有一些其他的CHECK约束内容,不希望在Rule中设置,而是在Check选项卡中设置,那么只需要删除%RULES%将CHECK约束 内容添加进去,也可以保留%RULES%,然后在与%RULES%之间添加一个and即可。比如规定ClassID必须小于10000,那么我们可以将 Check内容设置如下:

image

生成的脚本如下:

create table Class (
   ClassID              int                  not null,
   ClassName            varchar(20)          not null,
   constraint PK_CLASS primary key nonclustered (ClassID),
   constraint CKT_CLASS check (ClassID<10000),
   constraint ClassNameRule check (ClassName LIKE '2%')
)
go

可以看到,根据Rule生成的CHECK约束与在Check选项卡中设置的约束将分别创建一个约束,相互并不影响。

默认约束

默 认约束是用户在没有输入值的情况下,系统给出默认的值。最常用的是CreateTime字段,设置默认值为getdate(),在用户创建一行数据时记录 下创建时间。例如对于选课表,需要记录下选课的时间,则可以设置ApplyTime的默认值为getdate()函数。

image

设置默认值约束的操作如下:双击选课表,打开表属性窗口,选择ApplyTime字段,单击工具栏的属性按钮,打开列的属性窗口,切换到Standard Checks选项卡,在Default下拉列表框中选择getdate()即可。

image

至此我们所有的约束在PD中的设置都介绍完了,下一篇将介绍视图、存储过程等数据库对象。

 

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

视图

在SQL Server中视图定义了一个SQL查询,一个查询中可以查询一个表也可以查询多个表,在PD中定义视图与在SQL Server中定义查询相似。例如要创几个所有学生的所有选课结果的视图,那么在工具栏中选择视图按钮,然后在设计面板中单击鼠标一次便可添加一个空白的 视图,切换到鼠标指针模式,双击该视图便可打开视图的属性窗口。在General选项卡中,可以设置视图的名字和其他属性。

image

Usage是表示视图是只读的视图还是可更新的视图,还有一个是check option选项,指定了 CHECK OPTION,也不能依据视图来验证任何直接对视图的基础表执行的更新。如果我们只创建一般的视图,那么就选择只查询选项。

Dimensional Type指定该视图表示的是维度还是事实,这个主要是在进行数据仓库多维数据建模时使用,一般情况下不需要指定。后面的两个复选框也不需要进行修改。Type使用默认的view选项。

切换到SQL Query选项卡,在文本框中可以设置视图定义的查询内容,建议直接先在SSMS中验证视图定义SQL语句的正确性,然后再将SQL语句复制粘贴到该文本 框中。在定义视图时最好不要使用*,而应该使用各个需要的列名,这样在视图属性的Columns中才能看到每个列。设计SQL Query如图所示。

image

当然,也可以在PD中使用自带的SQL编辑器编写SQL语句,单击右下角的“Edit with SQL Editor”按钮,即可弹出SQL Editor编辑器,编写SQL语句。

存储过程和函数

存储过程和用户自定义函数都是在同一个组件中设置的,在工具栏中单击Procedure按钮,然后在设计面板中单击一次便可添加一个Procedure。例如要创建一个存储过程根据学生的学号获得学生所选的课程,那么对于的操作如下:

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

image

然后切换到Definition选项卡,该选项卡中定义了存储过程的定义,在下拉列表框中,选择<Default Procedure>选项,如果是要定义函数,那么就需要选择<Default Function>选项,系统会根据选择的类型创建SQL语句的模板。

image

在下面的SQL语句中,可以将create procedure [%QUALIFIER%]%PROC%保留,其他的删除,根据自己要创建的存储过程编写SQL语句。

create procedure [%QUALIFIER%]%PROC%
@StudentID int
as
begin
select CourseName
from vwStudentCourse
where StudentID=@StudentID
end

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

image

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

至此,最常见的数据库对象:表(表的约束)、视图、存储过程、函数等在PD的创建已经介绍完了,接下来会介绍PD的设置。

分享到:
评论

相关推荐

    powerdesigner9.5物理模型用户入门手册

    利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设备模型进行控制。 它可与许多流行的数据库设计软件,例如:...

    使用PowerDesigner生成PostgreSQL数据库的物理数据模型

    PowerDesigner PostgreSQL 物理模型 逆向

    酒店管理系统数据库设计物理模型

    通过PowerDesigner Trial 11设计出酒店管理系统数据库设计物理模型

    PowerDesigner16.5 中文教程-数据库模型操作教程_详解

    一、 使用 POWERDESIGNER 软件...五、 由物理模型生成对象模型,并生成相应的 GET、SET 方法 ...... 六、 建立索引、视图、存储过程 ...... 七、 生成数据库文档(开发的数据库设计文档) ...... 八、 常规配置 ......

    PowerDesigner中实现CDM(概念模型)设计并转化为PDM(物理模型)

    关系数据库从应用以来,一直是数据关系系统数据存储方式的不二选择,本...并转化成特定数据库中的物理数据模式的过程PDM,其中包括对Powerdesigner工具的使用方法的简单讲解,及从概念模型设计到物理模型实现的全过程

    数据库设计(利用数据库设计工具PowerDesigner )

    利用PowerDesigner数据库设计软件对ER图的设计,并将ER图转换为物理模型。 一、数据库设计工具PowerDesigner 1. PowerDesigner简介 PowerDesigner是Sybase公司推出的智能化的CASE(Computer Aided Software ...

    PowerDesigner设计建模实例

    PowerDesigner设计建模实例,详细的介绍了用pd创建业务流程图、数据流程图、概念模型、物理数据模型的过程,并有详细的图解和实例。

    PowerDesigner 导出表结构 到Excel

    1,打开PowerDesigner,找到创建的物理模型(Physical Data Model), 2,使用快捷键,或者 在PowerDesigner菜单栏中,依次点击“Tools -&gt;Excute Commands-&gt;Edit/Run Script..” 3,将下面代码粘贴到空白,点击Run 4,...

    PowerDesigner16.5中文教程-数据库模型操作教程

    三、 数据模型转换、四、 导入导出sql脚本、五、 由物理模型生成对象模型,并生成相应的get、set方法、六、 建立索引、视图、存储过程、七、 生成数据库文档(开发的数据库设计文档)、八、 常规配置

    Powerdesigner数据库设计指南.doc

    Powerdesigner数据库设计指南 概述 本指南只介绍用Powerdesigner设计概念模型、物理模型及仓库的使用,Powerdesig ner其它模型的使用不在本指南的介绍范围。 本指南使用的工具为Powerdesigner15。因Powerdesigner各...

    powerdesigner设计工具实用资料文档集

    利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设计模型进行控制。它可与许多流行的数据库设计软件,例如:...

    教务管理系统数据库物理模型

    教务管理系统的数据库物理模型。用powerdesigner打开。

    powerdesigner数据库设计.pdf

    数据库设计 (1)创建物理数据模型 打开PowerDesigner,然后点击File--&gt;New Model然后选择如下图所⽰的物理数据模型(物理数据模型的名字⾃⼰起,然后选择⾃⼰所使⽤ 的数据库即可) (创建好主页⾯如图所⽰,但是...

    PowerDesigner165汉化中文包

    PowerDesigner165汉化包,PowerDesigner是一款非常实用的数据库管理软件,它可以从物理和概念两个层面设计数据库,方便用户制作处清晰直观的数据流程图和结构模型;而且PowerDesigner还可以和NET、Eclipse等主流平台...

    数据库模型设计.doc

    数据库设计中概念模型和逻辑模型区别比较模糊,所以在数据库设计工具ERWIN中只 提供了逻辑模型和物理模型,而在PowerDesigner早期版本中也只提供了概念模型和物理 模型两种模型,只是在PowerDesigner15版本中提供了...

    powerdesigner教程

    包括:PowerDesigner15 1中文教程.pdf PowerDesigner概念模型物理模型.pdf 从PowerDesigner概念设计模型.pdf

    Powerdesigner数据库设计指南

    Powerdesigner12.5建概念数据模型、物理数据模型、仓库的使用指南

    PowerDesigner16.5破解文件

    PowerDesigner16.5破解版是一款业内领先且开发人员常用的数据库建模工具,PowerDesigner可以从物理和概念两个层面设计数据库,方便用户制作处清晰直观的数据流程图和结构模型,欢迎有需要的朋友们前来下载使用。...

Global site tag (gtag.js) - Google Analytics