实体和关系 (EDM)
实体数据模型 (EDM) 是一个实体-关系 (ER) 模型。在典型的业务 (LOB) 应用程序中,数据的结构在应用程序设计的早期阶段是抽象的。设计必须指定应用程序将如何在逻辑结构中包含各种数据。例如,订单、客户、订单行、地址、供应商、产品和员工将由数据结构表示,其中一些非常复杂。在确定基本概念之后,实体将成为数据结构的所有详细信息的正式规范。
例如,Customer 数据类型设计为包含类似联系人姓名、公司名称、地址和每个客户的唯一标识符等此类详细信息。Order 类型可能包含订单日期、订单行、截止日期、唯一标识符以及其他数据。与大多数其他数据模型类似,EDM 将订单与发出此订单的客户之间的逻辑连接表示为关系。
下图阐述了数据结构的一些详细信息,并使用 EDM 指定的实体和关系概念为它们建模。在此图中,实体由矩形表示,而关系由矩形之间的直线表示。矩形内的文本表示实体的属性。
在 EDM 中,只有顶级概念才被称为实体。在本图中,Customer 是一个顶级概念,在模型中它作为一个实体。在 EDM 中,Customer 实体派生自基本 EntityType。
从属数据元素称为实体的属性。Customer 实体具有多个属性:CustomerID、CompanyName、ContactName、Address 和 Phone。其中的每个属性都具有数据类型。例如,CustomerID 是字符串,CompanyName 和 ContactName 也同样是字符串。
在本图中,Address 属性与其他属性不同,因为它具有包含各种信息的内部结构。在 EDM 中,嵌套的数据结构(例如,此地址)在建模时可作为一个实体,然后使用关联和导航属性将它连接到它在其中作为一个属性的实体。
Customer 数据类型和 Address 数据类型相似,因为它们两者都具有由多个属性组成的内部结构;但在语义和操作方面,Customer 不同于 Address。Customer 很可能是查询或数据修改操作的单位,并具有持久性。另一方面,Address 始终以 Customer 数据类型存在,通常不单独使用。
可以使用关联对实体之间的关系建模。关联是实体之间的关系,如 Customer 与 Order 之间的关系。每个 Order 都必须具有相应的 Customer。Order 和 Customer 在逻辑上是相关的,但作为独立的实体存在。有关关联关系的更多信息,请参阅关联 (EDM)。
一个实体在逻辑上控制另一个实体(如 Order 与其 OrderLine 项)所依据的关系也由关联关系来表示。每个 Order 都至少由一个 OrderLine 组成。例如,如果 Customer 订购产品 #49,则有关所订购项的信息包含一个 OrderLine。如果没有 Order,则 OrderLine 不可能存在。