绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
【SchemaSpy】使用SchemaSpy开源工具生成数据库报告
2020-01-09 18:36:27
使用SchemaSpy工具可以快速的从数据库中得到表的依赖关系,同时生成一个生动的“表图”结合的报告。方便快速了解数据库中的数据库对象间关系,类似于Erwin和PowerDesigner反向工程得到的结果。HTML格式报告的交互查询功能非常的方便,更值得称赞的是该工具是使用JAVA编写的开源软件。

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

1.下载必要的软件
1)JDK下载,因为是JAVA程序,所以JDK是必须的。
http://java.sun.com/javase/downloads/index.jsp
2)SchemaSpy下载。
http://sourceforge.net/projects/schemaspy/files/
3)Graphviz下载,SchemaSpy工具需要使用Graphviz工具中的dot程序绘制表间关系的图片。
http://www.graphviz.org/Download_windows.php
4)JDBC
这里我的目的是连接Oracle数据库,所以需要Oracle的ojdbc14.jar,此jar包可以在Oracle的C:\oracle\product\10.2.0\db_1\jdbc\lib\目录下得到。

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

2)
实操一下,选项比较多,不要眨眼
E:\software\Graphviz>java -jar schemaSpy_4.1.1.jar -t orathin -db secooler -host 10.17.192.100 -u sec -p sec -port 1521 -dp C:\oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar -o Schema_SEC -s SEC -hq
Using database properties:
    [schemaSpy_4.1.1.jar]/net/sourceforge/schemaspy/db*/orathin.properties
Connected to Oracle - Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning and Data Mining options

Gathering schema details..............................................
................................................................(8sec)
-- 这里省略N多提示信息 --
Wrote relationship details of 178 tables/views to directory '
Schema_SEC' in 161 seconds.
View the results by opening Schema_SEC\index.html

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

3.查看生成的报告
直接双击Schema_SEC目录中的index.html文件即可得到报告全貌。
演示报告请参见http://schemaspy.sourceforge.net/sample/index.html,这个页面真实的体现了SchemaSpy工具的强大魅力。
这里简单截一张样例“Relationships”,给大家一个感性的认识(以您自己生成的结果为准,那样会更真实,更让人感动)。

chemaSpy Analysis of library - All Relationships Generated by
SchemaSpy
Generated by SchemaSpy on Fri Sep 19 16:48 MDT 2008
Legend: SourceForge.net
Primary key columns
Columns with indexes
Excluded column relationships
Dashed lines show implied relationships
< n > number of related tables
 
Implied relationships All columns
   
4.简化操作的两种方法
如果您对命令行操作感到比较的不便,有两种手段可以相对简化执行过程。
1)在Windows下编写一个简单的bat批处理文件,以后就可以直接双击来完成这个过程了。
C:\>type SchemaSpy_Auto.bat
set Path="C:\Program Files\Graphviz2.24\bin";%Path%
java -jar schemaSpy_4.1.1.jar -t orathin -db secooler -host 10.17.192.100 -u sec -p sec -port 1521 -dp C:\oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar -o Schema_SEC -s SEC -hq

2)使用定制好的图形化操作工具
图形化的工具下载地址如下,慢慢体验吧。
http://www.joachim-uhl.de/projekte/schemaspygui/

5.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

6.小结
反向生成ER模型的工具很多,如Erwin、PowerDesigner和Toad Data Modeler等,但价格都不菲,并且这些工具更加侧重在数据库的设计,重点不在展示。因此SchemaSpy这个开源工具就派上了用场,在得到表间一级和二级关联关系上面,SchemaSpy工具很有优势,既实用又便捷。
SchemaSpy的另外一个优点就是,她可以随时获得数据库的新动态,这样就保证了文档的及时性和准确性。

-- The End --
分享好友

分享这个小栈给你的朋友们,一起进步吧。

OCM联盟
创建时间:2019-12-27 14:04:54
OCM联盟(OCMU – Oracle Certified Master Union)是一群有着共同理想,共同志向的DBA的家。 ⚠️该小栈仅限ocm成员入驻!审核制! Oracle Certified Master (OCM) -Oracle认证大师,是Oracle认证的别,是对数据库从业人员的技术、知识和操作技能的别的认可。Oracle OCM是解决困难的技术难题和复杂的系统故障的佳Oracle专家人选,也是IT行业衡量IT专家和经理人的高专业程度及经验的基准。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • 侯圣文@secooler
    栈主

小栈成员

查看更多
  • gaokeke123
  • ?
  • 山中老狐狸
  • 飘絮絮絮丶
戳我,来吐槽~