可视化数据库架构的好工具?

151

有没有好的工具可以可视化一个已经存在的数据库架构呢?如果有所区别,我正在使用MySQL。

目前我正在使用MySQL Workbench来处理一个SQL创建脚本转储,但它很笨重、速度慢,而且手动拖动所有表格是个麻烦的过程(如果速度不那么慢可能还行)。


除非您认为此链接有帮助,否则阅读这个东西是没有替代品的:http://apidocs.sugarcrm.com/schema/6.5.14/ce/tables/campaign_log.html - gcb
3
我已经在softwarerecs.stackexchange.com上再次提出了这个问题,并非常欢迎任何替代我的当前解决方案的建议。 - Jeroen
1
使用dbForge Studio for MySQL可视化MySQL模式。数据库设计师包含在免费的Express版本中。 - Devart
MySQL Workbench在我看来相当不错。我按照这个教程成功地创建了一个不错的ER图表。"在MySQL Workbench中创建数据库的ER图表": https://medium.com/@tushar0618/how-to-create-er-diagram-of-a-database-in-mysql-workbench-209fbf63fd03 - uudaddy
20个回答

2

Visio专业版内置了一个数据库反向工程工具。您可以通过ODBC驱动程序将其与MySQL一起使用。当您通过从表和视图面板拖动它们来创建图表时,最好先反向工程数据库。它会拖动任何外键对象,并将它们放在图表上。


2

DeZign for Databases可能会对您感兴趣。您可以反向工程和修改现有的数据库。它具有自动布局功能,当将数据模型与数据库同步时,图表布局不会混乱。


请注意,自动布局功能不适用于较大的数据库 - 它只是一团糟。(例如,图表的空间似乎有限,因此右边界上挤满了许多表格(在我们的情况下,一个地方有75个表格)。我尝试了不同的布局选项,但结果在任何选项中都不好。 - Lonzak

2
我开始使用SQL::Translator模块(GraphViz)编写自己的Perl脚本。这里是第一个结果

1

我使用 SQL::TranslatorDBIx::Class

我已经在我的工具链中使用了 DBIx::Class,结合 SQL::Translator 可以将模式转换为许多不同的格式。主要是为不同的数据库服务器生成初始化 SQL 脚本(使得在 SQLite 上进行开发并在生产环境中迁移到 Postgresql 变得容易),但它也可以输出 GraphViz 数据,因此生成图表非常简单。


1

Embarcadero的ER/Studio是价格较高的工具之一,但它呈现的分层模式是迄今为止最适合理解数据库模型的。它使查询编写成为世界上最简单的任务。

它还非常擅长规范化、去规范化、数据仓库、文档等方面。

缺点是它是一个相当昂贵的工具,特别是当你需要跨多个平台时。


0

尝试使用 PHPMyAdmin,它具有一些非常好的可视化和编辑功能。我相信你甚至可以从中导出到Excel。


0

当你说可视化数据库模式时,是指所有表、存储过程等的文本文档,还是指模式和依赖关系的可视化表示?

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


很抱歉,Red Gate的工具只支持SQL Server。 - Dave R.
我想要一个视觉图形表示,而不是完整的数据库文档,但听起来仍然很有趣(即使它只是SQL Server - 还有其他一些使用它的东西)。 - Mat

0

多年前,我曾经使用过Data Architect。我不知道它是否仍然存在。

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

或者,您甚至可以进一步反向工程带有相应图表的实体关系模型。当与既非程序员也非数据库专家的人讨论数据时,ER图对我非常有用。

有时,在将其作为有用的沟通工具与利益相关者交流之前,需要对ER模型和ER图进行一些手动修复。


0

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


0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接