【问题标题】:UML Domain ModelingUML 领域建模
【发布时间】:2011-04-19 14:36:10
【问题描述】:

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

【问题讨论】:

    标签: uml datamodel domain-model


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

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

        UML Distilled: A Brief Guide to the Standard Object Modeling Language

        【讨论】:

        • 数据模型可以存在于概念、逻辑和物理级别。我认为概念数据模型是领域模型的一个子集,在某些方法中它可能是相同的东西(同构?)。
        • +1 @MikeAinOz。同样,域模型不必只是概念性的。领域驱动设计的核心原则是,一个真实的、实时的、完全执行的领域模型是解决方案的核心。
        • +1 这就是我要说的。我总是将数据模型与物理和领域联系起来,以在可观察的层面上描述问题区域(即,用户如何看待应用程序与他们交互的项目等)。
        【解决方案4】:

        data 模型专注于 DB 模式定义,包括表、列和关系。

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

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

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

        【讨论】:

        • 我完全同意这篇文章。我的答案是处理我在公司中使用的实施技巧。我们也使用这种方法,因为我们有 hibernate 专家。如果我们没有这方面的专业知识,我不确定我们是否会对数据库方法进行相同的自上而下建模。
        猜你喜欢
        • 2013-12-30
        • 1970-01-01
        • 2014-02-28
        • 1970-01-01
        • 2011-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多