【问题标题】:How to represent an SQL query graphically如何以图形方式表示 SQL 查询
【发布时间】:2017-01-07 00:04:45
【问题描述】:

我有一个 SQL Select 查询,表之间有许多连接,我想知道哪种图表可以以图形方式表示它,以便可视化表之间的连接及其类型(区分 INNER 和 LEFT)?

我使用这个简单的模式来表示我的查询,但我正在寻找一种已知且更好的图表类型:

【问题讨论】:

    标签: sql database-design erd


    【解决方案1】:

    我相信您正在寻找的是Entity Relationship Diagram 的变体,其中不同的行尾表示关系类型。在构建数据库时,我相信这种类型的模型是最常见且易于理解的。

    【讨论】:

    • 我想过使用那个,但我想要一些可以直接表示连接的东西,而不仅仅是呈现表之间的关系
    【解决方案2】:

    您可以对实体关系图使用乌鸦脚符号,您可以在其中指定关系(一对多,一对一)以及可选性(实体 A 恰好具有实体 B 之一或实体 A 具有实体 B 的 0 或 1)。在您的情况下,可选性可能代表您需要执行的连接类型。为什么您需要在 ERD 中指定连接类型?

    【讨论】:

    • 实际上这是一个直接用于报告的 BI 查询,在我的案例中,连接类型非常重要
    • 鱼尾纹可能代表我所说的具有可选性的连接类型,检查一下。
    【解决方案3】:

    我很困惑为什么这不是已经存在的东西,更令人困惑的是为什么更多的开发人员没有尖叫着要求这个。不可否认地需要动态创建的 sql 查询的可视化表示。如果没有使用“AsecRemFortsKilnNumAttr”之类的名称混淆其业务表示的列名,那么试图理解一个 300 行的 sql 过程就足够困难了。

    如果一个过程中有数百个列具有这样的名称,但略有不同,例如“AsecRemAgsKilnNumAttr”和“AsecRemFortsKilnNumV”,那么这项任务是不可能的。

    无论如何,这是我找到的一对:-

    https://sqldep.com/sql-parser/

    http://queryviz.com/

    https://sourceforge.net/projects/revj/

    最后一个包含一个 Python 实用程序,如果您知道如何改进和扩展,您可以使用它。

    除此之外,唯一可能允许您查找的工具是 Informatica Developer 10,它允许您从导入的 sql 查询创建映射。

    【讨论】:

      猜你喜欢
      • 2013-02-03
      • 2012-10-23
      • 2015-12-13
      • 1970-01-01
      • 2022-10-02
      • 1970-01-01
      • 2016-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多