3.1 关系数据模型和关系数据库
3.1.1 数据结构
关系数据模型源于数学,用二维表来组织数据,而二维表在关系数据库中就称为关系。
3.1.2 数据操作
关系数据模型中的操作:
传统的关系运算:并、交、差、广义笛卡尔乘积。
专门的关系运算:选择、投影、连接、除。
有关的数据操作:查询、插入、删除、更改。
3.1.3 数据完整性约束
数据完整性是一种语义概念,它包括两个方面:
1)与现实世界中应用需求的数据的相容性和正确性。
2)数据库内数据之间的相容性和正确性。
数据完整性由一组完整性规则定义,而关系模型的完整性规则是对关系的某种约束条件。
数据完整性一般分为三类:实体完整性,参照完整性,用户定义的完整性。
3.2 关系模型的基本术语与形式化定义
3.2.1 基本术语
关系模型中的有关术语:
1) 关系
关系就是二维表,二维表的名字就是关系的名字。
2)属性
二维表中的每个列称为一个属性,每个属性有一个名字称为属性名。二维表中对应某一列的值称为属性值,列的个数称为元数。
3)值域
二维表中属性的取值范围称为值域。
4)元组
二维表中一行数据称为一个元组。
5)分量
元组中的每一个属性值称为元组的一个分量。
6)关系模式
二维表的结构称为关系模式。
7)关系数据库
对应于一个关系模型的所有关系的集合称为关系数据库。
8)候选键
如果一个属性或属性集的值能够唯一标识一个关系的元组而又不包含多余的属性,则称该属性或属性集为候选键。候选键又称为候选关键字或候选码。单个属性无法做候选键。
9)主键
当一个关系中有多个候选键时,可以从中选择一个作为主键。每个关系只能有一个主键。
主键不能为空。
10)外键
如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。
11)主属性和非主属性
包含在任一候选键中的属性为主属性;不包含在任一候选键中的属性为非主属性。
3.2.2形式化定义
1. 关系的形式化定义
定义笛卡尔积;关系是一个有k个属性的元组的集合。
2. 对关系的限定
关系可以看成是二维表,但并不是所有的二维表都是关系。
关系数据库对关系有一定限定:
1)关系中的每个分量都必须是不可再分的最小属性。
2)表中列的数据类型是固定的。
3)不同的列的数据可以取自相同的值域。
4)关系表中行和列的顺序不重要。
6)同一个关系中的元组不能重复。
3.3 关系代数
关系代数的运算对象是关系,运算结果也是关系。
关系代数的运算分为两大类:传统的集合运算、专门的关系运算。
3.3.1 传统的关系运算
传统的集合运算是二目运算。
1)并运算
2)交运算
3)差运算
4)广义笛卡尔积
3.3.2 专门的关系运算
1. 选择
选择运算是从指定的关系中选出满足给定条件的元组而组成的一个新的关系。
2. 投影
投影运算是从关系R中选取若干属性,并用这些属性组成一个新的关系。
投影运算表示为:A
{t.A | t
R}
3. 连接
连接运算用来连接相互之间有联系的两个关系。
连接运算有以下几种形式:
1)θ连接
2)等值连接
3)自然连接
4)外部连接
5)半连接
连接运算中最重要也是最常用的连接有两个:等值连接和自然连接。
自然连接是一种特殊的等值连接。
外连接有三种形式:左外连接,右外连接,全外连接。
左外连接的连接形式为:R*S
右外连接的连接形式为:R*S
全外连接的连接形式为:R**S
左外连接:把连接符号左边的关系中不满足连接条件的元组也保留到连接后的结果中,并在连接结果中将该元组所对应的右边关系的各个属性均置成空值。
右外连接:把连接符号右边的关系中不满足连接条件的元组也保留到连接后的结果中,并在连接结果中将该元组所对应的左边关系的各个属性均置成空值。
全外连接:把连接符号两边的关系中不满足连接条件的元组也保留到连接后的结果中,并在连接结果中将不满足连接条件的各元组所对应的右边关系的相关属性均置成空值。
4. 除
象集:给定一个关系R(X,Y),X和Y为属性组。定义:当t[X]=x时,x在R中的象集为:
Yx = { t [Y] | tR
t [X] =x }
式中,t [Y]和t [X]分别表示R中的元组t在属性组Y和X上的分量的集合。