可视化数据库模式的好工具?

时间:2009-01-11 15:15:16

标签: mysql database database-design schema visualization

是否有可视化预先存在的数据库模式的好工具?如果重要,我正在使用MySQL。

我目前正在使用MySQL Workbench来处理SQL创建脚本转储,但是它很笨拙,速度慢,并且是一个手动过程来拖动所有表格(如果它不是那么慢就没关系。)

20 个答案:

答案 0 :(得分:81)

我发现SchemaSpy非常好 - 每次架构更改时都必须运行脚本,但这并不是什么大问题。

正如评论中指出的那样,还有一个GUI

另一个不错的工具是SchemaCrawler

答案 1 :(得分:12)

我通常使用SchemaSpy来执行此操作,但最近我在sqlfairy上发现了一篇非常简单的文章,它只使用转储文件来创建结构图

答案 2 :(得分:10)

在Mac OS X上,您可以使用Sequel Pro

答案 3 :(得分:10)

我喜欢这个名为DbSchema的工具。它是用Java编写的,因此它可以在OS X,Windows或Linux上运行。它有点笨重,特别是在印刷方面,但从我的经验来看,它们都是那样的。这是我尝试的几个中最好的一个。它制作了漂亮,清晰的图表。免费试用。费用约为120美元,具体取决于您购买的许可证数量。

答案 4 :(得分:9)

答案 5 :(得分:5)

SQuirreL SQL Client怎么样?如another SO question中所述,此程序可以生成简单的ER图。

答案 6 :(得分:2)

DeZign for Databases可能对您有意义。您可以反向工程和修改现有数据库。在将数据模型与数据库同步时,有一个自动布局功能和图表布局没有网格化。

答案 7 :(得分:2)

Visio professional 内置了数据库逆向工程工具。您应该能够通过ODBC驱动程序与MySQL一起使用它。当您对数据库进行反向工程,然后通过将它们拖离表和视图面板来创建图表时,它的效果最佳。它将拖动任何外键对象并将它们放在图上。

答案 8 :(得分:2)

我开始基于SQL :: Translator模块(GraphViz)创建自己的Perl脚本。以下是first results

答案 9 :(得分:2)

一种不同的方法,但如果您使用Ruby on Rails,请尝试使用RailRoad:http://railroad.rubyforge.org

答案 10 :(得分:2)

我找了一个体面的,最好是免费的linux工具,发现这个java应用程序非常好(最后!!):

http://sqldeveloper.solyp.com/

作为Java,它是跨平台的(我在Linux上运行它没有任何问题),它将连接到任何可以获得JDBC驱动程序的数据库。即:pretty much any database

导入数据库并获得数据库模式的可视化(ERM)非常容易。自动布局功能也很好,但请注意,它不会自动完成,您需要在将对象导入图表后单击“自动布局”按钮。

该应用程序也是一个非常好的通用数据库管理/浏览工具。作为一个小例子,我使用它代替pgadmin进行一些基础开发工作,因为简单的细节如SQL查询结果的列宽自动调整大小以适应内容(这使我在pgadmin中疯狂)。

答案 11 :(得分:2)

你有没有尝试过安排> MySQL Workbench中的自动排列功能。它可以帮助您避免手动移动桌子。

答案 12 :(得分:1)

我将SQL::TranslatorDBIx::Class

一起使用

无论如何我在我的工具链中都有DBIx :: Class,并且将它与SQL :: Translator结合使我可以将模式转换为许多不同的格式。主要是为不同的数据库服务器初始化SQL脚本(使其易于在SQLite上开发并转移到Postgresql进行生产),但它也可以输出GraphViz数据,因此生成图表非常简单。

答案 13 :(得分:1)

ER/Studio by Embarcadero是较昂贵的一种,但它所呈现的分层模式是理解数据库模型的最佳模式。它使查询编写成为世界上最简单的任务。

标准化,非规范化,仓储,文档等也令人难以置信。

缺点是它是一种非常昂贵的工具,特别是当你进行多平台时。

答案 14 :(得分:0)

多年前,我曾经使用Data Architect。我不知道它是否还在那里。

您可以将现有架构反向工程为关系表图。

或者您可以更进一步,并使用附图对实体关系模型进行反向工程。在与既不是程序员也不是数据库专家的人讨论数据时,ER图对我来说非常有用。

在与利益相关者建立有用的沟通工具之前,有时需要对ER模型和ER图进行一些手动修正。

答案 15 :(得分:0)

SchemaBall以自己有趣的方式进行可视化。

答案 16 :(得分:0)

Adminer(以前称为phpMinAdmin),用于管理MySQL数据库的Web应用程序,绘制简单的图表。

该软件本身与phpMyAdmin类似,但具有更多功能,它的轻量级,并且它有单个PHP文件。

alt text http://img256.imageshack.us/img256/1112/adminer.png

答案 17 :(得分:0)

我尝试了DBSchema。不错的功能,但对于包含大约75个表的数据库来说速度非常慢。无法使用。

答案 18 :(得分:0)

尝试PHPMyAdmin,它具有一些非常好的可视化和编辑功能。我很确定你甚至可以从中出口。

答案 19 :(得分:0)

当您说可视化数据库模式时,您是指所有表,sprocs等的文本文档,还是指的是模式和依赖项的可视化表示?

我知道你提到了MySQL(很可能现在支持它,但我不确定),但是RedGate有很多工具可以让它变得非常简单。它的SQL Doc程序可以为您的整个数据库创建完整的数据库文档。 SQL Dependency Tracker可以为您提供所有表的可视化表示并显示其链接,或者您可以仅加载某些表或sprocs来显示正在使用它们的内容或它们自己使用的内容。