エンティティ データ モデルEntity Data Model

Entity Data Model (EDM) は、格納される形式に関係なく、データ構造を記述する一連の概念です。The Entity Data Model (EDM) is a set of concepts that describe the structure of data, regardless of its stored form. EDM は、1976 年に Peter Chen により記述されたエンティティ リレーションシップ モデルを取り入れていますが、これを土台にして利用法が拡張されています。The EDM borrows from the Entity-Relationship Model described by Peter Chen in 1976, but it also builds on the Entity-Relationship Model and extends its traditional uses.

EDM は、データを多くの形式で格納する場合につきまとう問題に対応しています。The EDM addresses the challenges that arise from having data stored in many forms. たとえば、データをリレーショナル データベース、テキスト ファイル、XML ファイル、スプレッドシート、およびレポートに格納している企業について考えてみます。For example, consider a business that stores data in relational databases, text files, XML files, spreadsheets, and reports. この状況は、データ モデリング、アプリケーション設計、データ アクセスに深刻な問題を提示しています。This presents significant challenges in data modeling, application design, and data access. データ指向のアプリケーションを設計する場合、データ アクセス、ストレージ、およびスケーラビリティの効率性を損なうことなく、効率的で保守性に優れたコードを作成することが問題になります。When designing a data-oriented application, the challenge is to write efficient and maintainable code without sacrificing efficient data access, storage, and scalability. データがリレーショナル構造の場合は、データ アクセス、ストレージ、およびスケーラビリティの効率性が非常に高くなるものの、効率的で保守性に優れたコードを書くことが難しくなります。When data has a relational structure, data access, storage, and scalability are very efficient, but writing efficient and maintainable code becomes more difficult. オブジェクトの構造をデータには、上のトレードオフは取り消されます。効率的なデータ アクセス、ストレージ、およびスケーラビリティを犠牲には効率的で保守しやすいコードを記述します。When data has an object structure, the trade-offs are reversed: Writing efficient and maintainable code comes at the cost of efficient data access, storage, and scalability. これらの要因の間で適切なバランスを取れる場合でも、データを 1 つの形式から別の形式に移動する際に新しい問題が発生します。Even if the right balance between these trade-offs can be found, new challenges arise when data is moved from one form to another. Entity Data Model は、ストレージ スキーマに依存しないエンティティとリレーションシップでデータ構造を記述することで、これらの問題に対応しています。The Entity Data Model addresses these challenges by describing the structure of data in terms of entities and relationships that are independent of any storage schema. このため、アプリケーションの設計と開発でデータの格納形式が問題になりません。This makes the stored form of data irrelevant to application design and development. さらに、エンティティおよびリレーションシップによりアプリケーションで使用されるデータ構造 (格納形式ではなく) が記述されるため、アプリケーションの進化に伴ってこれらを進化させることができます。And, because entities and relationships describe the structure of data as it is used in an application (not its stored form), they can evolve as an application evolves.

conceptual model は、データ構造をエンティティおよびリレーションシップとして表現したもので、一般的には、EDM の概念を実装するドメイン固有言語 (DSL) で記述されます。A conceptual model is a specific representation of the structure of data as entities and relationships, and is generally defined in a domain-specific language (DSL) that implements the concepts of the EDM. 概念スキーマ定義言語 (CSDL)このようなドメイン固有言語の例を示します。Conceptual schema definition language (CSDL) is an example of such a domain-specific language. 概念モデルで記述されるエンティティおよびリレーションシップは、アプリケーションにおけるオブジェクトとアソシエーションの抽象化と考えることができます。Entities and relationships described in a conceptual model can be thought of as abstractions of objects and associations in an application. これにより開発者は、ストレージ スキーマを気にすることなく概念モデルに集中でき、効率的で保守性に優れたコードを書けるようになります。This allows developers to focus on the conceptual model without concern for the storage schema, and allows them to write code with efficiency and maintainability in mind. 同時にストレージ スキーマの設計者は、データ アクセス、ストレージ、およびスケーラビリティの効率性に集中できます。Meanwhile storage schema designers can focus on the efficiency of data access, storage, and scalability.

このセクションの内容In This Section

このセクションのトピックでは、Entity Data Model の概念について説明します。Topics in this section describe the concepts of the Entity Data Model. EDM を実装する DSL には、ここで解説した概念を含める必要があります。Any DSL that implements the EDM should include the concepts described here. なお、 ADO.NET Entity Framework CSDL を使用して概念モデルを定義します。Note that the ADO.NET Entity Framework uses CSDL to define conceptual models. 詳細については、「 CSDL Specification」を参照してください。For more information, see CSDL Specification.

Entity Data Model キーの概念Entity Data Model Key Concepts

Entity Data Model:名前空間Entity Data Model: Namespaces

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

Entity Data Model:継承Entity Data Model: Inheritance

アソシエーション Endassociation end

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

アソシエーション セットassociation set

アソシエーション セット Endassociation set end

アソシエーション型association type

複合型complex type

エンティティ コンテナーentity container

エンティティ キーentity key

エンティティ セットentity set

エンティティ型entity type

facetfacet

外部キーのプロパティforeign key property

モデル宣言関数model-declared function

モデル定義関数model-defined function

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

プロパティproperty

参照整合性制約referential integrity constraint

関連項目See also