ERD被认为是一种UML图吗?

Is ERD considered a kind of UML diagram?

实体关系图 (ERD) 是 UML 图的一种还是独立的东西?

这是 Google 上的第一次搜索:

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

ERD 是它自己的东西。 It's not in UML specification。您可以从 link.

下载规范 PDF

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

UML 图的类型:

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

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

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

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

1975 年有 another paper 关于 模拟真实世界系统

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

In software engineering an ER model is commonly formed to represent things that a business needs to remember in order to perform business processes. Consequently, the ER model becomes an abstract data model that defines a data or information structure that can be implemented in a database, typically a relational database.


图表约定技术

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

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

和其他符号(参见reference

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

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

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

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

对于数据建模(数据库、关系数据库),我们使用 ERD 图,为了在对象系统中存储数据,我们可以使用 ORM(对象关系模型),它是混合的 UML/Data 模型,如果我们使用类似的模式活跃的 table 或活跃的记录。

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

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

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

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

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

  • Class 静态对象关系建模图,
  • object/instance 关系动态建模的对象图
  • 状态 Machine/Diagrams 用于模拟系统如何通过状态转换
  • 展示系统组件如何协同工作的顺序图和协作图
  • Activity 图表(替换流程图)到 demonstrate/document 命令式流程
  • 和其他一些我将留给您调查(查看 http://www.agilemodeling.com/essays/umlDiagrams.htm 了解概览)

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

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

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

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.