更新时间:2022-11-16 来源:黑马程序员 浏览量:
关系模型由IBM公司研究员Edgar Frank Codd于1970年发表的论文中提出,经过多年的发展,已经成为目前最常用、最重要的模型之一。
在关系模型中有一些基本的概念,具体如下。
(1)关系(Relation)。关系一词与数学领域有关,它是集合基础上的一个重要的概念,用于反映元素之间的联系和性质。从用户角度来看,关系模型的数据结构是二维表,即通过二维表来组织数据。一个关系对应一张二维表,表中的数据包括实体本身的数据和实体间的联系。
下面通过图1演示一个简单的学生信息二维表。
(2)属性(Attribute)。二维表中的列称为属性,每个属性都有一个属性名。
(3)元组(Tuple)。二维表中的每一行数据称为一个元组。
小提示:根据不同的习惯,属性也可以称为宇段(Field),元组也可以称为记录(Record)。
(4)域(Domain)。域是指属性的取值范围,例如,性别属性的域为男、女。
(5)关系模式(Relation Schema)。关系模式是关系的描述,通常可以简记为“关系名(属性1,属性2,…,属n)”。例如,图1-9中的二维表的关系模式如下。
学生(学号,姓名,性别,出生年月)
(6)键(Key)。在二维表中,若要唯一标识某一条记录,需要用到键(又称为关键字、码)。例如,学生的学号具有唯一性,学号可以作为学生实体的键。而学生姓名可能存在重名,不适合作为键。通过键可以为两张表建立联系,如图1所示。
表1 学生与班级表
在图1中,班级表中的“班级号”是该表的键,学生表中的“班级号”表示学生所属的班级,两者建立了一对多的联系,即一个班级中有多个学生。其中,班级表的“班级号”称为主键(Primary Key),学生表的“班级号”称为外键(Foreign Key)。
学生与课程的多对多联系,可以通过中间表来实现,如图2所示。
表2 学生表与课程表
在图2中,学生表与课程表之间通过学生选课表关联。学生选课表将学生与课程的多对多关系拆解成两个一对多关系,即一个学生选修多门课,一门课被多个学生选修。