使用SchemaSpy逆向工程生成数据库依赖关系
    使用SchemaSpy工具可以快速的从数据库中得到表的依赖关系,同时生成一个生动的“表图”结合的报告。方便快速了解数据库中的数据库对象间关系,类似于PowerDesigner和Toad Data Modeler反向工程得到的结果。但是导出比PowerDesigner更加美观和漂亮。HTML格式报告的交互查询功能非常的方便,更值得称赞的是该工具是使用JAVA编写的开源软件。

通过这个小文儿向大家展示一下这个开源工具的使用方法和强大魅力。

1.必须的软件
1)JDK下载,因为是JAVA程序,所以JDK是必须的。版本最好是1.6或者以上

2)SchemaSpy下载。

3)Graphviz下载,SchemaSpy工具需要使用Graphviz工具中的dot程序绘制表间关系的图片。

4)JDBC
这里我的目的是连接Db2数据库,所以需要DB2的db2jcc.jar,此jar包可以在db2的安装路径中找到。如果只安装了连接db2的客户端,则需要category db.

2.使用方法
1)基本命令语法
java -jar schemaSpy.jar -t dbType -db dbName [-s schema] -u user [-p password] -o outputDir

2)具体使用:
java -jar schemaSpy_5.0.0.jar -t db2net -db ITM -host itmdb -u user -p user -port 50000 -dp C:\Program Files\schemaSpyGUI20090302\db2jcc.jar -o output -s itmuser

3使用到的参数详解
java -jar schemaSpy_5.0.0.jar   调用schemaSpy的jar包
-t orathin 表明连接的是Oracle数据库
-db secooler  数据库的名字,这里可以指定为Oracle的实例名字
-host 主机名,因为是远程操作,这里我指定的是主机的IP地址。如果是连接本地可以指定为“localhost”
-u sec 连接到数据库的用户名
-p sec 连接到的数据库的密码
-port 连接端口号
-dp 指定jdbc的路径
-o 在命令执行的当前路径下生成一个名为output 的文件夹,用来保存生成的报告文件
-s SEC 对itmuser这个Schema进行报告生成
-hq 生成高品质的图片,也可以使用“-lq”选项生成低品质图片,这样可以节省一些空间。
更多命令选项参考

4.查看生成的报告
直接双击Schema_SEC目录中的index.html文件即可得到报告全貌。
演示报告请参见,这个页面真实的体现了SchemaSpy工具的强大魅力。

5.简化操作==使用图形化工具
图形化的工具下载地址如下,慢慢体验吧。

6.SchemaSpy工具还支持哪些数据类型?
使用“-dbhelp”选项查看schemaSpy_4.1.1.jar这个版本支持的数据库类型
E:\software\Graphviz>java -jar schemaSpy_4.1.1.jar -dbhelp
命令结果省略,简单列一下支持数据库的类型如下,基本上所有主流的数据库都支持了。
Type         Description
db2          IBM DB2 with 'app' Driver
db2net       IBM DB2 with 'net' Driver
derby        Derby (JavaDB) Embedded Server
derbynet     Derby (JavaDB) Network Server
firebird     Firebird
hsqldb       HSQLDB Server
informix     Informix
maxdb        MaxDB
mssql        Microsoft SQL Server
mssql05      Microsoft SQL Server 2005
mssql-jtds   Microsoft SQL Server with jTDS Driver
mssql05-jtds Microsoft SQL Server 2005 with jTDS Driver
mysql        MySQL
ora          Oracle with OCI8 Driver
orathin      Oracle with Thin Driver
pgsql        PostgreSQL
sybase       Sybase Server with JDBC3 Driver
sybase2      Sybase Server with JDBC2 Driver
udbt4        DB2 UDB Type 4 Driver

 

使用SchemaSpy逆向工程生成数据库依赖关系使用SchemaSpy工具可以快速的从数据库中得到的更多相关文章

  1. Ambari服务依赖关系图生成脚本

    1. 生成服务依赖关系 #!/usr/bin/python import sys import commands import json def genDependString(ip): url=&q ...

  2. makefile自动生成依赖关系

    手工编写依赖关系不仅工作量大而且极易出现遗漏,更新也很难及时,修改源或头文件后makefile可能忘记修改.为了解决这个问题,可以用gcc的-M选项自动生成目标文件和源文件的依赖关系.-M选项会把包含 ...

  3. rpmdeps - 生成 RPM 软件包依赖关系

    SYNOPSIS rpmdeps {-P|--provides} {-R|--requires} FILE ... DESCRIPTION rpmdeps 根据 FILE 参数集合,生成软件包依赖关系 ...

  4. Makefile中头文件在依赖关系中作用

    摘于:http://bbs.csdn.net/topics/120024677 (1)在makefile的依赖关系中用不用体现.h头文件?(2)如果在依赖关系中要体现.h头文件,应该体现到什么层次?= ...

  5. Linux Makefile 生成 *.d 依赖文件及 gcc -M -MF -MP 等相关选项说明【转】

    转自:https://blog.csdn.net/qq1452008/article/details/50855810 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog. ...

  6. Spring boot starter pom的依赖关系说明

    Spring Boot 通过starter依赖为项目的依赖管理提供帮助.starter依赖起始就是特殊的maven依赖,利用了传递依赖解析,把常用库聚合在一起,组成了几个为特定功能而定制的依赖. sp ...

  7. Makefile 9——为依赖关系文件建立依赖关系

    现在我们再对complicated项目做一些更改,增加程序文件间依赖关系的复杂度. /× main.c ×/ #include"foo.h" int main(void) { fo ...

  8. Makefile 8——使用依赖关系文件

    Makefile中存在一个include指令,它的作用如同C语言中的#include预处理指令.在Makefile中,可以通过include指令将自动生成的依赖关系文件包含进来,从而使得依赖关系文件中 ...

  9. Chromium之工程依赖关系.

    Chromium各版本可能有差异,我的版本是chromium.r197479,2013/08前后下载的source code. Visual Studio Ultimate版本有工具可以自动生成项目依 ...

随机推荐

  1. Java学习笔记之:Java 流

    一.介绍 Java.io包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io包中的流支持很多种格式,比如:基本类型.对象.本地化字符集等等. 一个流可以理解为一 ...

  2. 如何用虚拟机装SQL Server

    更新(2016.3.14) 看来之前还是写的太简了,来问的同学有点多. 所以还是详细一些吧. 大概步骤 装好Virtual Box这个软件,免费的 下载window server 2003系统镜像,然 ...

  3. MAC终端配色Solarized

    MAC终端配色Solarized $ git clone git://github.com/altercation/solarized.git 在 solarized/osx-terminal.app ...

  4. 【原创】【ViewPager+Fragment】ViewPager中切换界面Fragment被销毁的问题分析

    ViewPager中切换界面Fragment被销毁的问题分析   1.使用场景 ViewPager+Fragment实现界面切换,界面数量>=3   2.Fragment生命周期以及与Activ ...

  5. C 中数组和指针的区别

    联系: 1,一个通过数组和下标实现的表达式可等价地通过指针和偏移量实现. 2,当数组名传递给一个函数时,实际上传递的是该数组第一个元素的地址. 区别: 1,指针是一个变量,因此,在C语言中,语句pa= ...

  6. Centos 用户组管理

    #组帐号管理 linux 组管理 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--= 1.组的分类 私用组:只能包含一个用 ...

  7. JavaScript DOM实战:创建和克隆元素

    DOM来创建和克隆元素. createElement()和createTextNode() createElement()和createTextNode()做的事情正如它们的名字所说的那样.最常见的J ...

  8. linux系统的文件和文件类型

    文件 当你创建一个文件的时候,系统保存了有关该文件的全部信息,包括:• 文件的位置.• 文件类型.• 文件长度.• 哪位用户拥有该文件,哪些用户可以访问该文件.• i节点.• 文件的修改时间.• 文件 ...

  9. excel跨表数据链接

    按=,然后选择第二个页签下某个数据. 去掉$号,就可以下拉数据

  10. java I/O总结

    IO是非常重要的一块,但通常又被人们所忽视,这里希望能有个很清晰的介绍.自己学习的同时希望能够给别人带来一些帮助,对文章中用到其他作者(已经给出了链接)的图片在这里表示感谢! IO的分类 java I ...