EDM(엔터티 데이터 모델)은 저장된 형식에 관계없이 데이터의 구조를 설명하는 개념 집합입니다. EDM은 1976년 Peter Chen이 설명한 Entity-Relationship 모델에서 차용되었지만 Entity-Relationship 모델을 기반으로 하여 기존의 용도를 확장합니다.
EDM은 데이터를 여러 형식으로 저장하여 발생하는 문제를 해결합니다. 예를 들어 관계형 데이터베이스, 텍스트 파일, XML 파일, 스프레드시트 및 보고서에 데이터를 저장하는 비즈니스를 고려합니다. 이는 데이터 모델링, 애플리케이션 디자인 및 데이터 액세스에서 중요한 과제를 제시합니다. 데이터 지향 애플리케이션을 디자인할 때 문제는 효율적인 데이터 액세스, 스토리지 및 확장성을 희생하지 않고 효율적이고 유지 관리 가능한 코드를 작성하는 것입니다. 데이터에 관계형 구조가 있는 경우 데이터 액세스, 스토리지 및 확장성이 매우 효율적이지만 효율적이고 유지 관리 가능한 코드를 작성하는 것이 더 어려워집니다. 데이터에 객체 구조가 있을 때는 절충안이 반전됩니다. 효율적이고 유지 관리하기 쉬운 코드를 작성하는 것은 효율적인 데이터 액세스, 저장소, 확장성을 희생합니다. 이러한 절충 간의 적절한 균형을 찾을 수 있더라도 데이터가 한 형식에서 다른 형식으로 이동될 때 새로운 문제가 발생합니다. 엔터티 데이터 모델은 스토리지 스키마와 독립적인 엔터티 및 관계 측면에서 데이터의 구조를 설명하여 이러한 문제를 해결합니다. 이렇게 하면 저장된 데이터 형식이 애플리케이션 디자인 및 개발과 관련이 없습니다. 또한 엔터티와 관계는 저장된 형식이 아닌 애플리케이션에서 사용되는 데이터의 구조를 설명하기 때문에 애플리케이션이 진화함에 따라 진화할 수 있습니다.
A conceptual model
는 데이터 구조를 엔터티 및 관계로 특정한 표현으로, 일반적으로 EDM의 개념을 구현하는 DSL(도메인별 언어)로 정의됩니다.
CSDL(개념 스키마 정의 언어) 은 이러한 도메인별 언어의 예입니다. 개념적 모델에 설명된 엔터티 및 관계는 애플리케이션에서 개체 및 연결의 추상화로 간주할 수 있습니다. 이를 통해 개발자는 스토리지 스키마에 대한 관심 없이 개념적 모델에 집중할 수 있으며 효율성과 유지 관리를 염두에 두고 코드를 작성할 수 있습니다. 한편 스토리지 스키마 디자이너는 데이터 액세스, 스토리지 및 확장성의 효율성에 집중할 수 있습니다.
이 섹션 안에
이 섹션의 항목에서는 엔터티 데이터 모델의 개념에 대해 설명합니다. EDM을 구현하는 모든 DSL에는 여기에 설명된 개념이 포함되어야 합니다. ADO.NET Entity Framework는 CSDL을 사용하여 개념 모델을 정의합니다. 자세한 내용은 CSDL 사양을 참조하세요.