AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 129551
Accepted
raddevus
raddevus
Asked: 2016-02-18 07:10:02 +0800 CST2016-02-18 07:10:02 +0800 CST 2016-02-18 07:10:02 +0800 CST

如何阅读 ERD 表示法(鱼尾纹)以转换为自然语言?

  • 772

背景

我试图确保我了解如何阅读 ERD(实体关系图)符号,以便将其转换为自然语言解释。

我试图确保我可以解释一种将我在图中看到的内容转换为自然语言的方法。

让我们使用下图:(请不要过于关注实际实体的正确性,它们仅用于我们的示例。)

ERD 样本

自然语言句子示例

公司地址

这是谈论公司与地址之间关系的正确方式吗?

一家公司有 1 到多个地址。(运输、计费等)。

这表明公司必须至少有一个地址,对吗?

这是否与我在图表中的符号相匹配?

公司连接

每家公司都有零到多个连接。

那是对的吗?这就是我在公司方面阅读双杠的方式吗?

两个公司侧连接器有何不同?

这两个公司端的连接器是否表明有什么不同?
你能解释一下吗?

自然语言翻译的一般帮助?

您是否有一种合乎逻辑的方法,可以提供用于检查每个关系并转换为自然语言的步骤?

例如,使用公司到连接。

  1. 我从哪里开始阅读?

  2. 我如何记住(或解释)Connection 上的乌鸦脚表示公司拥有的 Connection 数量,反之亦然?

谢谢

erd database-diagrams
  • 3 3 个回答
  • 10497 Views

3 个回答

  • Voted
  1. Best Answer
    raddevus
    2017-06-02T11:34:48+08:002017-06-02T11:34:48+08:00

    我现在想使用下图更明确地回答这个问题(来自https://www.lucidchart.com/pages/ER-diagram-symbols-and-meaning)

    erd 符号说明

    使用这些符号的定义,您可以看到关于我最初发布的图表的以下内容是正确的。

    • 一家公司有 1 到多个地址。(运输、计费等)。
    • 一家公司有 0 到多个连接
    • 一个连接有一个(并且只有一个)公司
    • 一个地址有一家公司 - 这可能应该包含双线连接器,以表明它是一家且只有一家。

    我的最后一个问题是:

    您是否有一种合乎逻辑的方法,可以提供用于检查每个关系并转换为自然语言的步骤?

    1. 将手指放在您开始的实体上。例如,将手指放在公司上。
    2. 现在说“公司有...”并选择您要谈论的相关实体。例如,选择连接。
    3. 查看接触连接实体的关系符号(它是带有三条线(腿)的空圆圈),它表示零到多。
    4. 继续说“...从零到多个连接”。

    最后一句话是,

    “公司有零到多个连接。”

    这就是您将实体关系图上的符号转换为自然语言的方式。

    • 5
  2. paulbarbin
    2016-02-18T07:47:52+08:002016-02-18T07:47:52+08:00

    从此链接: archive.org 镜像(原始网址已损坏) 1

    基数和模态是围绕关系的业务规则的指标。基数是指一个实体中的实例可以与相关实体中的实例关联的最大次数。模态是指一个实体中的实例可以与相关实体中的实例关联的最小次数。基数可以是 1 或多,符号位于关系线的外端,最靠近实体,模态可以是 1 或 0,符号位于基数符号旁边的内侧。对于基数 1,绘制一条直线。对于 Many 的基数,画了一个三趾的脚。对于 1 的模态,绘制一条直线。对于 0 的模态,绘制一个圆。零个或多个 [b4] 1 个或多个 [b5] 1 且只有 1 个(正好是 1) [b6] 零或 1 个 [b7] 基数和模态显示在关系线的两端。完成此操作后,关系将被读取为 1 对 1 (1:1)、1 对多 (1:M) 或多对多 (M:M)。

    [1] 原文链接:http://web.simmons.edu/~benoit/lis458/CrowsFootNotation.pdf

    • 2
  3. Dave
    2016-02-18T08:49:43+08:002016-02-18T08:49:43+08:00

    要正确解释任何建模符号,您需要理解它。那里有很多资源 - 这里有一个相关网站可以帮助您入门。在堆栈交换答案中涵盖的主题过于广泛和广泛。如果您希望为每个关系编写真正的技术解释,模型文档将很容易让您到达那里。

    至于您的流程问题:

    您是否有一种合乎逻辑的方法,可以提供用于检查每个关系并转换为自然语言的步骤?

    与任何写作一样,您的听众应该推动您的写作重点和风格。你在写技术文档吗?如果有,具体针对谁?大多数数据库专业人员只会看图表。如果您正在为业务用户写作,那么请关注他们的流程,并让其指导您的结构和单词选择。例如,如果模型描述了如何记录公司地址,那么最熟悉的起点就是公司。通俗地说,我们讨论的是公司的地址,而不是地址的公司。

    我从哪里开始阅读?

    如果您遵循流程/口语建议,请从公司开始并逻辑地探索其关系。在示例中,有两个有意义的表与公司相关并进一步描述了公司。

    首先解释一下: "A company has at least one, and possibly many, addresses."

    您将不得不回过头来解释我们通常不会在随意交谈中考虑的事情。您可以继续解释"We only store connection types that relate to a company (it's not a long list of arbitrary or potential connection types) and each connection type has only one company."

    这描述了关系以及我们的数据规则是什么。它似乎也没有多大意义,所以如果这不是一个示例模式,我建议有人看看设计,或者认真思考他们的业务流程!这是您可以在 ERD 文档中找到与语言到模型转换和思考相关的其他信息的原因之一。

    许多专业人士会通过这种练习来测试他们的模型是否有意义。他们可能开始问的是: "Does a company have a connection type, or does it make more sense that a company's relationship with it's multiple addresses have connection types?"这应该导致他们使用查找表和描述重新构建,例如:"A company has one or more addresses of different types."

    • 1

相关问题

  • ERD via Chen's notation:如何组织多个“最后完成”条目?

  • ER图的重要性

  • 如何从自然语言文本生成实体关系图和 SQL DDL 语句?

  • 涉及书籍、作者和国家的场景的实体关系图

  • 在没有关系的 ER 图中可以有一个实体吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve