NPPYQ的学习笔记

每天进步一点点

导航

利用PowerDesigner比较2个数据库


最近发现客户的正式数据库和给我们的开发数据库不一致,有的表结构变化了,导致我们一些程序要重新开发.现在客户重新提供一个新数据库,但是没有提供数据库比如表字段变化的文档,只能自己动手了.手工来对比数据库表结构的差异,不但效率低下,而且很可能看不不仔细而出错.PowerDesigner中可以对2个数据模型进行比较,所以想到用这个功能来实现对比数据库的目的.到底怎样利用PowerDesigner来比较新旧数据库,查看数据库中哪些对象变化了呢,下面慢慢道来.

首先简单介绍下PowerDesigner,它是Sybase公司的CASE工具集,它的功能几乎包括了数据库模型设计的全过程.可以制作数据流程图,概念数据模型,物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设计模型进行控制.这些强大的功能我都不熟悉,前几天才开始接触PowerDesigner,就是对已经有的数据模型文件,用它打开来查看.这次用到物理模型导入功能,和模型对比功能.


主要实现思路

实现对比的主要思路为:设置好两个数据库的ODBC,打开PowerDesigner,从ODBC分别从数据库中导出两个新旧数据库物理数据模型到PowerDesigner中,选择需要比较的对象,如各个表,视图等,再比较生成的物理数据模型,得出差异比较结果,成功结束.


建立新旧数据库ODBC

ODBC的建立很简单,打开管理工具 -> 数据源(ODBC) 添加即可,但是要注意的是,一定要选择"更改默认的数据库为:"选项,并选择需要比较的数据库,如图.


导入原始数据模型

先新建一个物理数据模型文件,如图:

默认设置:

选择连接的新数据库的ODBC源:

输入用户名和密码:

执行导入实际数据模型操作:

选择新数据库对应的ODBC:

同样地,对旧数据库也执行上述操作,得到2个物理数据模型文件.


选择并比较对象

选择需要对比的表,或者其他对象,可以全选和全不选.
新数据库:

旧数据库:

在Tool菜单中选择Compare:

这时就能得到结果了,还能对结果进行过滤,比如只查看有变化的:

变化的详细结果,这里为表JSDRK下的kcxs字段的DataType由char(6)改为varchar(16)了:

可惜结果只能查看,不能导出成文件.


总结

数据模型的对比,只是PowerDesigner的一个很小功能,但是却能解决我的现有问题,并提高工作效率.另外PowerDesigner也确实是个很好的数据建模工具,一些同事用起来挺得心应手的,以后我有空也应该要好好学学了.



posted on 2008-01-16 19:29  NPPYQ  阅读(3355)  评论(2编辑  收藏  举报