【问题标题】:Entity-Relationship Modeling and Object Oriented Design - Is it relevant?实体关系建模和面向对象设计 - 是否相关?
【发布时间】:2014-02-26 06:22:07
【问题描述】:

我不确定这是否是一个好问题,因为我不确定在这个问题上是否有任何协议。但是由于互联网上缺乏信息,我还是不得不问。

假设我正在制作一个主要面向对象的系统,并带有相应的 UML 图(用例、类、协作等)。但是,在处理数据库时,没有一个 UML 图是有帮助的,这应该与开发团队相关,以便他们知道数据库中存在什么,什么不存在。

有两种表示数据库的方法:实体关系和关系(我不知道是否还有更多,但这两种在关系数据库范式中是相关的)。 ER 处理业务规则方面的 BD 表示,而关系处理实际的物理实现。但没有一个是“UML 标准”(除非我在这里遗漏了一些东西)。

我应该使用哪种模型,为什么? ER 在 UML 方面是否相关,还是我应该坚持关系?提前谢谢你。

【问题讨论】:

  • 没错,但就应该与开发团队沟通的内容而言,两者都是相关的。使用 OO 范式消除了 ER 建模的相关性,因为业务是通过 UML 图建模的。这就是为什么我要问 ERM 在 OO 系统中的相关性是什么,是否应该使用它。

标签: uml relational-database entity-relationship data-modeling


【解决方案1】:

如果您只想使用 UML,您可以使用有限的类图 - 没有 m-n 关联和方法。但是如果你使用一些类表映射工具,你可以使用任何东西,除了 m-n 关系。

从来没有人说过您只能将类图用于 OOP 类。您可以将它们用于任何或多或少正式的概念,如果它们的需求可以被复杂的 CD 元素覆盖。我使用类图进行 UI 规划,甚至是正式的文本规划。桌子离班级很近。所以,没问题。

你可以使用data model diagrams,如果你需要一些被调用的数据图。但是它们被类图完全覆盖。这就是不再支持它们的原因。

您的任务是让每个人都可以理解模型,只要他们能够掌握它。类图是最广为人知的 UML 图。一个好的标题和一对cmets将解决所有可能的误解。

【讨论】:

  • 那么,如果我理解正确的话……我可以使用类图来代替 ER 或关系图并解决我所有的问题,对吗?例如,如果我想制作 ER 图,我在 UML 中使用相同的基数,仅此而已,如果我想制作关系图,我将它们转换为有向关联来表示 FK?
  • 是的,你可以使用类。通过类诊断来描述 DB 是当今的标准学校。我上次回答了一些关于它的问题(stackoverflow.com/questions/21231096/…
  • 对不起,我不知道什么是FK。但是您使用可导航关联来显示一个表具有另一表的 id。
  • FK = 外键,正如您所描述的(一个表具有来自另一个表的 ID)。谢谢,这是我的回答。
  • 抱歉,我不确定您是否知道外键是什么。我自己还没有认出这个缩写。我想:如果那个美国人甚至在 IT 领域为(约翰)菲茨杰拉德肯尼迪命名?
【解决方案2】:

两者都是不同的 ER 图是实体的关系,UML 图是 Ojects 的行为,它们如何相互通信,根据我的观点,DFD(数据流图)是选项。它有不同的级别,基于进程的数量,并且将更好地解释数据实体。

【讨论】:

  • 我个人认为,当您采用 OO 范式时,DFD 不再是一种选择,因为 UML 中的大多数(如果不是全部)图表都取代了 DFD 可以做的事情。 UML 不能也不能替代的是 DB 是如何组成的。
猜你喜欢
  • 2011-04-21
  • 1970-01-01
  • 1970-01-01
  • 2013-11-18
  • 2011-03-27
  • 2011-12-22
  • 1970-01-01
  • 1970-01-01
  • 2013-06-17
相关资源
最近更新 更多