在PowerDesigner中设计物理模型1——表和主外键
在PD中建立物理模型由以下几种办法:
- 直接新建物理模型。
- 设计好概念模型,然后由概念模型生成物理模型。
- 设计好逻辑模型,然后由逻辑模型生成物理模型。
- 使用逆向工程的方法,连接到现有的数据库,由数据库生成物理模型。
物理模型能够直观的反应出当前数据库的结构。在数据库中的表、视图、存储过程等数据库对象都可以在物理模型中进行设计。由于物理模型和数据库的一致性,接下来以数据库对象和物理模型对象的对应来一一介绍:
表
新建物理模型时需要指定物理模型对应的DBMS,这里我们使用SQL Server 2008,新建一个物理模型后,系统会显示一个专门用于物理模型设计的工具栏:
若要在物理模型中添加一个表,单击“表”按钮,然后再到模型设计面板中单击一次便可添加一个表,系统默认为表命名为Table_n,这里的n会随着添加的表增多而顺序增加。添加的表是没有任何列的,如图所示:
单 击工具栏的鼠标指针按钮,将鼠标切换回指针模式,然后双击一个表,系统将打开表属性窗口,在General选项卡中可以设置表的Name、Code等属 性。例如我们要新建一个教室表(ClassRoom),则可修改Name和Code。Name是在模型中显示的名称,Code是生成数据库表的时候的实际 表名。另外Name中的内容还会作为SQL Server中的表备注。
单击Columns切换到列选项卡,在下面的列表中可以添加表中的列。Name是模型上显示的名称,Code是生成的实际的表名,后面的3个复选框P代办主键、F代表外键,M代表不能为空。为教室表设计了两个列,如图所示:
主键
在设计一个表时,一般情况下每个表都会有一个主键,主键分为单列主键和复合主键。在为表设置主键时有以下几种办法:
1.在Columns选项卡中,直接选中主键列的P列复选框,这是最简单的方式。
2.选中一个列,然后单击工具栏中的“属性”按钮,系统将弹出列属性窗口,在该窗口中可以设置该列的各种属性,当然也包括该列是否是否是主键。另外还有一个很重要的复选框是“Identity”。选中Identity复选框则表示该列为自增列。
3.切换到Keys选项卡中,在其中添加一行命名为PK_ClassRoom,然后单击工具栏的“属性”按钮,打开键属性窗口,在该窗口中切换到Columns选项卡,单击添加列按钮,弹出列选择窗口,选中主键中应该包含的列,单击确定按钮即可完成主键的创建。
另外需要注意的是,在建立主键时,系统会在主键上建立索引,索引分为聚集索引和非聚集索引,在“键属性”窗口的General选项卡中可以设置该主键上建立的索引是聚集索引还是非聚集索引,如图所示:
外键
如 果是由概念模型或者逻辑模型生成物理模型,那么外键是通过Relationship生成的,也可以通过工具栏中的Reference来实现两表之间的外键 关系。假如一个课程只会在一个固定的教室上课,而一个教室会安排多个课程在不同的时间上课,所以教室和课程是一对多的关系,那么课程表中就需要添加 RoomID列以形成外键列,具体操作方法就是在工具栏中单击“Reference”按钮,然后在设计面板中,课程表上按下鼠标左键,并拖拽到教师表中放 开鼠标,这时如果课程表中没有RoomID列,系统会自动创建RoomID列并创建该列上的外键引用,如果已经存在RoomID列,则只添加外键引用,不 会再添加新列。
切换到鼠标指针模式,双击箭头,系统将弹出引用的属性窗口,在属性窗口中可以设置该引用的Name、Code、关联的列、约束名、更新策略和删除策略等。
在PowerDesigner中设计物理模型2——约束
唯一约束
唯一约束与创建唯一索引基本上是一回事,因为在创建唯一约束的时候,系统会创建对应的一个唯一索引,通过唯一索引来实现约束。不过唯一约束更直观的表达了对应列的唯一性,使得对应索引的目的更加清晰,所以一般建议创建唯一约束而不是只创建唯一索引。
在PD中创建唯一约束的操作,以教室表来说,RoomID是主键,必然是唯一的,RoomName如果我们也要去必须是唯一的,那么具体操作如下:
在 PD的模型设计面板中,双击“教室”表,打开属性窗口,切换到"”Keys”选项卡,可以看到里面有一行数据PK_ClassRoom,这是主键约束。添 加一行数据,命名为UQ_RoomName,不能将右边的“P”列选上,然后单击工具栏的“属性”按钮,弹出UQ_RoomName的属性窗口,切换到列 选项卡,单击增加列按钮,选择将RoomName列添加到其中,然后单击确定即可完成唯一约束的添加。
这样系统就会自动创建唯一约束。
CHECK约束
CHECK分为列约束和表约束,列约束是只对表中的某一个列进行的约束,可以在列的属性中进行设置,而表约束是对多个列进行的约束,需要在表的属性中进行设置(其实列约束也可以在表约束中设置)。
1.标准CHECK约束
对 于一些常用的CHECK约束,可以直接通过设置界面来完成。以班级表为例,ClassName每个学校有自己的命名规则,假设这里规定ClassName 必须以2开头,那么需要在ClassName列上定义CHECK约束,使得其满足命名规范。具体操作是在PD中双击Class表,打开Class的属性窗 口,切换到列选项卡,选择ClassName列,单击工具栏的“属性”按钮,弹出ClassName的属性窗口,切换到StandardChecks选项 卡如图:
在这个选项卡可以定义属性的标准检查约束,窗口中每项的参数的含义,如下:
参数 |
说明 |
Minimum |
属性可接受的最小数 |
Maximum |
属性可接受的最大数 |
Default |
属性不赋值时,系统提供的默认值 |
Unit |
单位,如公里、吨、元 |
Format |
属性的数据显示格式 |
Lowercase |
属性的赋值全部变为小写字母 |
Uppercase |
属性的赋值全部变为大写字母 |
Cannot modify |
该属性一旦赋值不能再修改 |
List Of Values |
属性赋值列表,除列表中的值,不能有其他的值 |
Label |
属性列表值的标签 |
2.直接编写SQL语句的CHECK约束
在前面弹出ClassName属性窗口中,单击左下角的“More”按钮,系统将弹出更多的选项卡,切换到“Additional Checks”选项卡,可以设置约束名和具体的约束内容,如图所示:
表级的CHECK约束与列级的CHECK约束设置类似,单击表属性窗口左下角的“More”按钮,切换到Check选项卡,设置CHECK约束的命名和SQL语句内容。
3.使用Rule创建约束
同 样以班级名必须以2开头为例,通过Rule创建CHECK约束。首先需要创建一个Rule,双击Class表,打开表的属性窗口,切换到Rules选项 卡,单击“Create a Object”按钮,系统将打开一个业务规则属性窗口,修改规则名,并将规则的类型修改为Constraint,如图所示:
然 后切换到Expression选项卡,设置规则的内容为“ClassName LIKE '2%'”,单击确定按钮即可完成Rule的设置。切换到表属性的Check选项卡,默认约束内容中的“%RULES%”就是用来表示Rule中设置的内 容,如果我们还有一些其他的CHECK约束内容,不希望在Rule中设置,而是在Check选项卡中设置,那么只需要删除%RULES%将CHECK约束 内容添加进去,也可以保留%RULES%,然后在与%RULES%之间添加一个and即可。比如规定ClassID必须小于10000,那么我们可以将 Check内容设置如下:
生成的脚本如下:
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()函数。
设置默认值约束的操作如下:双击选课表,打开表属性窗口,选择ApplyTime字段,单击工具栏的属性按钮,打开列的属性窗口,切换到Standard Checks选项卡,在Default下拉列表框中选择getdate()即可。
至此我们所有的约束在PD中的设置都介绍完了,下一篇将介绍视图、存储过程等数据库对象。
在PowerDesigner中设计物理模型3——视图、存储过程和函数
视图
在SQL Server中视图定义了一个SQL查询,一个查询中可以查询一个表也可以查询多个表,在PD中定义视图与在SQL Server中定义查询相似。例如要创几个所有学生的所有选课结果的视图,那么在工具栏中选择视图按钮,然后在设计面板中单击鼠标一次便可添加一个空白的 视图,切换到鼠标指针模式,双击该视图便可打开视图的属性窗口。在General选项卡中,可以设置视图的名字和其他属性。
Usage是表示视图是只读的视图还是可更新的视图,还有一个是check option选项,指定了 CHECK OPTION,也不能依据视图来验证任何直接对视图的基础表执行的更新。如果我们只创建一般的视图,那么就选择只查询选项。
Dimensional Type指定该视图表示的是维度还是事实,这个主要是在进行数据仓库多维数据建模时使用,一般情况下不需要指定。后面的两个复选框也不需要进行修改。Type使用默认的view选项。
切换到SQL Query选项卡,在文本框中可以设置视图定义的查询内容,建议直接先在SSMS中验证视图定义SQL语句的正确性,然后再将SQL语句复制粘贴到该文本 框中。在定义视图时最好不要使用*,而应该使用各个需要的列名,这样在视图属性的Columns中才能看到每个列。设计SQL Query如图所示。
当然,也可以在PD中使用自带的SQL编辑器编写SQL语句,单击右下角的“Edit with SQL Editor”按钮,即可弹出SQL Editor编辑器,编写SQL语句。
存储过程和函数
存储过程和用户自定义函数都是在同一个组件中设置的,在工具栏中单击Procedure按钮,然后在设计面板中单击一次便可添加一个Procedure。例如要创建一个存储过程根据学生的学号获得学生所选的课程,那么对于的操作如下:
在指针模式下双击添加的Procedure,打开Procedure属性窗口,在General选项卡中可以设置该存储过程的名字。
然后切换到Definition选项卡,该选项卡中定义了存储过程的定义,在下拉列表框中,选择<Default Procedure>选项,如果是要定义函数,那么就需要选择<Default Function>选项,系统会根据选择的类型创建SQL语句的模板。
在下面的SQL语句中,可以将create procedure [%QUALIFIER%]%PROC%保留,其他的删除,根据自己要创建的存储过程编写SQL语句。
create procedure [%QUALIFIER%]%PROC%
@StudentID int
as
begin
select CourseName
from vwStudentCourse
where StudentID=@StudentID
end
单击确定按钮,系统会根据编写的SQL语句,将所使用的表、视图与存储过程关联起来,如图所示:
创建函数的过程与之类似,只是使用的是create function而不是create Procedure而已。
至此,最常见的数据库对象:表(表的约束)、视图、存储过程、函数等在PD的创建已经介绍完了,接下来会介绍PD的设置。
分享到:
相关推荐
1. 在 PowerDesigner 中,选择要生成 SQL 文件的物理模型。 2. 点击“文件”菜单,选择“导出”选项。 3. 在“导出”对话框中,选择要导出的文件格式,例如 SQL 文件。 4. 选择要导出的数据库对象,例如表、视图、...
在数据库设计领域,PowerDesigner是一款功能强大的工具,被广泛应用于概念模型、逻辑模型以及物理模型的设计与实现过程中。本文旨在深入探讨如何利用PowerDesigner进行概念模型与物理模型的设计,并详细解释其中的...
PowerDesigner提供了从概念模型生成物理模型的功能,可以将概念模型中的实体、属性和关系转换为物理模型中的表、字段和关系。这种转换可以自动完成,或者根据需要进行人工调整。在生成物理模型时,PowerDesigner会...
在物理数据模型(PDM)的使用中,PowerDesigner允许用户创建适应多种DBMS的数据库设计方案,并通过正向工程和逆向工程实现数据库的双向转化。以下是对PowerDesigner物理数据模型管理实用技巧的详细说明: 1、**物理...
接着,手册将详细介绍如何在PowerDesigner中设计物理模型。这包括创建实体(即数据库表)、定义属性(即字段)、设置数据类型、约束条件和主键。此外,还会讲述如何建立表间关系,如一对一、一对多、多对多关联,并...
在这个“powerdesigner9.5物理模型和Oracle建模”的主题中,我们将深入探讨如何利用PowerDesigner进行Oracle数据库的设计和构建。 首先,让我们关注“powerdesigner使用建议.doc”。这个文档很可能是对如何有效利用...
在软件开发与数据库设计领域,PowerDesigner作为一款强大的工具,广泛应用于概念数据模型(Conceptual Data Model, CDM)的设计之中。本文将深入探讨从PowerDesigner概念设计模型出发,如何理解和运用其中的核心元素...
PowerDesigner是一款强大的数据库建模工具,它允许用户创建和管理概念模型、逻辑模型以及物理模型。在本案例中,我们将详细探讨如何在PowerDesigner中构建和配置概念模型,特别是涉及实体、属性、标识、关系、继承和...
- 在PowerDesigner中选择“文件”->“新建”,然后选择“物理数据模型”。 2. **配置数据源**: - 进入数据源管理器,新建一个连接到PostgreSQL的数据源。 - 配置必要的连接信息,如服务器地址、数据库名、用户名...
通过以上步骤,设计者可以有效地在PowerDesigner中构建概念模型,清晰地定义实体及其属性,为后续的数据库逻辑设计和物理设计奠定基础。同时,理解并掌握这些步骤和概念对于提升数据库设计的质量和效率至关重要。
【数据库物理模型设计】是数据库设计过程中的一个重要环节,它关注如何在实际的存储系统中实现逻辑数据模型,以优化性能、存储效率和数据管理。在这个过程中,设计者需要考虑硬件特性、数据库管理系统(DBMS)的功能...
它可以帮助开发者快速高效地完成数据库的设计与维护工作,支持概念模型、逻辑模型和物理模型的设计。PowerDesigner集成了多种数据库管理系统(DBMS)的支持,如Oracle、MySQL、SQL Server等,适用于各种开发场景。 ...
PowerDesigner设计建模实例 PowerDesigner是一款强大的设计建模工具,由Sybase公司推出,集成了UML(统一建模语言)和数据建模的CASE(Computer Aided Software Engineering,计算机辅助软件工程)工具。...
1. 物理模型导出SQL语句:生成SQL脚本,可以用于在DBMS中创建数据库对象。 2. 导入SQL脚本:通过反向工程,将已存在的数据库结构导入为PDM,便于维护和分析。 五、由物理模型生成对象模型 1. 在开发过程中,...
4. **兼容性保障**:物理模型需要考虑目标DBMS的特性,确保设计能够顺利部署到实际环境中。 #### 五、物理建模的关键要素 1. **表结构定义**:确定每个表的具体字段、数据类型、长度等属性。 2. **索引策略**:根据...
PowerDesigner是一款由Sybase公司推出的强大的CASE(计算机辅助软件工程)工具,适用于整个数据库模型设计过程,包括数据流程图、概念数据模型(CDM)、物理数据模型(PDM)以及数据仓库的结构模型设计。它能与多种...
在IT行业中,数据库设计是软件开发过程中的关键环节,PowerDesigner是一款强大的数据库建模工具,它可以帮助我们创建、管理和维护数据模型。本文将详细介绍如何利用PowerDesigner导入Excel文档,将其转化为实体表,...
PowerDesigner 是一款功能强大的数据建模和设计工具,能够生成高质量的数据模型,特别是在企业信息系统中扮演着重要角色。在本文中,我们将详细讲解如何使用 PowerDesigner 生成 PDM 模型,并介绍相关的知识点。 一...
使用PowerDesigner,可以快速设计物理模型。在生成的物理模型中,可以添加字段、索引和约束等。 四、生成数据库表 使用PowerDesigner,可以快速生成数据库表。选择菜单“Database”下“Generate Database”,选定...