PDManer是一款国产的开源数据建模工具,这款开源软件已经有它有一个更高大上一点的名字,叫做元数建模工具,这款软件已经发布了3个版本,每个版本除了功能的变化升级之外,比较奇怪的是名字也一直在改变,第一个重大的版本叫做PDMan2.2.0(Physical Data Model Manager),目标是做成国产的PowerDesigner后面的版本名字就改了,叫做CHINER元数建模3.0,看着名字猜测一下大概是中国的ER(实体关系)软件的意思吧,比较吻合国产化的大环境,不知到起这个名字的真实意图是否是这样。最新的版本叫做PDManerV4.0.0,这个名字好像和前面第一个的名字又有了一点联系,不过后面的er是什么意思,着实令人费解。随着版本的升级,名字也不断的变化,这个软件大概还没有明确自己的方向和定位,找不到一个号的名字。
在百度上搜索PDman,能看到的是诸如“能与PowerDesigner 媲美的数据建模工具”,“可以取代Power Designer的数据建模工具”之类,看来这款软件经常和业界的标杆Power Designer相比较,功能也比较类似,如果能在数据建模工具中替代PD,这个开源的国产工具很可能成为大多数国内数据建模人员的首选,毕竟是免费的。
1 软件的下载安装运行
最新版本PDManerV4.0.0支持Windows、mac、linux操作系统,也支持国产操作系统,Windows操作系统的下载安装比较简单,下载地址在这里:
https://gitee.com/robergroup/pdmaner/releases
其中Windows既有绿色免安装版,也有安装版,下载绿色安装版,解压后接入解压目录
双击PDManer”,就可以启动应用了。
2 PDManer基本概念
这个软件运行以后的界面像下图这个样子:
看个这了界面,不知各位的第一感觉是什么,看来这个软件的UI走的是清爽简洁的风格,首页还有操作手册的连接,如果不看操作手册,恐怕很多人不知道怎么进行下一步。
看了看操作手册,首先的这个软件关于元数建模的概念有个初步的了解,然后才能开始试用。
新建一个项目,打开这个新建的项目后软件的界面是下图这个样子:
从左边的导航图里可以看到这个软件有四大类功能,模型、数据域、代码生成器和版本管理。
模型和数据域与数据建模有关,是运用这个软件必须理解的基本概念,这两个概念中,模型的概念比较好理解,对应的数据库的物理模型,如表、关系、视图,也包含数据字典。数据域的概念则理解起来难度大一些,百度一下数据域里面的解释各种各样,令人莫衷一是。好在我们这个只需要理解这个软件里面的数据域的概念,从帮助手册里找一下,左侧栏数据域下面有三个子项数据类型、数据域和数据库。手册里对这三个子项的是这样解释的:
1)基础类型
系统自带常见基础数据类型(如字串,小数,日期等),同时用户也可以根据自己的需要添加新的数据类型。数据类型只有类型,无长度,长度需要用户在定义字段时设置或者在数据域中进行模板化设置。
2) 数据域
数据域是在数据类型的基础上,基于当前项目,定义有一定业务含义的数据类型,例如我们定义ID为32位长度的字串,金额为18位整数+小数点后保留6位的小数,名称为250位长度的字串等,主要用于快速设置字段的数据类型。
3)数据库
数据库子项显示软件支持的数据库类型及系统默认的数据库,这个不能更改默认数据库的类型。
基础类型和数据域有一定的联系,大概意思是基础类型没有业务含义,只是项目中的用到的基础数据类型,对长度也不做限制,数据域具有一定的业务含义。举个简单的例子,整数时基础类型,电话号码(11为整数)则是一个数据域项。
3 初始化项目环境
使用这个工具之前,一定要读一下操作手册,否则不但概念理解,基本操作也不容易完成。比如,在进行数据表管理之间要初始化一下项目环境,否侧建表的时候会有一些默认的必选字段不知道从哪里删除。
点击设置菜单
这里表设置,默认会有几个缺省字段,把不需要的删除,也可以添加自己项目需要的必选字段。这里添加一个字段作为演示
4 数据表管理
数据表管理是数据建模工具的基本操作,这款工具这一点做的不错,点击左侧栏模型,鼠标移至数据表,按下右键,可以看到能够执行的操作:
点击新增数据表,弹出建表导航
输入代码和显示名称,点击确定
从左侧导航栏可以看到数据表已经建立,双击建立的数据表就可以对表进行操作
看到这里的create_date 列不能删除,增加三列,一列为id(员工id),一列为dept_id(部门ID),一列为员工姓名。
列的数据类型里可以选择数据域,选择后软件自动填入数据类型和长度,也可以选择数据类型,自己填入长度。填入列信息后点击保存。
点击上面的数据代码,可以看到为各种数据库生成的代码:
5 数据导入功能
这个软件也有一定的逆向能力,可以从数据库中抽取表定义,点击左上方导入菜单,选择从数据库导入,根据导航就可以导入数据库现有表的定义,这了以myslq的sakila数据库作为演示,导入后效果是这样的:
示例数据库的表都导入进来了,看一下关系图:
sakila数据库有些表之间是有外键关联的,这个外键关联关系并没有导入,需要手工绘制。
看一下开源数据库管理软件DBeaver的ER关系图吧:
这了表之间的关联关系都得到了直观的显示,主键也进行了加粗标识。希望PDManer以后在这个功能方面进行加强和完善,提供更方面实用的功能。