数据库技术与应用新概念教程(第二版)
上QQ阅读APP看书,第一时间看更新

1.2.1 关系术语

1.二维表

二维表是完全由整行和整列组成的最简单的表格,如图1-12所示。

图1-12 学生二维表

二维表具有如下特点:

(1)每个二维表均有一个表名。例如,“学生”的二维表表名为“学生”。

(2)二维表由两大部分组成,即第一行的表头和下面的多行数据。

(3)二维表的每一列均由一个列名和若干数据组成,且同一列的数据值均来自同一定义域。例如,“学生”二维表第一列的列名为“学号”,其所属数据值为2015001等。

(4)二维表从第二行开始,每行数据均代表一个实体信息。例如,在“学生”二维表中,从第二行开始的每一行都为一个学生的信息。

(5)二维表中每个单元格都应是完整的,即每个单元格均不能划分为区别其他单元格形态的若干小的单元格,同时也不能将若干单元格合并为区别于其他单元格形态的更大单元格。图1-13所示的表格就不是符合要求的二维表。

图1-13 非二维表

2.关系

简单地说,一个关系就是一张二维表,每一个关系都有一个关系名作为标识,通常将二维表表名作为其关系名。例如,“学生”二维表可定义成关系名为“学生”的关系。

3.元组

关系中一行都是一个元组,也称为一条记录。例如,“学生”二维表中的关系包括了4个记录。元组体现出关系的值。

4.属性

关系中的一列就是一个属性,也称为一个字段。例如,“学生”二维表中的关系包括“学号”“姓名”“性别”“出生年月”和“专业名称”5个属性。每个属性由属性名和属性值组成,例如,“学生”二维表中关系的第一个属性名为“学号”,其属性值为2015001等。

5.关系模式

关系模式是对关系的描述,即对应二维表的表头,其格式为:

关系名(属性1,属性2,…,属性n)

例如,“学生”二维表中关系的关系模式为:学生(学号,姓名,性别,出生年月,专业名称)。

6.域

关系的每个属性值通常都有一个允许的取值范围,该取值范围称为属性的域。例如,“学生”二维表中属性“性别”的域为{男,女},属性“专业名称”的域为学生所属学校开设的所有专业。

7.候选键

可以唯一确定一个元组最小属性的集合称为候选键,也就是概念模型中的候选码。一个关系至少有一个候选键。例如,“学生”二维表中,“学号”是候选键,如果学生中没有重名的,则“姓名”也是候选键。

8.主键

一个关系中可能有多个候选键,从中选定一个常用候选键,这个常用的候选键称为主键。例如,“学生”二维表中,可选定“学号”作为主键,一般表示为:

学生(学号,姓名,性别,出生年月,专业名称)

在选定为主键的属性下添加下画线,以区别其他属性。

9.外键

如果关系A中的某个属性或属性组不是关系A的主键,而是关系B的主键,则称该属性或属性组为关系A的外键。例如,如下两个关系模式:

学生(学号,姓名,性别,出生年月,专业名称)

专业(专业名称,负责人姓名,联系电话)

其中,“学生”关系的主键为“学号”,“专业”关系的主键为“专业名称”,因此,在“学生”关系中的属性“专业名称”即为其外键。外键的主要作用是建立关系间的联系。

10.关系的性质

关系除了具有二维表的特点之外,还具有以下性质:

(1)关系中每一列的属性值必须来自同一个域。

(2)关系中不同的属性可以出自同一个域,但必须给予不同的属性名。

(3)关系中属性的排列顺序可以任意改变。

(4)关系中任意两个元组不可以完全相同。

(5)关系中元组的排列顺序可以任意改变。

(6)关系中的任意一个属性值必须是不可再分的数据项。