10

域模型和数据模型有什么区别?

4

4 回答 4

9

数据模型是仅描述数据及其关系的设计模型。该模型包含实体,但它们是根据他们拥有的数据来描述的,而不是根据他们如何处理这些数据或他们的职责是什么。

另一方面,域模型是用于分析问题域的概念模型。它根据具有关系、数据和行为的实体来描述领域。它将这些实体的职责描述为与理解问题域相关。

顺便说一句,对 UML 的一个非常简短的介绍是:

UML Distilled:标准对象建模语言简要指南

于 2010-09-30T22:15:41.617 回答
2

数据模型专注于数据库模式定义,包括表、列和关系。

领域模型专注于业务领域,包括概念(对象类)、行为(方法/逻辑)和关系。

在这两种情况下,基数都用于关系(例如 1:1、1:Many、0:Many、...)。

也就是说,理想情况下,您希望数据模型和域模型密切相关,即具有名称的 Person,... 和 MailingAddress,... 与具有 NAME 列的 PERSON 表和 MAILING_ADDR 表的 FK 相关入口。您必须通过过程、触发器等来决定逻辑的托管位置——软件系统中的对象与数据库中的对象。

于 2010-10-01T18:40:10.097 回答
0

我认为领域模型和数据模型现在与新的自顶向下建模技术几乎相同。我的意思是你可以在类图中建模,并且只在你的图中添加数据库原型。如果您使用我使用的工具,那么您的 ejb3 注释将立即与您的代码同步。下一步只是使用映射器来创建您的数据库。该技术仅适用于 Java

于 2010-10-01T12:51:17.753 回答
0

我认为在这里为后代提供一些清晰度很重要。

数据模型是关于如何构造和表示信息的设计。通过结构,我的意思是像“第五范式”这样的问题。通过表示,我的意思是选择计算机序列化,例如整数、浮点或字符串。

领域模型一词实际上有两个混合的含义。

  • 世界上真实或想象事物的本质特征模型。在这种模型中,类代表人类的概念化,实例是世界上的事物。例如,“Person”类的实例包括你和我,一个基本特征可能是每个 Person 都有一个母亲。这种模型通常称为概念本体概念模型,旨在提供意义。
  • 关于世界上事物的所需信息的模型,通常考虑到一些系统。在这种模型中,类表示必须存储的关于世界上事物的信息。例如,“Person”类将包含表示有关您和我的所需信息的实例,例如名字、姓氏、出生日期、当前身高和当前体重。该信息通常不包括所有基本特征,例如我们的母亲,因为对于特定系统的目的,不需要该信息。这种模型通常称为信息模型概念数据模型操作本体

UML 和 OWL 语言都可以用来表示任何一种领域模型。两者都可以被视为分析模型,因为它们用于分析域。一种用于理解领域中的事物,另一种用于收集为领域中的事物构建特定软件或数据库系统的需求。两者都是必要的,不幸的是,它们通常被混为一谈,以至于构建分析模型的人自己对他们正在建模的内容感到困惑!

于 2016-03-19T17:10:46.670 回答