web-dev-qa-db-ja.com

データモデリングとドメインモデリングの違いは何ですか?

ちなみに、私はデータモデリングに関して、物理的モデルではなく、論理的または概念的なデータモデルについて言及しています。

職場での議論中に質問が出てきました。当然、私はウィキペディアに飛び込んで、いくつかの基本的な定義を整えました-彼らが違いを明確にすることを望んでいます-しかし、彼らはそうしませんでした...

概念スキーマまたは概念データモデルは、概念とそれらの関係のマップです。

論理データモジュールは(この定義から)非常によく似ています。

システムエンジニアリングにおける論理データモデル(LDM)は、エンティティおよび関係という用語で編成された組織のデータの表現であり、特定のデータ管理テクノロジーから独立しています。

どこに...

ドメインモデル、または問題解決とソフトウェアエンジニアリングにおけるドメインオブジェクトモデル(DOM)は、システムに関係するさまざまなエンティティとその関係を記述するシステムの概念モデルと考えることができます。

ドメインモデルと概念データモデルの違いは特にあいまいです。

この混乱に追加することの1つは、(私が見たものから)ドメインモデルは通常、UMLクラス図を使用してモデル化されることです-UMLクラス図のクラスエンティティはメソッドをサポートします-同僚はドメインモデルが「操作」を含まない。 UMLクラス図のサブセットを使用してドメインモデラーを理解できますが、使用しているツールでサポートされている場合、「操作」を含めないようにするのは危険ではありませんか?

31
Adrian K

良い質問ですが、問題はそれが用語の定義に依存するということです、それらは出典に基づいて少し異なると思います。私は以前の答えに同意します-ドメインモデルは問題のあるドメイン、少なくともソリューションを開発するために必要な部分を記述するためのものです。さまざまなエンティティ、それらの関係、およびそれらの動作をすべて記述します。これは、ドメイン駆動設計の観点からの見方でもあると思います。一方、データモデルは、システム内のデータとそれらの間の関係または関連付けを記述するために使用されます。これは、システムに何を保存する必要があるかを説明するのに役立ち、ヒントも提供する場合があります。データモデルはこの点で重要ではないため、「操作なし」ルールに適用されると思います。

12

ドメインモデリング(ドメインドリブンデザインの意味で)はすべて、ドメインコンセプトの動作のモデリングに関するものですが、データモデリングは主にデータに焦点を当てています。

ドメインモデリングがデータ構造を無視するという意味ではありません。それは、操作と、それらを問​​題の解決にどのように使用できるかに重点を置いています。

ドメイン駆動設計以外のドメインモデリング手法についてはあまり知りませんが、DDDには(データと動作のモデリングは別として)整合性境界(集合体)の明示的なモデリングも含まれます。

7
Szymon Pobiega

これは古いスレッドですが、ここに投稿された他のいくつかを明確にするために少し改善された答えがあります。

「ドメイン」(および概念、論理、物理などの他の種類のモデル)の概念は、モデルを表すために使用される手法(ERD、UMLなど)と直交しています。ドメインモデルは基本的に概念モデルと同じですが、設計手法が異なると用語や定義が少し異なる場合があります。 UMLまたはERDを使用してドメインモデルを描画してエンティティとその関係(またはUMLのクラス/メソッド)を記述することは一般的ですが、これはシステムによって管理される情報のモデリングにのみ適用されます-論理的には、ドメインモデリングの概念(または概念)モデリング、論理モデリング、物理モデリングなど)は、問題のある状況や解決策に適用できます。問題の性質と問題解決アプローチに応じて、他のモデリング手法を使用して同じ目標を達成することができます。

要するに、ドメインモデリングと概念モデリングは本質的に同じものであり、髪の毛を分割する定義は別です。この概念はwhatに適用され、モデラーが通信しようとしています。データモデリング(ERDなど)またはオブジェクト指向モデリング(UMLなど)の概念は、howモデラーを指しますそれを伝えます。

3
Rob Meredith

ドメインモデルは、特定のドメインの問題(管理/解決したいもの)を表すと言えます。データモデルは、ドメインモデルで説明されている問題の解決策(解決方法)を説明します。

しかし、私たちは確かに濁った海にいます...

1
Rui Curado