【问题标题】:Good tool to visualise database schema? [closed]可视化数据库模式的好工具? [关闭]
【发布时间】:2010-09-30 18:57:50
【问题描述】:

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

我目前正在使用 MySQL Workbench 来处理 SQL 创建脚本转储,但它笨拙、缓慢,并且需要手动拖动所有表(如果速度不那么慢也没关系)。

【问题讨论】:

标签: mysql database database-design schema visualization


【解决方案1】:

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

正如 cmets 中所指出的,它还有一个 GUI

另一个不错的工具是SchemaCrawler

【讨论】:

  • 谢谢,我认为命令行界面有点痛苦,当然,一旦我开始使用它,我就注意到首页上的 GUI 链接,joachim-uhl.de/projekte/schemaspygui。还应注意,程序会将 Google 广告插入到生成的 HTML 中。
  • 这很好。值得注意的是,必须进行大量的牦牛剃须才能使其发挥作用。
  • 这太棒了!让它工作起来很容易。只需按照说明进行操作。另外,应该注意的是,它不仅适用于 MySQL,还有:DB2、Derby、Firebird、HSQLDB、Informix、MaxDB、MS SQL、Oracle、PostgreSQL、SQLite、Sbase、Teradata。
  • 节省您的工作并使用 DbVisualizer (dbvis.com)。它适用于包括 SQLite 在内的各种数据库,其 EULA 允许将免费版本用于商业项目。
【解决方案2】:

我通常使用 SchemaSpy 来做这个,但是最近我在sqlfairy 上发现了一篇非常简单的文章,它只是使用转储文件来创建结构图

【讨论】:

  • +1 for sqlfairy 不需要 JRE(像大多数其他答案一样)。
  • 我刚刚从 sqlfairy 得到了我需要的东西。简单快捷。
  • sqlfairy 可以为大型数据库使用大量磁盘空间。我为一个 615mb 大的数据库运行它,但在填充了我硬盘上剩余的 18gb 后它崩溃了。
  • 那是一条老评论……这个工具还在开发中吗?
【解决方案3】:

我喜欢这个工具,简称为DbSchema。它是用 Java 编写的,因此可以在 OS X、Windows 或 Linux 上运行。这有点笨拙,尤其是在打印方面,但根据我的经验,它们都是这样的。这是我试过的几个中最好的一个。它可以制作漂亮、清晰的图表。免费试用。费用约为 120 美元,具体取决于您购买的许可证数量。

【讨论】:

  • 优秀的工具。还有一个免费版,它具有大部分强大的功能(例如与实时数据库同步)。
  • 这是一个很棒的工具,它甚至可以生成虚拟外键,哇!
【解决方案4】:

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

【讨论】:

  • +1 Sequel Pro 强烈推荐。
  • 我认为这个答案需要额外解释:norbauer.com/rails-consulting/notes/…
  • 谢谢@fguillen!让我们在这里添加解释(在链接可能断开之前......)。只需 4 个简单的步骤:1.) 安装 graphviz,它在 MacPorts (sudo port install graphviz) 和 Homebrew (brew install graphviz) 中可用。 2.) 导出 Dot 文件(在 SequelPro 中转到 File > Export > Graphviz Dot 并导出您的数据库)3.) 打开终端并将 dot 文件转换为 SVG dot -Tsvg your_database.dot > your_database.svg 4.) 可选择使用您选择的任何工具(Inkscape、ImageMagick、GraphicsMagick 等)将生成的 SVG 转换为 JPG 或 PNG。
【解决方案5】:

我会推荐Toad data modeller

【讨论】:

    【解决方案6】:

    SQuirreL SQL Client 怎么样?正如another SO question 中提到的,这个程序能够生成一个简单的 ER 图。

    【讨论】:

      【解决方案7】:

      您是否尝试过 MySQL Workbench 中的排列 > 自动排列功能。它可以让您免于手动移动表格。

      【讨论】:

      • 是的,它有点帮助,但不是很好。
      • 值得一试,我也总是会安排自己 - 但有时它可以让我开始。
      【解决方案8】:

      DeZign for Databases 可能对您来说很有趣。您可以对现有数据库进行逆向工程和修改。具有自动布局功能,在将数据模型与数据库同步时,图表布局不会网格化。

      【讨论】:

      • 请注意,自动布局功能不适合更大的数据库——它只是一团糟。 (例如,图表的空间似乎是有限的,因此右边框上塞满了很多桌子(在我们的例子中,一个地方有 75 个桌子)。我尝试了不同的布局选项,但结果在任何情况下都不好的选项。
      【解决方案9】:

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

      【讨论】:

        【解决方案10】:

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

        【讨论】:

          【解决方案11】:

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

          【讨论】:

          【解决方案12】:

          我为 linux 寻找一个不错的,最好是免费的工具,发现这个 java 应用程序非常好(终于!!):

          http://sqldeveloper.solyp.com/

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

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

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

          【讨论】:

          • 我同意这一点。我一直在寻找任何 GUI 工具来可视化 linux 上的 postgresql 数据库,其中大多数都一脸茫然。我刚开始使用 SQL Developer,但它是迄今为止我发现的最好的免费选项。
          • 我无法提供新的答案,因为问题现已结束,但您实际上想要的工具是 DbVisualizer (dbvis.com)。太棒了……比我在问题中推荐的要好得多(如果我在过去几年的使用有任何迹象的话)。
          【解决方案13】:

          我使用SQL::TranslatorDBIx::Class

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

          【讨论】:

            【解决方案14】:

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

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

            缺点是它是一个相当昂贵的工具,尤其是当您使用多平台时。

            【讨论】:

              【解决方案15】:

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

              软件本身与phpMyAdmin类似,但功能更多,轻量级,单一PHP文件。

              【讨论】:

              • 也许这适用于微不足道的模式,但我在一个有 28 个表的模式上尝试了它,它只是给了我一个按字母顺序排列的所有表的纯垂直列表,一堆垂直线试图说明关系。不能再没用了。
              • 没错,在我的例子中是 40 个表。可以点击拖动,但是一旦选择就不能取消选择了。
              【解决方案16】:

              当您说可视化数据库架构时,您是指所有表、存储过程等的文本文档,还是指架构和依赖项的可视化表示?

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

              【讨论】:

              • Red Gate 的工具恐怕只有 SQL Server。
              • 我追求的是可视化图形表示,而不是完整的数据库文档,但听起来仍然很有趣(即使它只是 SQL Server - 有一些其他的东西使用它)。
              【解决方案17】:

              几年前,我曾经使用过 Data Architect。我不知道它是否还在外面。

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

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

              有时需要对 ER 模型和 ER 图进行一些手动修复,然后才能成为与利益相关者的有用沟通工具。

              【讨论】:

                【解决方案18】:

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

                【讨论】:

                  【解决方案19】:

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

                  【讨论】:

                    【解决方案20】:

                    试试 PHPMyAdmin,它有一些非常好的可视化和编辑功能。我很确定您甚至可以从中导出到 exel。

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 2010-10-10
                      • 1970-01-01
                      • 2010-10-12
                      • 2012-02-15
                      • 2011-02-25
                      • 2011-11-08
                      • 2013-05-22
                      • 2010-09-26
                      相关资源
                      最近更新 更多