38

顺便说一句——关于数据建模,我指的是逻辑或概念数据模型——而不是物理模型。

这个问题是在工作中的一次讨论中提出的;我自然而然地跳到维基百科以获得一些基本定义 - 希望他们可以澄清差异 - 但他们没有......

概念模式或概念数据模型是概念及其关系的映射。

逻辑数据模型看起来非常相似(根据这个定义):

系统工程中的逻辑数据模型(LDM) 是组织数据的表示,按照实体和关系进行组织,并且独立于任何特定的数据管理技术。

然而...

问题解决和软件工程中的域模型或域对象模型 (DOM) 可以被认为是系统的概念模型,它描述了该系统中涉及的各种实体及其关系。

域模型与概念数据模型之间的差异似乎特别模糊。

增加这种混乱的一件事是(据我所见)域模型通常使用 UML 类图建模 - UML 类图中的类实体支持方法 - 我们的同事认为域模型必须不包含“操作”。我可以使用 UML 类图的子集来理解域建模者——但是假设人们在使用的工具支持时会避免包含“操作”不是很危险吗?

4

4 回答 4

17

好问题,问题在于它取决于术语的定义,我认为它们根据来源略有不同。我同意以前的答案 - 域模型用于描述问题域,至少是您开发解决方案所需的部分。你描述了所有不同的实体、它们的关系和它们的行为。我认为这也是从领域驱动设计角度的观点。另一方面,数据模型用于描述系统中的数据以及它们之间的关系或关联。这对于描述需要存储在系统中的内容很有用,也可能会给出提示。我认为数据模型将适用于您的“无操作”规则,因为它们在这方面并不重要。

于 2010-08-17T23:41:31.787 回答
11

领域建模(在领域驱动设计的意义上)都是关于建模领域概念的行为,而数据建模主要关注......数据。

这并不意味着领域建模忽略数据结构。它只是更加强调操作以及如何使用它们来解决问题。

除了领域驱动设计领域建模技术之外,我对其他领域了解不多,但 DDD 涉及(除了建模数据和行为)还涉及一致性边界(聚合)的显式建模。

于 2010-08-18T05:04:08.207 回答
4

这是一个旧线程,但这里有一个稍微改进的答案,以澄清此处发布的其他一些内容。

“领域”的概念(以及其他类型的模型,例如概念、逻辑和物理)与用于表示模型的技术(例如 ERD、UML 等)是正交的。领域模型本质上与概念模型相同,但不同的设计方法可能具有略微不同的术语和定义。虽然使用 UML 或 ERD 绘制域模型来描述实体及其关系(或 UML 中的类/方法)很常见,但这仅适用于对系统管理的信息进行建模 - 从逻辑上讲,域建模的概念(或概念建模、逻辑建模或物理建模等)可以应用于任何问题情况和解决方案。根据问题的性质和解决问题的方法,可以使用其他建模技术来实现相同的目标。

简而言之,领域建模和概念建模本质上是一回事,撇开复杂的定义不谈。该概念适用于建模者试图传达的内容。数据建模(即 ERD)或面向对象建模(即 UML)的概念是指建模者如何沟通它。

于 2013-09-11T00:05:22.057 回答
2

我会说域模型描述了给定域上的问题(我们想要管理/解决的问题)。数据模型将描述域模型上描述的问题的解决方案(我们将如何解决它)。

然而,我们确实是在浑水...

于 2010-08-17T23:11:38.387 回答