实体之间的联系类型

来自计算思维百科
跳转至: 导航搜索

现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体内部的联系(relationship)和实体之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系,而实体之间的联系是指不同实体集之间的联系。

概念

数据库设计中,将客观存在并可相互区别的事物称为实体,实体可以是具体的人、事、物,也可以是抽象的概念或联系。例如,一个学生、学生的一次选课等。

现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体内部的联系(relationship)和实体之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系,而实体之间的联系是指不同实体集之间的联系。两个实体之间的联系可分为如下3种类型。

一对一联系(1:1)

如果对于实体集 A 中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1 : 1。例如,电影院中观众和座位之间、乘车旅客和车票都是一对一的联系。

一对多联系(1:n)

如果对于实体A中的每一个实体,实体集B 中有n个实体(n³0)与之联系,反之,对于实体B中的每一个实体,实体集A中至多只有一个与之相联系,则称实体集A与实体集B有一对多联系。记为1 : n。例如,公司对部门之间、班级对学生之间都是一对多联系。

多对多联系(m:n)

如果对于实体A中的每一个实体,实体集B中有n 个实体(n³0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m 个实体(m³0)与之联系,则称实体集A与实体集B具有多对多联系。记为m : n。例如,课程与学生之间、图书与读者之间都是多对多的联系。实体之间的联系可以用E-R方法(即实体-联系方法)图进行表示,图1即为学生选课的E-R图。

图1 学生与课程之间联系的E-R图

应用

分析实际应用中所包含的实体及实体之间的联系,则可以建立该应用的E-R模型。然后根据E-R模型,通过转化则可得到对应的关系模型。不同类型的实体之间的联系,均能通过关系模型进行表达。

若两个实体存在一对一的联系,则每个实体可用一个关系表示,并将一个实体的关键字作为属性加入到另一实体的关系中。例如,学生与学院的关系,属于一对一的关系,则可设计如下的二维关系表:

① 学生关系表:学生(学号,姓名,性别,出生日期,学院名称,…)

② 学院关系表:学院(学院名称,学院地址,联系电话,…)

若两个实体存在一对多的联系,则每个实体可用一个关系表示,并将“多”所对应的实体的关键字作为属性加入到“一”所对应的实体关系中。例如教师与课程之间的联系,属于一对多的联系,则可设计如下的二维关系表:

① 教师关系表:教师(教工号,教师姓名,职称,学院名称,课程号,….)

② 课程关系表:课程(课程号,课程名,课程时间,课程地点…)

若两个实体存在多对多的联系,则每个实体用一个关系表示外,还需另外增加一个关系表是两个实体之间的关联。例如,学生与课程之间存在多对多的联系,那么可以建立如下的二维关系表来描述该模型。

①学生关系表:学生(学号,姓名,性别,出生日期,学院名称,…)

②课程关系表:课程(课程号,课程名,课程时间,课程地点…)

③选课关系表:选课(学号课程号,成绩,…)