3.1 关系数据模型和关系数据库
关系模型由关系模型的数据结构、关系模型的操作集合和关系模型的完整性约束三部分组成,这三部分也称为关系模型的三要素。
3.1.2 数据操作
数据库数据的操作主要包括四种:查询、插入、删除和更新数据。
3.2.3 数据完整性约束
关系模型中一般将数据完整性分为三类:实体完整性、参照完整性和用户定义的完整性。
3.2 关系模型的基本术语与形式化定义
3.2.1 基本术语
1.关系:关系就是二维表,二维表的名字就是关系的名字。
2.属性:二维表中的每一列称为一个属性,每个属性(字段)有一个名字,称为属性名(字段名,属性名不能重复)。二维表中对应某一列的值称为属性值,二维表中列的个数称为关系的元数。如果一个二维表有n个列,则称其为n元关系。
3.值域:二维表中属性的取值范围称为值域。
4.元组:二维表中一行数据称为一个元组(记录)。
5.分量:元组中的每一个属性值称为元组的一个分量,n元关系的每个元组有n个分量。
6.关系模式:二维表的结构称为关系模式,或者说,关系模式就是二维表的表框架或表头结构。设有关系名R,属性分别为,
,...,
,则关系模式可以表示为:R(
,
,...,
)。
7.关系数据库:一个关系模型的所有关系的集合称为关系数据库。
8.候选键:如果一个属性或属性集的值能够唯一标识一个关系的元组而又不包含多余的属性(属性值不可重复,候选键又称为候选关键字或候选码)。
9.主键:当一个关系中有多个候选键时,可以从中选择一个作为主键(主码/主关键字)。每个关系只能有一个主键(主键不能为空)。
10.主属性和非主属性:包含在任一候选键中的属性称为主属性;不包含在任一候选键中的属性称为非主属性。
3.2.2 形式化定义
(1)关系中的每个分量都必须是不可再分的最小属性。
(2)同一个关系中的元组不能重复。
3.3 关系代数
1.传统的集合运算:集合的广义笛卡尔积运算、并运算、交运算和差运算。
2.专门的关系运算:选择、投影、连接和除。
关系运算中的运算符可以分为四类:集合运算符、专门的关系运算符、比较运算符和逻辑运算符。
3.3.1 传统的集合运算
3.3.2 专门的关系运算
1.选择:从指定的关系中选出满足给定条件的元组而组成一个新的关系。选择运算表示为:
条件(表名)(学号前有0加引号)
2.投影:从关系R中选取若干属性,并用这些属性组成一个新的关系。投影运算表示为:
属性名列表(表名)(多个属性之间用逗号隔开)
3.连接:连接运算主要有如下几种形式:
(1)连接;
(2)等值连接;(当=‘0’的连接)
(3)自然连接;(去掉重复列)
(4)外部连接(简称外连接);
(5)半连接。
最常用的两个连接有:等值连接、自然连接。
外连接有三种形式:左外连接RS、右外连接R
S和全外连接R
S。
左外连接:把连接符号左边的关系中不满足连接条件的元组也保留到连接后的结果中,并在连接结果中将该元组所对应的右边关系的各个属性均置成空值(NULL)。
右外连接:把连接符号右边的关系中不满足连接条件的元组也保留到连接后的结果中,并在连接结果中将该元组所对应的左边关系的各个属性均置成空值(NULL)。
全外连接:把连接符号两边的关系中不满足连接条件的元组均保留到连接后的结果中,并在连接结果中将不满足连接条件的各元组相关属性均置成空值(NULL)。
4.除:除法的简单描述:设关系S的属性是关系R的属性的一部分,则R / S为这样一个关系:此关系的属性是由属于R但不属于S的所有属性组成。
除法的一般形式:设有关系R(X,Y)和S(Y,Z),其中X、Y、Z为关系的属性组,则:
R(X,Y)/ S(Y,Z)=R(X,Y)/ 投影Y(S)