实体数据模型关系

关系是两个或更多实体之间的逻辑连接。应用程序中有意义的数据包括其各组成部分之间的关系。关系对于数据建模是必不可少的,而关系数据库模型并不显式支持关系。而是使用主键、外键和引用完整性来实现由关系隐含的某些约束。

相比较而言,实体数据模型 (EDM) 为数据模型中的关系提供显式支持,这样就可以获得灵活的建模功能。关系支持延伸到 EDM 查询,同时允许基于关系进行显式引用和导航。

EDM 支持称为关联的对等关系模型。有关详细信息,请参见 关联 (EDM)

在以下情形中,关联的必要性是显而易见的:客户发出一个或多个订单;每个订单包含用于标识所订购产品的订单详细信息;所订购产品将由一个或多个供应商供货等等。

在 EDM 中,实体之间的关联是在定义实体和关联的架构中指定的。

关系的特征

关系的特征由度、重数和方向表示。在数据建模方案中,关系具有度(一元、二元、三元或 n 元)和重数(一对一、一对多或多对多)。方向对于某些关联可能很重要,例如,当关联是相同类型的实体之间的关联时。

以下各图中显示关系的特征。

一元关系图二进制关系图三元关系图

在每幅图中,关系的度均由矩形的数量表示。关系由菱形形状表示。菱形与矩形之间的直线表示关系的重数。单条直线表示一对一关系。在连接到类型的位置分叉为三个线段的直线表示一对多或多对多关系的多个端。

关系的度指的是在其中存在此关系的类型数。关系的最常见的度是二元,它与两种类型相关。在一元关系中,某种类型的一个实例与同一类型的另一个实例相关,例如,一个员工与另一个员工之间的经理关系。三元关系与三种类型相关,而 n 元关系与任意数量 (n) 的类型相关。三元关系和 n 元关系的作用主要体现在理论方面。EDM 支持一元关系和二元关系。

重数

重数是某个类型的相关实例数。

例如,在书与其作者之间存在二元关系,其中,每本书至少具有一个作者。此关系在类 Book 与类 Author 之间指定,但此关系的重数并非一定是一本书对应于一个作者。关系的重数指示一本书具有的作者数和每位作者已编写的书数。此示例中关系的度是二元的。关系的重数为多对多。

方向

在 EDM 中,所有关系都是逆向关系。可以从任一端对 EDM 关联取反。

如果关联两端的实体属于同一类型,则 EDM 关联 End 属性 (Property) 的角色属性 (Attribute) 可用来指定方向性。员工与该员工的经理之间的关联在语义上不同于关联的两端。关联的两端都是员工,但它们具有不同的角色属性。有关使用引用约束实现此情形的示例,请参见Association 元素 (SSDL)

以下主题包含有关关系的更多信息。

本节内容

  • 关联 (EDM)
    描述对对等关系进行建模的关系。

另请参见

概念

实体数据模型类型
实现实体 (EDM)
实现关联 (EDM)