热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

利用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也确实是个很好的数据建模工具,一些同事用起来挺得心应手的,以后我有空也应该要好好学学了.




推荐阅读
  • 本文介绍了一种解析GRE报文长度的方法,通过分析GRE报文头中的标志位来计算报文长度。具体实现步骤包括获取GRE报文头指针、提取标志位、计算报文长度等。该方法可以帮助用户准确地获取GRE报文的长度信息。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 从Oracle安全移植到国产达梦数据库的DBA实践与攻略
    随着我国对信息安全和自主可控技术的重视,国产数据库在党政机关、军队和大型央企等行业中得到了快速应用。本文介绍了如何降低从Oracle到国产达梦数据库的技术门槛,保障用户现有业务系统投资。具体包括分析待移植系统、确定移植对象、数据迁移、PL/SQL移植、校验移植结果以及应用系统的测试和优化等步骤。同时提供了移植攻略,包括待移植系统分析和准备移植环境的方法。通过本文的实践与攻略,DBA可以更好地完成Oracle安全移植到国产达梦数据库的工作。 ... [详细]
  • 本文介绍了2015年九月八日的js学习总结及相关知识点,包括参考书《javaScript Dom编程的艺术》、js简史、Dom、DHTML、解释型程序设计和编译型程序设计等内容。同时还提到了最佳实践是将标签放到HTML文档的最后,并且对语句和注释的使用进行了说明。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
author-avatar
顽石1129_659
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有