【问题标题】:Is ERD considered a kind of UML diagram?ERD是否被认为是一种UML图?
【发布时间】:2018-06-19 20:21:11
【问题描述】:

实体关系图(ERD's)是否被认为是一种 UML 图或者它们是一个单独的东西?

【问题讨论】:

  • 请考虑接受 Gholamali-Irani 的回答,而不是 Justinas Marozas 的回答,后者没有解决 ERD 和 UML 类图如何相关的问题。
  • 不知道在我选择了一个之后我可以更改接受的答案。但我同意 - 对于任何用户来说,这是一个更详细的答案。

标签: uml erd


【解决方案1】:

我有另一个想法。我认为我们应该深入研究。

当我们谈论 ERD(实体关系图)时,我们谈论的是Entity Relationship Modeling

首先由 Peter Chen (1976) 介绍。他有两篇关于实体关系建模的著名文章(参见firstsecond 文章)

他谈到了实体关系建模(不是实体关系图)。它是ER模型

有 1975 年的 another paper 关于对现实世界系统建模

ER 建模是(见reference,第二段):

在软件工程中,ER 模型通常用于表示 企业开展业务需要记住的事情 过程。因此,ER 模型变成了一个抽象的数据模型 定义可以实现的数据或信息结构数据库中,通常是关系数据库。


图表约定技巧

当我们谈论 ER 建模时,有许多图表约定技术

  1. Chen Notation(部分链接需要翻译)
  2. IDEF1X Notation
  3. Bechman Notation
  4. Martin notation
  5. (min, max)-notation Jean-Raymond Abrial 在 1974 年
  6. UML class diagrams

和其他符号(见reference

以上所有符号都用于 ER 建模或数据建模。

UML 表示法与其他 ER 表示法之间没有惊天动地的区别。它们都对数据模型中最重要的元素进行建模。

最后:UML 是一组标准图形工具,用于对项目的整体或部分进行建模。 我们可以使用 UML(类图)进行 ER 建模,并将它们命名为我们的 ER 模型或 ERD。所以我们可以说:这是我的 UML 表示法的 ERD。

【讨论】:

  • 非常感谢您提供的广泛信息 - 如果可以的话,我会投 10 票。现在有道理了。我熟悉大多数符号,但不确定官方的理解是什么。
  • UML 中的<> 需要填充三角形。
  • 只有 Chen 的符号可以直接表示 ER 模型的概念,如 n 元关系和关系上的属性。其他符号更接近表格图或网络数据模型图。
  • @reaanb,非常感谢。我认为我们可以用 UML 中的 N 元关联对 ER 的n-ary relationships 建模(参见here)。我不确定attributes on relationships,也许UML 的关联类类似于ER 中的关系属性。
【解决方案2】:

ERD 是它自己的事情。 It's not in UML specification。您可以从链接下载规范 PDF。

UML 是面向对象建模的通用符号/语言,它包括多种图表类型。 ERD 是用于数据建模(属性和关系)的图表。一些结构化的 UML 图在您可以建模的方面非常相似,但概念不同。

UML 图的类型:

【讨论】:

  • 只是为了补充这个答案,理论上 ERD 的 UML“等效”是类图。但它们是不同的。
  • ERD 和类图在它们可以/应该建模的内容上并没有完全重叠,但是是的,它可能是最接近的替代方案。
【解决方案3】:

这是在 Google 上的第一次搜索:

主要区别:UML 代表统一建模语言。 ERD 代表实体关系图。 UML 是一种流行的标准化建模语言,主要用于面向对象的软件。实体-关系图用于结构化分析和概念建模

【讨论】:

  • “概念数据库建模”,更具体地说。
【解决方案4】:

UML 作为一种面向对象的表示法,与数据建模无关。很多次我都将属性作为数据列阅读。这不是真的。我们可以将简单数据或任何复杂的其他对象放入属性中。

对于数据建模(数据库、关系数据库)我们使用 ERD 图,对于在对象系统中存储数据我们可以使用 ORM(对象关系模型),它是混合 UML/数据模型,如果我们使用像活动表这样的模式或活动记录。

【讨论】:

    【解决方案5】:

    我对 Jarek 有不同的看法。没有什么能阻止您使用 UML 对数据进行建模。请记住,UML 在其基础上并不是新事物,它代表了已经存在的许多类型的图表(包括 ERD)的演变,并尝试标准化这些符号以创建用于系统设计通信的一致语言。

    ERD 用于(主要)对系统的静态模型进行建模。它们显示(不出所料)系统中的相关实体并阐明它们相关的方式。

    在 UML 中,类图源于 ER 图,用于表示类之间的关系。如果您认为(以最简单的形式)一个类是数据和方法的组合,那么通过忽略方法,您将得到一个数据模型(尽管其语法与传统 ERD 不同)。

    因此,如果您选择排除方法和模型中旨在指示数据保护的那些方面,则 ERD 与 UML 中的类图相关。

    但是,UML 本身具有更广泛的用途,作为一组建模工具,它们可以共同用于对系统的静态和动态性质进行建模。 它包含的图表有助于构建比您通过描述其实体(或数据)获得的更完整的系统模型:

    • 用于静态对象关系建模的类图,
    • 对象/实例关系的动态mnodelling对象图
    • 用于对系统如何通过状态进行转换的状态机/图表
    • 序列图和协作图展示系统的组件如何协同工作
    • 活动图(替换流程图)来演示/记录命令式流程
    • 还有一些其他的,我会让你去调查(查看http://www.agilemodeling.com/essays/umlDiagrams.htm 了解概览)

    【讨论】:

      【解决方案6】:

      我对安迪有不同的看法。在 UML 类图中,您描述了两个类之间的关系。使用 ERD,您可以讨论两个以上实体之间的关系。

      这就是为什么 Chen-Diagrams 中的基数与 UML 类图相反的原因。您必须考虑每个实体的关系数量。

      我们来看一个简单的例子:

      In this little example every supplier must be in relationship with at least one delivery. But there can be items not being delivered and projects without any deliveries.

      【讨论】:

      • UML 有 20+ 种图,类图只是其中一种。接受的答案中的关系图也是 UML。
      • @Dmitry 那么,您将如何对 UML 中的三个实体之间的关系进行建模?
      • 在 UML 类图中,您描述两个类之间的关系 是无稽之谈。您可以描述任意数量的元素(不仅是类)之间的关系。
      • @qwerty_so 请随意为我的示例创建一个 UML 类图。
      猜你喜欢
      • 1970-01-01
      • 2021-05-04
      • 1970-01-01
      • 2015-10-29
      • 1970-01-01
      • 1970-01-01
      • 2017-12-18
      • 1970-01-01
      相关资源
      最近更新 更多