ERD是不是被认为是一种UML图?
Posted
技术标签:
【中文标题】ERD是不是被认为是一种UML图?【英文标题】: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 类图如何相关的问题。 不知道在我选择了一个之后我可以更改接受的答案。但我同意 - 对于任何用户来说,这是一个更详细的答案。 【参考方案1】:我有另一个想法。我认为我们应该深入研究。
当我们谈论 ERD(实体关系图)时,我们谈论的是Entity Relationship Modeling。
它首先由 Peter Chen (1976) 介绍。他有两篇关于实体关系建模的著名文章(参见first 和second 文章)
他谈到了实体关系建模(不是实体关系图)。它是ER模型。
有 1975 年的 another paper 关于对现实世界系统建模。
ER 建模是(见reference,第二段):
在软件工程中,ER 模型通常用于表示 企业开展业务需要记住的事情 过程。因此,ER 模型变成了一个抽象的数据模型 定义可以实现的数据或信息结构 在数据库中,通常是关系数据库。
图表约定技巧
当我们谈论 ER 建模时,有许多图表约定技术。
-
Chen Notation(部分链接需要翻译)
IDEF1X Notation
Bechman Notation
Martin notation
(min, max)-notation Jean-Raymond Abrial 在 1974 年
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 类图。以上是关于ERD是不是被认为是一种UML图?的主要内容,如果未能解决你的问题,请参考以下文章