4

是否有任何推荐/既定的方法来解释 SQL 查询的工作?

我们的项目中有很多复杂的查询,我们需要使用 UML 或任何其他建模语言对其进行记录。

请注意,我不是在询问数据建模。它更多地是关于记录 SQL 逻辑,即表如何连接、条件如何影响结果、连接等。

所以,最后:

  1. 有哪些推荐的方法?
  2. 有什么例子吗?
4

1 回答 1

2

好问题。

我没有一个答案,这取决于上下文 - 实际查询的复杂程度,听众是谁(他们对不同符号的熟练程度),我是否能够面对面呈现这个问题或者是它适用于离线文档等。一些建议是:

  1. 对于不同的受众,以电子表格的形式使用源到目标的映射:

    来源专栏 | 目标栏 | 转换逻辑(规则+SQL)

    请注意,这也涵盖了数据模型的一部分,不必非常正式(但可以),并且您可以决定适当的详细程度(仅捕获整个数据处理的输入和输出或记录每个步骤即每个子查询)。

  2. 对于其他开发人员(精通 SQL) - 编写格式良好且文档化的 SQL 代码,并广泛使用缩进来指示子子查询的不同嵌套级别。

  3. 对于其他开发人员或 DBA - 许多成熟的 RDBMS 具有生成解释计划(甚至是可视解释计划)的功能 - 这样的输出通常非常有用并带有额外的信息(实际执行计划以及每个步骤的估计成本)。

  4. 对于学者 ;-) - 使用关系代数符号并绘制一棵树来描绘查询逻辑(例如:https ://people.ok.ubc.ca/rlawrenc/teaching/304/Labs/Lab1/ ,查看维基百科的符号用于表示具体操作)。

  5. 有时使用特定工具来构建/定义数据处理(例如,Informatica 或 MS SSIS 用于构建 ETL 逻辑的一部分或具有图形界面来表示执行代码的 SAS Enterprise Guide),并且此类流程在工具本身中可视化,但是我不相信它和 SQL 一样具有表现力,并且可以很好地显示一些非常复杂的查询。

  6. QBE - 由 Moshé M. Zloof 发明的 Query-By-Example(例如在 MS Access 中可用),是一种用于定义查询的图形工具/语言。但它也有其局限性(不是每个查询都可以用这种方式表示)。

于 2013-10-03T20:46:50.080 回答