1
数据库原理与应用技术
1.4.2.1 3.2.1 属性间的联系
3.2.1 属性间的联系

1. 一对一联系

设A、B为某种关系模式的两个属性的值集,如果A中的任意具体值与B中至多有一个值相对应,且B中任意具体值与A中至多有一个值相对应,则称A、B这两个属性之间的联系是一对一联系,记为1∶1联系。例如,在学生关系中,如果姓名没有重名,那么学号与姓名这两个属性之间的联系是一对一的联系,即学号可以决定姓名,姓名也可以决定学号。

2. 一对多联系

设A、B为某种关系模式的两个属性的值集,如果A中的一个值至多与B中的一个值相对应,而B中的一个值却可以与A中的多个值相对应,则称这两个属性之间的联系为从B到A的一对多联系,记为1∶m联系。例如,在学生关系中,系名与学号之间的联系是一对多联系,一个学号对应一个系名,而一个系名却可以对应多个学号。

3. 多对多联系

设A、B为某种关系模式的两个属性的值集,如果A中的一个值与B中的多个值相对应, B中的一个值也同样与A中的多个值相对应,则称这两个属性之间的联系是多对多的联系,记为m∶n联系。例如,在学生和课程的选修关系中,一个学生可以选修几门课,同一门课也可以有多个学生同时选修。在选修关系中学号和课程号之间的联系是多对多联系。

与实体之间的关系一样,属性间的三类关系之间也存在着包含关系,即一对一是一对多的特例,一对多又是多对多的特例。

实体间的关系实际上是实体间相互依赖又相互制约的关系,而属性间的关系则是属性值之间的相互依赖又相互制约的关系。后一种关系就是我们所说的数据依赖。数据依赖最重要的有两种:函数依赖和多值依赖。本书重点讨论函数依赖。