ドメインモデルとデータモデルの違いは何ですか?
4 に答える
データモデルは、データとその関係のみを記述する設計モデルです。モデルにはエンティティが含まれていますが、エンティティは、所有するデータの観点から説明されており、このデータに対する動作や責任は何であるかではありません。
一方、ドメインモデルは、問題のあるドメインの分析に使用される概念モデルです。関係、データ、および動作を持つエンティティの観点からドメインを説明します。問題のドメインを理解するために関連するものとして、それらのエンティティの責任を説明します。
ところで、UMLの優れた非常に短い紹介は次のとおりです。
データモデルは、テーブル、列、関係などのDBスキーマ定義に重点を置いています。
ドメインモデルは、概念(オブジェクトのクラス)、動作(メソッド/ロジック)、および関係を含むビジネスドメインに焦点を合わせています。
どちらの場合も、カーディナリティは関係に使用されます(たとえば、1:1、1:多く、0:多く、...)。
とはいえ、理想的には、データモデルとドメインモデルを密接に関連付ける必要があります。つまり、名前がPerson、...とMailingAddress、...がNAME列のPERSONテーブルに関連付けられ、FKがMAILING_ADDRテーブルに関連付けられます。エントリ。ロジックがホストされる場所を決定する必要があります。プロシージャやトリガーなどを介して、ソフトウェアシステムのオブジェクトとDBのどちらでホストするかを決定する必要があります。
ドメインモデルとデータモデルは、新しいトップダウンモデリングテクノロジーとほとんど同じだと思います。つまり、クラス図でモデル化して、データベースのステレオタイプのみを図に追加できます。私が使用しているツールを使用すると、ejb3アノテーションはすぐにコードと同期されます。次のステップは、マッパーを使用してデータベースを作成することだけです。このテクノロジーはJavaでのみ機能します
後世のためにここでいくらかの明確さを提供することが重要だと思います。
データモデルは、情報を構造化して表現する方法の設計です。構造とは、「第五正規形」のような懸念を意味します。表現とは、整数、浮動小数点、文字列などのコンピューターのシリアル化を選択することを意味します。
ドメインモデルという用語には、実際には2つの複雑な意味があります。
- 世界の実在または架空のものの本質的な特性のモデル。この種のモデルでは、クラスは人間の概念化を表し、インスタンスは世界のものです。たとえば、「Person」クラスには、あなたと私を含むインスタンスがあり、本質的な特性は、すべてのPersonに母親がいることです。この種のモデルは、概念オントロジーまたは概念モデルと呼ばれることが多く、意味を提供することを目的としています。
- 通常、何らかのシステムを念頭に置いた、世界の物事について必要な情報のモデル。この種のモデルでは、クラスは世界の物事について保存する必要のある情報を表します。たとえば、「Person」クラスには、名、姓、生年月日、現在の身長、現在の体重など、あなたと私に関する必要な情報を表すインスタンスが含まれます。特定のシステムの目的のために、その情報は必要とされないので、この情報はしばしば私たちの母親のようなすべての本質的な特徴を含んでいません。この種のモデルは、情報モデル、概念データモデル、または運用オントロジー。
UML言語とOWL言語の両方を使用して、いずれかの種類のドメインモデルを表すことができます。どちらもドメインの分析に使用されるため、分析モデルと見なすことができます。1つはドメイン内のものを理解するために使用され、もう1つはドメイン内のもののための特定のソフトウェアまたはデータベースシステムを構築するための要件を収集するために使用されます。両方とも必要であり、残念ながら、通常、分析モデルを構築している人々が自分たちがモデル化しているものについて混乱しているように、それらは混同されています!