视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Powerdesigner自定义DBMS(以derby数据库为例)
2020-11-09 16:03:28 责编:小采
文档


Powerdesigner以下简称PD. PD默认支持的DBMS不够用时,我们就需要自己定义了。 以apache derby数据库为例。 1、DBMS的定义文件 PD的DBMS定义文件放在install_dir/Resource Files/DBMS目录下。自定义DBMS的第一步是复制一个现成的DBMS文件,由于derby与Oracle

Powerdesigner以下简称PD.
PD默认支持的DBMS不够用时,我们就需要自己定义了。
以apache derby数据库为例。
1、DBMS的定义文件
PD的DBMS定义文件放在install_dir/Resource Files/DBMS目录下。自定义DBMS的第一步是复制一个现成的DBMS文件,由于derby与Oracle相似之处比较多,所以可以选择复制Oracle的DBMS文件,并重命名为derby.xdb

2、修改描述
用记录本打开derby.xdb,将大概前16行的一些内容做修改。比如code、name等等。我的大体如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16




>04DFD581-D1C0-43E8-B9AE-01951ECAB446>
>Apache Derby>
>DERBY>
>0>
/>
>1243501756>
>test>
> >
>DERBY>

这样修改之后,我们在PD的database菜单里,选择Change Current DBMS时,可以看到下拉选项中,有一项为Apache Derby。

3、修改数据类型转换
由于我们复制的oracle的dmbs文件,与derby中,有些数据类型不一致,所以需要修改。在database菜单里,选择Edit Current DBMS,弹出窗口如下:

左边是树型结构,点击后右边编辑内容。

修改数据类型时,选择左侧树:Script -> Data Type。
插两句话,讲一下PD数据库切换时字段处理的原理。PD本身定义了一套内部的数据类型,如A%n、N、N%s,%p等,其中:
%n is the length of the data type
%s is the size of the data type
%p is the precision of the data type
当我们由一个DBMS A 换成另一个DBMS B时,PD会首先将A的数据类型转换成PD内部自己定义的数据类型,这个转换的规则这里叫做 A-PD,然后再将内部的数据类型转换成B的数据类型,这里叫做PD-B,通过上面两步转换实现A到B的类型转换。

而A-PD的规则,定义在刚才打开的Data Type节点下的PhysDataType节点,PD-B规则定义在AmcdDataType节点下。
举几个简单的例子:
A、Oracle NUMBER -> Derby BIGINT
首先要查看Oracle的dbms文件,注意是Oracle的,展开到PhysDataType节点下,看到有如下映射
Physical Model | Internal
NUMBER | N
所以,经过A-PD规则后,Oracle的NUMBER类型会转换成PD的内部类型N。
接下来,查看Derby的dbms,打开AmcdDataType节点,找到如下映射:
Internal | Physical Model
N | NUMBER
把上面的NUMBER修改成BIGINT
这样的话,经过PD-B规则,Derby里的字段就会变成BIGINT类型了。

B、Derby BIGINT -> Oracle NUMBER
与上面类型,不过需要查看Derby的PhysDataType和Oracle的AmcdDataType节点。

从上面两个例子基本可以看出来PhysDataType节点用来将数据库类型转换成PD的类型,而AmcdDataType则将PD的内部类型转换成数据库的类型。
另外,可以使用%n,%s,%p实现更精细的转换,且这三个标识也可以完全由数字代替。

4、注释
修改列注释,表格注释在Script\Objects\Table和Script\Objects\Column节点下。其它修改也很类似,如索引、依赖等等。

Script\Sql\Syntax节点下则是一些基本的SQL语法规定,比如注释以–开始,SQL结束符是;等等。

更多详细说明可参考手册:
1、derby:http://db.apache.org/derby/docs/10.9/ref/crefsqlj31068.html
2、PD:http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc38628.1510/doc/html/rad1232022090125.html
3、使用POWERDESIGNER设计数据库的20条技巧

再说两句其它的,关于PD生成数据库设计文档。
默认的模板生成的文档,有相当多无用的东西,没法儿看。所以我们可以自定义文档模板。在Report -> Report Templates菜单下,在弹出窗口中,点新建,输入名称,然后出现编辑模板的界面,分成左右两块儿,可以把左边一些需要的元素直接拖到右边就OK。报告模板默认放在安装目录\Resource Files\Report Templates\下,我们也可以把这个目录下的文件复制一份,改个名儿,然后在这个基础上修改。

总之一句话,PD很强大。

下载本文
显示全文
专题