sql - 如何记录sql查询

标签 sql documentation uml entity-relationship

对于我的一个客户,我正在记录一个包含一些表和一些查询的现有数据库。

对于表,我使用 E-R 图来显示表和关系。我正在使用 DIA 图编辑器来完成此操作。

如何描述和可视化查询?是否存在某种 UML 对象可以做到这一点?

到目前为止,我已经创建了一个表,其中包含查询名称、其功能的描述以及查询本身检索的数据的示例屏幕截图。我正在 Word 中执行此操作。
我不喜欢这项工作的结果,是否有更专业的东西可以做到这一点?

我不会安装新软件,只是知道数据库设计者必须如何完成该任务。

编辑1 正如@Serg 建议的那样,我可以使用 View 并将 View 作为实体进行图表化。

如果我理解了类似的内容:

enter image description here

客户需要的是了解每个查询的数据来自哪里。

编辑2 我正在做类似以下的事情:

enter image description here

哪里 driver_tabella_utenti 是一个表
driver_imp_causali_preparazione 是一个查询
driver_query_riepilogo_prsp 是一个查询

我认为这不是最糟糕的做法!如何像处理实体和关系一样可视化设计 SQL 查询?

最佳答案

简短摘要

我看到基于规范的 2 个选项。这仅基于字面上的规范,而不是网络上的任何其他研究。

  1. 模型类提供表示 SQL 查询功能的操作。将此操作描述为一个使用 <> 构造型的类,并具有 OpaqueBehavior 类型的链接对象,并提供属性主体(SQL 查询)和语言(“SQL”)的值。
  2. 模型类提供表示 SQL 查询功能的操作。提供链接到包含相应不透明行为(正文和语言)描述的类的注释

我在规范中找到了另一个解决方案

  • 将 SQL 查询建模为操作。该操作可以像通常在事件图(带圆角的矩形)中一样进行描述,并将 SQL 直接放在矩形内。该操作需要成为事件图的一部分(即使用此 SQL 的行为的描述)。
  • 说明

    您可以使用BehavioralFeature(例如操作)来定义一些 SQL可用(它应该是公开此操作的某个类),然后您可以定义一个描述OpaqueBehavior的方法(方法)包含正文(SQL 语句)和语言(“SQL”)。

    由于规范没有提供有关符号的任何信息,您可以将其指定为将方法表示为对象(这是 OpaqueBehavior 的特定实例)或使用注释。在这两种情况下,它都应该链接到描述 SQL 语句本身提供的行为(例如事件)的相应对象。

    参见 UML 规范的 13.2.3.3。下面是描述该区域的图表。 enter image description here

    根据进一步研究的结果进行编辑: UML 规范在第 16.2 节中逐字描述了您的情况(作为 OpaqueAction)。第 16.2.5.1 节中的示例图 16.8 正是我作为第三个可能答案描述的情况。

    Opaque Action example from Specification

    但是请注意(正如评论中已经提到的)UML 并不总是最合适的解决方案。虽然我强烈建议使用 UML 对系统进行建模,但 SQL 代码本身应该是文本文档的一部分,应该与 UML 图一起创建。它将受益于更清晰、搜索的可能性、复制粘贴代码的可能性等。此外,如果您的查询超过 2-3 行短行,甚至可能很难注意到它仍然是 UML 图的一部分。

    关于sql - 如何记录sql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37742478/

    相关文章:

    UML依赖关系

    architecture - 什么是用例场景?

    sql - 获取表中行对之间的平均间隔

    Java如何从用户输入到方法搜索SQL

    php - MySql语法错误;可以在一个查询中删除两个表吗?

    java - 如何使用 XFire 创建文档化的 WSDL

    c++ - 在 doxygen 中更改文档代码的版本(不使用宏)

    documentation - ColdFusion 代码的自动文档

    c++ - UML 类图 C++ 结构

    sql - 从数据库 Oracle 10g 中删除表