使用UML表示法的ER图和UML类图之间有什么区别?

使用UML表示法的ER图和UML类图之间有什么区别?,uml,entity-relationship,data-modeling,modeling,class-diagram,Uml,Entity Relationship,Data Modeling,Modeling,Class Diagram,我有一个项目需要我创建一个UML类图。在同一个项目中,我从前面的任务中得到的是一个使用UML表示法的ERD。同样值得注意的是,这个项目与数据库相关,没有太多的编码,因此基于其他编码创建类图可能不是这里的主要目标 我尝试在谷歌上搜索“如何将erd转换为类图”,但所有的搜索结果只显示了如何使用鱼尾纹符号将erd转换为UML类图 我也在谷歌上搜索了UML符号ERD,发现它说 在UML表示法中,实体被建模为带有实体原型的“类” 这是否意味着使用UML表示法的ERD与UML类图相同?如果没有,区别是什么

我有一个项目需要我创建一个UML类图。在同一个项目中,我从前面的任务中得到的是一个使用UML表示法的ERD。同样值得注意的是,这个项目与数据库相关,没有太多的编码,因此基于其他编码创建类图可能不是这里的主要目标

我尝试在谷歌上搜索“如何将erd转换为类图”,但所有的搜索结果只显示了如何使用鱼尾纹符号将erd转换为UML类图

我也在谷歌上搜索了UML符号ERD,发现它说

在UML表示法中,实体被建模为带有实体原型的“类”

这是否意味着使用UML表示法的ERD与UML类图相同?如果没有,区别是什么

注意:我知道关于ERD和类图之间的区别已经有问题了,但我要特别问的是关于ERD使用UML表示法的问题,在Chen的原始表示法中,属性是连接到其实体的椭圆,该实体用矩形表示,可以用losanges表示关系。这导致了非常大和复杂的图表,由于许多属性

因此,鱼尾纹符号变得更加流行,因为它允许以更紧凑的方式表示相同的模型,将属性及其实体分组在矩形中,并使用直观的基数视觉表示。但是现在UML已经成为建模者的通用语言,我们很有可能会考虑其他替代方法

您建议将实体、属性、关系的核心ERD概念非常自然地映射到UML类、属性和关联中:

(…)实体被建模为具有实体原型的“类”

(…)属性可以按方框样式排列(…)

关系显示为连接两个实体的一条实线。最小基数和最大基数沿直线显示,可以添加动词短语以完全描述关系的性质

事实上,UML中ERD图最合适的表示法是类图

但是要注意细微的语义差异。例如:

  • 在UML中,任何属性(映射与属性相关的属性)都可以在框内建模(称为属性)或作为相关联的类(称为实体)建模,并具有一个拥有的关联端

  • UML类应该有行为(这是因为底层的OOP概念)。拥有没有行为的类可能会被UML读者误解为糟糕的设计(贫乏的领域模型)。
    «Entity»
    构造型不足以消除歧义,因为它通常在UML上下文中与范例相关联,范例也期望实体具有行为。也许您可以使用不那么模棱两可的原型定义UML概要文件,例如
    «数据实体»

  • UL>

    <强>您的链接源在UML中关于乌鸦脚移位的误导性<强>:您可以在UML中的关联上添加动词短语,但是在中间OC关联并与文本旁边的箭头一起显示阅读的方向。在UML中,关联端的文本是完全不同的:它被称为“角色”。ERD图中的等价物是在另一端的实体中包含一个具有角色名称的属性(该属性将对应标识另一实体的主键)

有关如何在不同符号中注释ERD概念的更好来源,请参见的侧栏


编辑:在一篇更一般的文章“”中提出了一种映射算法:它还提到,在
IsA
关系的条件下,应该在UML泛化中进行转换。

什么是“使用UML符号的ER图”?我们在哪里可以找到定义它的标准?在UML中,一个类可以远远超过一个属性容器(例如一个实体),在UML中,你可以建模的不仅仅是类。我们不可能知道您必须使用UML做什么,也许是为了进一步添加行为?ERD使用UML符号,它看起来到底是如何做的?我无法想象。@qwerty_所以,很抱歉迟了回复,这里有几个例子我可以从我的大学幻灯片中找到,我的大学使用这种符号,我觉得奇怪的是,在互联网上搜索这种特定符号时,结果如此之少。这不是ERD,这是纯UML。嗨,谢谢你的回答。在维基百科中没有提及UML符号ERD,在互联网上也很少提及,这真是令人惊讶。我想知道为什么我们的大学会教给我们一些在现实世界中几乎不存在的东西。@a_unique_名称在ERD文章中确实只有一个比较图(在桌面上,它在右边栏上,在手机上,它隐藏在基数部分)。@a_unique_名称事实上,你可以从不同的角度看它。ERD是在数据和操作必须分离的时代发明的。如今,没有必要从ERD开始。以前用ERD完成的领域模型的省略现在用类图完成。然而,如果您从一个年轻的工程师开始,您肯定会遇到许多仍然有ERD文档的遗留系统。因此,了解映射是很好的。因此,这不是浪费时间;-)(现在你有了一篇学术论文,你可以参考)。