2011-01-13 309 views
15

如果我创建一个概念类图,以便每个类捕获'名称'和'属性'而不是'操作',我是否基本上没有创建其他方面被认为是ERD的内容?我试图了解创建概念类图之间的差异,正如我所描述的与将其称为ERD一样?如果这些仍然是两种不同的动物,请解释一下有什么不同?概念UML类图与ERD之间的区别?

回答

4

There's在两者的表现差异不大(如果我们只专注于属性,类和关联的部分),如果你使用扩展实体关系图(时下最常见的情况)

诚然,他们看在图形层面非常不同,因为它们对元素使用不同的符号,但“语义”非常相似。它们都允许继承(再次,I'm谈论EER),正元关联,关联类,...

+0

ERD如何允许继承? – Trix

+0

正如我所说,ER以Peter Cheng的初步建议开始,但很快演变为完整的(扩展)ER语言家族,为继承等语言添加了新功能。所以,是的,一些(E)ER版本允许继承 –

17

类图只包含对象模型中的类,最终链接/关系连接图元素。但是,这些链接不一定与ERD图中的物理关系相对应,而是代表逻辑连接。

该类图只是应用程序的对象模型,不包含任何持久性特定的信息。当你考虑类图时忘记了数据库或者你可能使用的任何其他存储。

另一方面,ERD图是一个持久性专用图,它显示(最常见)关系数据库中存在的实体(表)。它还显示这些表格和所有其他特定于数据库的信息之间的物理关系(和基数)。 ERD图有时看起来类似于类图,但这并不意味着与类图相同。

+0

我明白你说的ERD图是持久性特定的,而类图不包含持久性特定的信息,但是当我并排查看图时,我会认为这是一个推断的事实,而不是一个可视化的事实。另外,你提到类图不包含图元之间的任何显式关系,但是如果我在类图上的元素之间显示关联和多重性,这与ERD上的实体之间显示的关系和基数有何不同图? – Adam

+0

类图上的关系是逻辑的,但另一方面,ERD关系是表之间的真实物理约束。你说得对,在简单的情况下,图表看起来非常相似,但在更复杂的情况下,区别是显而易见的。类图支持比ERD更多的抽象。如果使用经典的Chen表示法绘制ERD图,即使在简单的情况下,与UML类图相比,视觉差异也非常大。 –

+0

好的,感谢您的解释,以及您对逻辑与物理常量的说法对我而言是有意义的。考虑到类图支持ERD图的更多抽象,在更复杂的场景中这么说是公平的: – Adam

1

这取决于你可能不喜欢做的ER-d的情况。但想象一下,如果你有一个独立的数据层处理数据逻辑。在这种情况下,数据的许多细节不应与应用程序层共享。而且你的类图不能超出应用层。我必须强调,两个图都不相等。还有的地方,你需要做的这两种情况下,主要以多层架构,并且存在你可以只使用类图的情况;例如单层应用程序。

我强烈主张认为类图不会废除E-R图。

1

设计类图从概念模型和协作图制成。 设计类图包括:

  1. 类,关联和属性
  2. 方法属性
  3. 类型
  4. 适航
  5. 依赖
1

我见过的ER图(最经常使用ERWin IE符号)已经专注于数据库的设计。他们关心的是主键,外键,有不愿透露姓名的关系,平时也没什么概括/专业化。

另一方面,一个好的UML概念类图与密钥无关,反映了问题域,并且具有关联结束属性,至少在关联事物的语义上提示。这有助于将域名传达给更多的初级开发者,所以他们不必猜测。