如果我创建一个概念类图,使每个类捕获'名称'和'属性'但不捕获'操作',我基本上没有创建被认为是ERD的东西吗?我试图了解创建概念类图与创建概念类图之间的差异,而不是将其称为ERD?如果这些仍然是两种不同的动物,有人可以解释一下它们的区别是什么吗?
答案 0 :(得分:18)
类图仅包含对象模型中的类,其中包含连接图元素的最终链接/关系。然而,这些链接不一定对应于ERD图中的物理关系,而是代表逻辑连接。
类图只是应用程序的对象模型,不包含任何特定于持久性的信息。当您考虑类图时,请忘记数据库或您可能使用的任何其他存储。
另一方面,ERD图是一个特定于持久性的图,它显示了(最常见的)关系数据库中存在的实体(表)。它还显示这些表与所有其他特定于数据库的信息之间的物理关系(和基数)。 ERD图有时看起来类似于类图,但这并不意味着与类图相同。
答案 1 :(得分:7)
如果您使用扩展实体关系图(现在最常见的情况),两者的表现力(如果我们只关注属性,类和关联部分)几乎没有什么区别
确实,它们在图形级别上看起来非常不同,因为它们对元素使用不同的符号,但“语义”非常相似。他们都允许继承(再次,我在谈论EER),n-ary关联,关联类,......
答案 2 :(得分:1)
这取决于您可能不喜欢ER-D的情况。但想象一下,如果你有一个单独的数据层来处理数据逻辑。在这种情况下,不应与应用层共享许多数据细节。而你的类图不应超出应用层。我必须强调两个图表都不相同。在某些情况下,您需要同时执行这两种操作,主要是在多层体系结构中,并且在某些情况下您可能只能使用类图;例如单层申请。
我强烈主张类图不会废除E-R图。
答案 3 :(得分:1)
设计类图由概念模型和协作图组成。 设计类图包括:
答案 4 :(得分:1)
我见过的ER图(最常见的是ERWin IE表示法)专注于数据库的设计。他们关心主键,外键,有未命名的关系,通常没有泛化/专业化。
另一方面,一个好的UML概念类图不关心键,反映问题域,并且具有至少提示的关联结束属性,其语义为什么是事物有关。这有助于将域名传达给更多初级开发人员,因此他们不必猜测。答案 5 :(得分:0)
IMO简单来说
类图描述了系统如何工作的细节。
ER图描述了系统如何将“状态”保持为蓝图。
目标: 详细说明系统组件(类)的状态和行为。 使用Solid原理设计“高效”的柔性系统(更少的耦合和更大的内聚力)。
目标: 设计如何“有效地”保持系统状态的蓝图。 考虑将要进行哪种查询(读还是写),是否需要任何联接 因此找出要索引的列 使用规范化ACID属性。
PS:请注意,这两个图都试图在尊重方面有效地做事。