derby 数据库 php,Powerdesigner自定义DBMS(以derby数据库为例)

本文指导如何在PowerDesigner中自定义Apache Derby数据库支持,包括DBMS配置、数据类型转换规则,以及如何修改注释和报告模板。重点讲解了从Oracle到Derby的类型转换过程和PD内部的数据类型转换机制。
摘要由CSDN通过智能技术生成

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

version="1.0" encoding="UTF-8"?>

AppLocale="UTF16" Code="DERBY" Family="DERBY" ID="{04DFD581-D1C0-43E8-B9AE-01951ECAB446}" LastModificationDate="1347972332" Name="Apache Derby" Objects="778" Symbols="0" Type="{4BA9F647-DAB1-11D1-9944-006097355D9B}" signature="XDB_XML" version="15.1.0.2850"?>

xmlns:a="attribute" xmlns:c="collection" xmlns:o="object">

Id="o1">

>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,弹出窗口如下:

tgxk2i4gpvd.png

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

修改数据类型时,选择左侧树: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很强大。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值