实体(集)间的联系

举报
TiAmoZhang 发表于 2024/06/13 09:21:11 2024/06/13
【摘要】 在现实世界中实体集不是孤立存在的,它们之间的联系是错综复杂的,所以,在信息世界中不但要关心每一个实体集、属性,还要关心实体集之间的联系。联系分为两类:一类是实体内部的联系,反映的是一部分属性值与另一部分属性值之间的决定关系或依赖关系,即字段间的联系;另一类是实体集间的联系,反映在数据上就是记录间的联系。 关于实体内部的联系重点关心的是关键字,它起到决定作用,其他属性依赖关键字,由于在规范化理论中

在现实世界中实体集不是孤立存在的,它们之间的联系是错综复杂的,所以,在信息世界中不但要关心每一个实体集、属性,还要关心实体集之间的联系。联系分为两类:一类是实体内部的联系,反映的是一部分属性值与另一部分属性值之间的决定关系或依赖关系,即字段间的联系;另一类是实体集间的联系,反映在数据上就是记录间的联系。

关于实体内部的联系重点关心的是关键字,它起到决定作用,其他属性依赖关键字,由于在规范化理论中要进行详细讨论,因此在这里重点讨论实体间的联系。根据参与联系的实体集的数目不同,把联系分为二元联系和多元联系。

 

01、实体(集)间的联系
(1) 二元联系:只有两个实体集参与的联系称为二元联系。二元联系有以下三种类型。

① 一对一联系。

设有两个实体集A、B,如果对于实体集A中的每一个实体,B中至多有一个实体与之有联系,反之亦然,则称A、B有一对一联系(1∶1联系)。

例如,学校实体集A与校长实体集B间的联系是1∶1的。因为一个学校只有一个校长(正校长),反过来,一个校长只对应一个学校,即一个校长只能在一个学校担任校长职务。图1表示了一对一联系。

■ 图1 一对一联系

② 一对多联系。

设有两个实体集A、B,若A中每个实体与B中任意个实体(包括零个)相联系,而B中每个实体至多和A中一个实体有联系,则称A和B是一对多联系(1∶n联系)。

例如,学校实体集A与学生实体集B间的联系是1∶n的。因为一个学校可以有多个学生,反过来,一个学生只对应一个学校。再如,工厂与职工、公司与职员、班长与同学、教练与运动员等都是1∶n的联系。

把1∶n联系倒转过来便成为n∶1的联系。例如,学生实体集与学校实体集之间的联系是n∶1的。图2表示了一对多联系。


■ 图2 一对多联系

③ 多对多联系。

设有两个实体集A、B,若两个实体集A、B中的每一个实体都和另一个实体集中任意个实体(包括零个)有联系,则称A、B是多对多联系(m∶n联系)。

例如,教师实体集A与学生实体集B间的联系是m∶n的。因为教师实体集中的任何一个教师可以有多个学生(也可能一个学生也没有),而学生实体集中的每一个学生也可以有多个教师。再如,学生与课程、教师与课程、图书与借书人等都是m∶n的联系。图3表示了多对多联系。

 

■ 图3 多对多联系

1∶1联系是1∶n联系的特例,而1∶n联系又是m∶n联系的特例。它们之间的包含关系如图4所示。

■ 图4 二元联系的包含关系

(2) 多元联系:参与联系的实体集的个数≥3时,称为多元联系。与二元联系一样,多元联系也可区分为1∶1、1∶n和m∶n三种。例如,用来描述学生、教师和课程实体集之间的“教学”联系是三元联系,一个教师可以讲授多门课程,并且可以有多个学生学习该课程;一门课程不但可以有多个学生学习,还可以有多个教师来讲授;一个学生可以有多个教师为其讲授多门课程,如图5所示。

■ 图5 三元关系

除了上述二元联系和三元联系以外,还有一种联系叫自反联系,它描述了同一实体集内两部分实体之间的联系,是一种特殊的二元联系。两部分实体之间的联系也可以区分为1∶1、1∶n和m∶n三种。例如,在“学生”这一实体集中存在班长与同学之间1∶m的联系;在课程实体集中存在一门课程与另外一门(或几门)课程之间的先修课联系。

关于实体集之间的联系,语义起到很大作用,也可以说是现实世界的实际情况的真实体现。例如,一个班主任只能带一个班级,一个班级只能有一个班主任,那么班主任和班级之间就是1∶1的联系; 但是如果一个班主任可以带多个班级,一个班级只能有一个班主任,那么班主任和班级之间就是1∶m的联系。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。