PowerDesigner 使用教程:从入门到精通
什么是 PowerDesigner?
在开始之前,我们先简单了解一下 PowerDesigner 是什么。

PowerDesigner 是 Sybase 公司(现为 SAP 公司旗下产品)的一款企业级建模与设计工具,它不仅仅是一个数据库设计工具,更是一个集成了多种建模方法的统一建模平台。
- 核心功能:支持多种建模,如:
- 数据模型:概念数据模型、物理数据模型。
- 业务流程模型。
- 对象导向模型。
- XML 模型 等。
- 主要用途:
- 数据库设计:设计数据库结构,生成各种数据库的
SQL脚本,也可以从现有数据库反向生成模型。 - 数据架构管理:清晰地展示数据实体、关系和属性,方便团队沟通和文档沉淀。
- 模型驱动开发:通过模型驱动应用程序的开发,确保业务需求与最终实现的一致性。
- 数据库设计:设计数据库结构,生成各种数据库的
本教程将重点介绍最常用、最核心的数据模型部分。
安装与准备工作
- 下载:访问 SAP 官网,搜索 "PowerDesigner" 下载试用版或购买正式版,目前最新版本是 PowerDesigner 16.x 或 17.x,界面和核心功能大同小异。
- 安装:按照向导完成安装,建议以管理员身份运行安装程序。
- 启动:安装完成后,启动 PowerDesigner。
界面初识
启动后,你会看到类似下图的主界面。
主要区域包括:

- 菜单栏:所有命令的入口。
- 工具栏:常用命令的快捷方式。
- 浏览器窗口:左侧面板,用于管理模型、表、图等所有对象,是模型的“资源管理器”。
- Diagram 窗口:中间主窗口,用于绘制和查看模型图。
- Output 窗口:底部面板,用于显示操作日志、生成脚本等输出信息。
- 属性窗口:右下角面板,用于查看和修改当前选中对象的详细属性。
核心概念:CDM 与 PDM
在数据库设计中,PowerDesigner 推荐遵循一个从抽象到具体的过程。
-
概念数据模型
- 是什么:也称为高层数据模型,它专注于业务,不关心技术实现细节。
- 包含:实体、属性、实体间的关系(一对一、一对多、多对多)。
- 例子:一个“学生”实体,有“学号”、“姓名”属性;一个“课程”实体,有“课程号”、“课程名”属性,学生和课程之间是“多对多”关系。
- 目标:让业务人员和技术人员都能看懂,确保业务逻辑的准确性。
-
物理数据模型
- 是什么:也称为低层数据模型,它基于 CDM,考虑了具体数据库的技术实现。
- 包含:表、列、主键、外键、索引、约束等。
- 例子:“学生”实体变成
student表,“学号”变成student_id列并被定义为主键。“课程”实体变成course表。“学生-课程”的多对多关系会被拆分成一个中间表student_course,包含student_id和course_id两个外键。 - 目标:直接用于生成创建数据库的
SQL脚本。
工作流程:CDM -> PDM -> SQL 脚本,这是 PowerDesigner 数据建模的标准路径。

实战演练:创建一个简单的学生选课系统
我们将通过一个完整的例子,带你走一遍 CDM 和 PDM 的创建流程。
步骤 1:创建概念数据模型
-
新建模型
- 点击
File->New Model。 - 在弹出的窗口中,选择
Model types->Conceptual Data Model。 - 给模型命名,
Student_CDM。 - 点击
OK。
- 点击
-
创建实体
- 在右侧的
Palette(工具面板)中,找到Entity工具(像一个方框)。 - 点击该工具,然后在 Diagram 窗口中点击一下,就会创建一个新的实体。
- 创建三个实体:
学生、课程、教师。
- 在右侧的
-
编辑实体属性
- 双击
学生实体,打开属性窗口。 - 在
General选项卡中,填入Name(名称) 为学生,Code(代码) 为STUDENT。 - 切换到
Attributes选项卡,点击右边的Add an Attribute按钮添加属性。- 属性1:Name=
学号, Code=student_id, Data Type=Identifier(标识符类型,通常对应主键)。 - 属性2:Name=
姓名, Code=student_name, Data Type=Alpha(字符串)。 - 属性3:Name=
性别, Code=gender, Data Type=Alpha。
- 属性1:Name=
- 用同样的方法为
课程和教师实体添加属性。
- 双击
-
创建关系
- 在
Palette中,找到Relationship工具(像一个菱形连接两个方框)。 - 点击
学生实体,然后拖动到课程实体上释放。 - 双击新创建的关系线,打开属性窗口。
- 在
Cardinalities(基数) 选项卡中,设置关系类型,这里学生和课程是多对多。- 一个
学生可以选择多门课程:在Course侧的Cardinality选择Many (n)。 - 一门
课程可以被多个学生选择:在Student侧的Cardinality选择Many (n)。
- 一个
- 用同样的方法创建
教师和课程之间的一对多关系(一个教师可以教多门课程,一门课程只有一个教师)。
- 在
完成后的 CDM 图如下所示:
步骤 2:从 CDM 生成 PDM
这是 PowerDesigner 的核心优势之一,可以自动将业务模型转换为技术模型。
-
生成 PDM
- 确保你的 CDM 模型是当前打开的窗口。
- 点击菜单
Database->Generate Physical Data Model。 - 在弹出的窗口中,进行如下设置:
- DBMS:选择你的目标数据库类型,如
Microsoft SQL Server 2025,这一步至关重要,因为不同数据库的语法和数据类型不同。 - Model name:给新的 PDM 模型命名,如
Student_PDM。 - Default Schema:可以指定一个默认的数据库架构名。
- DBMS:选择你的目标数据库类型,如
- 点击
OK。
-
检查自动生成的 PDM
- PowerDesigner 会自动完成大部分转换工作:
- 实体变成了表。
- 属性变成了列。
- 标识符属性变成了主键。
- 多对多关系被拆分成了中间表,并自动创建了外键连接。
- 检查生成的 PDM 图,你会发现
学生和课程的多对多关系已经变成了一个Student_Course表,里面有两个外键FK_Student_Course_Student和FK_Student_Course_Course。
- PowerDesigner 会自动完成大部分转换工作:
完成后的 PDM 图如下所示:
步骤 3:修改和优化 PDM
自动生成的模型是基础,通常需要手动调整。
-
修改列属性
- 双击任意一个表(如
student表)中的列(如student_name)。 - 在属性窗口中,你可以设置:
- Data Type:如
varchar(50)。 - P/M (Primary/ Mandatory):是否为主键或必填项。
- Domain:使用数据域,可以统一管理数据类型和约束,是最佳实践。
- Check:添加检查约束,如
gender列可以添加IN ('男', '女')。
- Data Type:如
- 双击任意一个表(如
-
添加索引
- 在表的属性窗口中,切换到
Indexes选项卡,可以为常用作查询条件的列添加索引,以提高查询性能。
- 在表的属性窗口中,切换到
-
修改关系
