7.3 约束 7.3.1 映射基数

7.3 约束

E-R企业模式可以定义一些数据库中的数据必须要满足的约束。这一节讨论映射基数以及参与约束。

7.3.1 映射基数

映射基数(mapping cardinality),或基数比率,表示一个实体通过一个联系集能关联的实体的个数。映射基数在描述二元联系集时非常有用,尽管它们可以用于描述涉及多于两个实体集的联系集在这一节中,我们将只集中在二元联系集上。
对于实体集A和B之间的二元联系集R来说,映射基数必然是以下情况之一:

  • 一对一(one-to-one)。A中的一个实体至多与B中的一个实体相关联,并且B中的一个实体也至多与A中的一个实体相关联。
  • 一对多( one-to-many)。A中的一个实体可以与B中的任意数目(零个或多个)实体相关联,而B中的一个实体至多与A中的一个实体相关联
  • 多对一( many-to-one)。A中的一个实体至多与B中的一个实体相关联,而B中的一个实体可以与A中任意数目(零个或多个)实体相关联
  • 多对多(many-to-many)。A中的一个实体可以与B中任意数目(零个或多个)实体相关联,而且B中的一个实体也可以与A中任意数目(零个或多个)实体相关联

显然,一个特定联系集的适当的映射基数依赖于该联系集所建模的现实世界的情况。
作为例子,考虑advisor联系集。

  • 如果在一所特定的大学中,一名学生只能由一名教师指导,而一名教师可以指导多个学生,那么instructorstuden.的联系集是一对多的。
  • 如果一名学生可以由多名教师指导(比如学生可以由多名教师共同指导),那么此联系集是多对多的。