1.3.1 关系
2025年10月12日
1.3.1 关系
关系就是一张二维表。它由若干行和列组成,其中行被称为元组,列被称为属性。在具体数据库管理系统中,一个关系对应一个表对象,每一行对应表中的一个记录,每一列对应表的一个字段。
【例1-1】表1-1是一个名为Student的关系,记录的是学生的相关信息,包括StuNo(学号)、Sex(性别)、Sname(姓名)、Age(年龄)、Class(所在班级)。
表1-1 Student关系
表1-1中给出了3个具体的元组,即3条记录,分别记录了3个学生的相关信息。如果某个属性或属性组合能唯一确定一个元组,则把该属性或属性组合称为关系的主键。在上面的例子中,Student的StuNo属性按规定,应该各不相同,该属性可以唯一确定一个元组,因此StuNo是Student关系的主键。
属性是有一定的取值范围的。上例中可以规定Age属性的取值范围为0~99之间的整数。Sname和Class属性的取值只能是长度不超过20的字符串等。属性的取值范围又叫属性的域。
关系不仅可以表示一个实体(如学生、课程),也可以用来表示实体与实体之间的联系。如学生选课关系是学生实体与课程实体之间的联系。
【例1-2】一个名为StudentCourse(学生选课)的关系,记录了学生的选课信息,包括3个属性:StuNo(学号)、CourseNo(课程号)、Score(成绩)。表1-2给出几个具体的元组。
表1-2 StudentCourse关系
在StudentCourse关系中,属性StuNo和CourseNo的组合可以唯一确定一个元组,因此它们的组合是StudentCourse关系的主键,这种主键叫组合主键,又叫复合主键。