使用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. awk除去重复行

    awk去除重复行,思路是以每一行的$0为key,创建一个hash数组,后续碰到的行,如果数组里已经有了,就不再print了,否则将其print 测试文件: 用awk: 用sort+uniq好像出错了: ...

  2. qt练习10 涂鸦板源代码

    源代码下载: http://files.cnblogs.com/hnrainll/doodle.zip http://www.cnblogs.com/hnrainll/archive/2011/05/ ...

  3. Python3导入自定义模块的3种方式

    前话 最近跟着廖雪峰的教程学到 模块 这一节.关于如何自定义一个模块,如果大家不懂的话还请先看下面这篇博文 ↓ http://www.liaoxuefeng.com/wiki/001431608955 ...

  4. 【web性能】页面呈现、重绘、回流

    在讨论页面重绘.回流之前.需要对页面的呈现流程有些了解,页面是怎么把html结合css等显示到浏览器上的,下面的流程图显示了浏览器对页面的呈现的处理流程.可能不同的浏览器略微会有些不同.但基本上都是类 ...

  5. iOS:核心动画的详解介绍:CAAnimation(抽象类)及其子类

    核心动画的详解介绍:CAAnimation(抽象类)   1.核心动画基本概念 Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍! 使用它 ...

  6. 指定IE浏览器渲染方式

    <meta http-equiv="X-UA-Compatible" content="IE=7" />以上代码告诉IE浏览器,无论是否用DTD声明 ...

  7. Myeclipse2014配置JSF环境

    首先创建一个普通的webproject,然后看官网教程喽 https://www.genuitec.com/products/myeclipse/learning-center/web/myeclip ...

  8. jenkins-slave的搭建和使用

    一 什么是Jenkins的分布式构建和部署 Jenkins的分布式构建,在Jenkins的配置中叫做节点,分布式构建能够让同一套代码或项目在不同的环境(如:Windows和Linux系统)中编译.部署 ...

  9. hibernate CascadeType属性说明

    CascadeType.PERSIST //只有A类新增时,会级联B对象新增.若B对象在数据库存(跟新)在则抛异常(让B变为持久态) CascadeType.MERGE //指A类新增或者变化,会级联 ...

  10. Eclipse —— java文件修改后不能及时体现

    有没有遇到过这么一种情况:某一个对象某一属性,先设值为 1 .打印出来是 1.再设值为 2 .打印出来仍是 1 ? …… 原来是工具Eclipse设置的问题. 你检查一下,Eclipse 工具栏 - ...