Share via


Entity Data Model

Entity Data Model (EDM) は、格納される形式に関係なく、データ構造を記述する一連の概念です。 EDM は、1976 年に Peter Chen により記述されたエンティティ リレーションシップ モデルを取り入れていますが、これを土台にして利用法が拡張されています。

EDM は、データを多くの形式で格納する場合につきまとう問題に対応しています。 たとえば、データをリレーショナル データベース、テキスト ファイル、XML ファイル、スプレッドシート、およびレポートに格納している企業について考えてみます。 この状況は、データ モデリング、アプリケーション設計、データ アクセスに深刻な問題を提示しています。 データ指向のアプリケーションを設計する場合、データ アクセス、ストレージ、およびスケーラビリティの効率性を損なうことなく、効率的で保守性に優れたコードを作成することが問題になります。 データがリレーショナル構造の場合は、データ アクセス、ストレージ、およびスケーラビリティの効率性が非常に高くなるものの、効率的で保守性に優れたコードを書くことが難しくなります。 データがオブジェクト構造の場合は、これが反対になり、効率的で保守性に優れたコードを作成しやすくなる一方で、データ アクセス、ストレージ、およびスケーラビリティの効率性が損なわれます。 これらの要因の間で適切なバランスを取れる場合でも、データを 1 つの形式から別の形式に移動する際に新しい問題が発生します。 Entity Data Model は、ストレージ スキーマに依存しないエンティティとリレーションシップでデータ構造を記述することで、これらの問題に対応しています。 このため、アプリケーションの設計と開発でデータの格納形式が問題になりません。 さらに、エンティティおよびリレーションシップによりアプリケーションで使用されるデータ構造 (格納形式ではなく) が記述されるため、アプリケーションの進化に伴ってこれらを進化させることができます。

conceptual model は、データ構造をエンティティおよびリレーションシップとして表現したもので、一般的には、EDM の概念を実装するドメイン固有言語 (DSL) で記述されます。 概念スキーマ定義言語 (CSDL) もこのようなドメイン固有言語の 1 つです。 概念モデルで記述されるエンティティおよびリレーションシップは、アプリケーションにおけるオブジェクトとアソシエーションの抽象化と考えることができます。 これにより開発者は、ストレージ スキーマを気にすることなく概念モデルに集中でき、効率的で保守性に優れたコードを書けるようになります。 同時にストレージ スキーマの設計者は、データ アクセス、ストレージ、およびスケーラビリティの効率性に集中できます。

このセクションの内容

このセクションのトピックでは、Entity Data Model の概念について説明します。 EDM を実装する DSL には、ここで解説した概念を含める必要があります。 ADO.NET Entity Framework では CSDL を使用して概念モデルを定義します。 詳細については、「Conceptual Schema (CSDL)」を参照してください。

Entity Data Model キーの概念

Entity Data Model: 名前空間

Entity Data Model: プリミティブ データ型

Entity Data Model: 継承

アソシエーション End

アソシエーション End の多重度

アソシエーション セット (Entity Data Model)

アソシエーション セット End

アソシエーション型

複合型

エンティティ コンテナー

エンティティ キー

エンティティ セット

エンティティ型

ファセット

外部キーのプロパティ

モデル宣言関数

モデル定義関数

ナビゲーション プロパティ

プロパティ

参照整合性制約

参照

その他のリソース

ADO.NET Entity Data Model Tools
.edmx File Overview
CSDL Specification