3.1 关系数据模型和关系数据库
关系数据模型由关系模型的数据结构、关系模型的操作系统和关系模型的完整性约束三个部分组成,这三个部分也称为关系模型的三要素。
3.1.1 数据结构
关系数据模型源于数学,她用二维表来组织数据,而这个二维表在关系数据库中就称为关系。
3.1.2 数据操作
关系数据模型给出了关系操作的能力,关系数据模型中的操作包括:
传统的关系运算:并、交、广义笛卡尔乘积。
专门的关系运算:选择、投影、连接、除。
有关的数据操作:查询、插入、删除和更改。
关系模型的操作对象是集合或表而不是单个的数据行,也就是说,关系模型中操作的数据以及操作的结果都是完整的集合或表,这些集合可以是只包含一行数据的集合,也可以是不包含任何数据的空集合。而非在关系模型数据库中,典型的操作是一次一行或一次一个记录。因此,集合处理能力是关系型数据库,区别于其它类型数据库的一个重要特征。
3.2 关系模型的基本术语与形成化定义
3.2.1 基本术语
1.关系
关系就是二维表,二维表的名字就是关系的名字。
2.属性
二维表中的每个列称为一个属性,每个属性或字段,有一个名字称为属性名,二维表中对应某一列的值称为属性值,二维表中列的个数称为关系的元数。
3.值域
二维表中属性的取值范围称为值域。
4.元组
二维表中的一行数据称为一个元组。
5.分量
元组中的每一个属性值称为元组的一个分量,n元关系的每个元组有n个分量。分量最小,不可再分。
6.关系模式
二维表的结构称为关系模式,或者说,关系模式就是二维表的表框架或表头结构。
7.关系数据库
对应于一个关系模型的所有关系的集合,称为关系数据库。
8.候选键
如果一个属性或属性集的值能够,唯一标识一个关系的元组,而又不包含多余的属性,则称该属性或属性极为候选键。
9.主键
当一个关系中有多个候选键时,可以从中选择一个作为主键。每个关系只能有一个主键。
主键也称为主码或关主关键字是表中的属性或属性,用于唯一地确定一个元组。逐渐可以由一个属性组成,也可以由多个属性共同组成。主键不能为空。
10.主属性和非主属性
包含在任一候选键中的属性称为主属性,不包含在任一候选键中的属性称为非主属性。
3.3 关系代数
3.3.1传统的集合运算
1.并运算:
设R和S是具有相同属性的关系。关系R和S的并记作R∪S,它是属于R,或属于S,或属于二者的所有元组的集合。
R∪S={t|t∈R∨t∈S}
2。交运算:
设R和S是具有相同属性的关系。关系R和S的交运算记作R∩S它是既属于R,又属于S的所有元组的集合。R∩S相当于R-(R-S)的缩写
R∩S={t|t∈R∧t∈S}
3.差运算:
设R和S是具有相同属性的关系。关系R和S的差记作R-S,它是属于R但不属于S的所有元组的集合。
R -S={t|t∈R∧t∈/ S}
4.笛卡尔积:
设R和S分别为n元和m元关系。R和S的笛卡尔积记作RxS,它是一个(n+m)-元关系,其每个元组的前n个分量是关系R的一个元组,后m个分量是关系S的一个元组。如果属性A同时出现在R和S中,则RxS中分别用R.A和S.A表示,以示区别。设u=(u1,…, un),v=(v1,…,vm)。u和v的串接定义为u⌒v=(u1,…, un,v1,…,vm)。
RxS={t|(∃u) (∃v)(u∈R ∧ v∈S∧t=u⌒v}
3.3.2专门的关系运算
1.选择
选择是指从指定的关系中选出满足给定条件的元组而组成的一个新的关系。
σ(〈选择条件〉)(〈关系名〉)
2.投影
投影运算是从关系R中选取若干列,并用这些属性组成一个新的关系。表示为:
Π(〈属性表〉)(〈关系名〉)
3.连接
连接运算用来连接相互之间有联系的两个关系,从而产生一个新关系。这个过程通过连接属性来实现。连接运算主要有一下几种:
- θ 连接
- 等值连接(θ连接的特例)
- 自然连接
- 外部连接(简称外连接)
- 半连接
4.除
除法的描述:
设关系S的属性是关系R的属性的一部分,则R ÷ S 为这样一个关系:
此关系的属性是由属于R但不属于S的所有属性组成R ÷ S 的任一元组都是R中某元组的一部分。但必须符合下列要求,即任取属于 R ÷ S 的一个元组 t,则t与S任一元组连接后,都为 R 中原有的元组。
除法的一般形式
设关系R(X,Y)和S(Y,Z),其中X、Y、Z为关系的属性组,则:
R ( X , Y ) ÷ S ( Y , Z ) = R ( X , Y ) ÷ ∏ Y ( S )