程序员社区

MySQL系列(九):一文掌握PowerDesigner正向工程(CDM、PDM)与逆向工程

写在最前

本教程取自数据库系统课程实验,对PowerDesigner正向工程与逆向工程的实现进行一个总结。从CDM的创建、到PDM的转换以及逆向工程的具体步骤,本文力争具体易懂。

操作步骤

创建CDM

(1) 使用PowerDesigner构建出ER图。

a) 打开PowerDesigner工具。
在这里插入图片描述
b) 选择文件菜单中的NEW子菜单,选CDM数据库模型。如果是第一次使用,直接在欢迎页面新建即可,图示即为这种情况。
在这里插入图片描述
c) 在Model name 出输入要建立的CDM模型的名字为Stu_course,按确定按钮,系统出现如下的屏幕:
在这里插入图片描述
这是一个新的面板。

d) 建立ER模型需要指定实体以及实体之间的关系,在这里我们分两步:首先建立实体,之后创建实体间的联系。在面板中选取Entity,然后在画布中放置,在实体中输入实体的名称、属性、指定主属性,得到如下结果:
在这里插入图片描述
此时还没有指定表格之间的联系。以STUDENT表为例,其详细属性为:
在这里插入图片描述
e) 下一步,我们确定实体之间的联系。实体间的联系有三种:

i. 一对一
ii. 一对多/多对一
iii. 多对多

其中,第三种关系需要通过关系表实现。前两种关系可以直接创建Relation。设置好关系之后,ER模型为:
在这里插入图片描述
f) 对实体和属性增加注释,以增强可读性。注释不会对ER结构产生任何影响,仅为了便于理解,因此可以直接添加中文注释。
在这里插入图片描述
在这里插入图片描述
因此,此时的ER模型(也就是最终的CMD文件)为:

在这里插入图片描述

创建PDM

(2) 把产生的CDM图转换成PDM图,然后生成数据库的SQL脚本文件。在MySQL数据库中检验脚本的正确性。

a) 提前需要准备好:安装MySQL数据库。

这一部分的具体步骤可以参考我的这篇文章:
MySQL系列(一):超详细、非常适合入门的MySQL安装、环境配置教程

b) 启动MySQL数据库。
在这里插入图片描述
c) 在PowerDesigner中,将CDM转换为PDM。

首先,选择“Tools”中的“Generate Physical Data Model”,意为“创建物理数据模型”。之后将弹出PDM的设置选项框。
在这里插入图片描述
在“DBMS”中选择数据库管理系统为“MySQL 5.0”,之后点击确定。
在这里插入图片描述
等待数秒,没有出现报错,成功生成如下PDM。
在这里插入图片描述
至此,PDM已经成功生成。

产生数据库脚本

d) 产生数据库脚本。

选择“Database”中的“Generate Database”。
在这里插入图片描述
在设置框中设置目标文件的目录与名字,之后点击确定。
在这里插入图片描述
成功生成文件。
在这里插入图片描述
点击“Edit”查看其详细内容。
在这里插入图片描述
将这一段脚本拷贝到MySQL数据库中执行。

逆向工程

e) 配置数据库连接参数(配置数据源)。
在这里插入图片描述
选择“Database”。检查DBMS需要为“MySQL 5.0”。
在这里插入图片描述
点击确定,出现如下页面。
在这里插入图片描述
选中“Using a data source”。点击旁边的图标。
在这里插入图片描述
选择config。
在这里插入图片描述
点击第二个图标,新建。
在这里插入图片描述
选择第二个选项,点击下一步。
在这里插入图片描述
这里本应该有MySQL数据源,但没有。查阅资料,需要手动安装MySql ODBC驱动。
在这里插入图片描述
安装完成之后,再次尝试,出现MySql ODBC。

在这里插入图片描述
点击“下一步”。在该页面输入信息,点击“Test”。

在这里插入图片描述
选择一个已有的数据库,我的数据库是test,之后点击确定。
在这里插入图片描述
f) 在PowerDesigner中建立数据库。

在这里选择刚刚创建的数据源。
在这里插入图片描述
点击确定,连接成功。由于已经提前将SQL脚本导入MySQL数据库并生成表格,因此这里可以看到表格:

在这里插入图片描述
首先试一试选中全部表格,点击“OK”。

在这里插入图片描述
等待完成逆向工程。
在这里插入图片描述
点击“OK”,成功生成逆向PDM。
在这里插入图片描述
证明逆向工程成功实现。下面,只选中六个表格,再次尝试逆向工程。
在这里插入图片描述
最终结果为:

在这里插入图片描述

赞(0) 打赏
未经允许不得转载:IDEA激活码 » MySQL系列(九):一文掌握PowerDesigner正向工程(CDM、PDM)与逆向工程

一个分享Java & Python知识的社区