本章节主要从三个方面讲解:
一、关系数据模型关系数据库
二、基本术语与形式化定义
三、关系代数
一、关系模型三要素
数据结构、操作集合、完整性约束
(1)数据结构
- 关系数据模型用二维表来组织数据。
- 这个二维表在关系数据库中就称为关系。
- 关系数据库就是表或者说是关系的集合。
- 表是逻辑结构而不是物理结构。
(2) 数据操作
关系数据模型中的操作包括:
传统的关系运算:
并、交、差、广义笛卡尔乘积;
专门的关系运算:
选择、投影、连接、除;
有关的数据操作:
查询、插入、删除、更改。
(3) 数据完整性约束
数据的完整性是指保证数据正确性的特征,是一种语义概念,包括:
1.与现实世界中应用需求的数据的相容性和正确性;
2.数据库内数据之间的相容性和正确性。
二、关系模型的基本术语与形式化定义
(1)基本术语
- 关系:关系就是二维表,二维表的名字就是关系的名字。
- 属性:二维表中的每个列就称为一个属性(或叫字段),
-
-
- 每个属性有一个名字——属性名
- 某一列的值——属性值
- 列的个数——关系的元数。如果一个二维表有n个列,则称其为n元关系。
-
-
- 值域:二维表中属性的取值范围称为值域。
- 元组: 二维表中的一行数据称为一个元组(记录值)。
- 分量:元组中的每一个属性值称为元组的一个分量。
n元关系的每个元组有n个分量。
- 关系模式:二维表的结构称为关系模式。
- 关系数据库:对应于一个关系模型的所有关系的集合称为关系数据库。
- 候选键:如果一个属性或属性集的值能够惟一标识一个关系的元组而又不包含多余的属性,则称该属性或属性集为候选键。
- 主键:当一个关系中有多个候选键时,从中选择一个作为主键。
-
-
- 每个关系只能有一个主键,且主键不能为空。
- 主键也称为主码或主关键字,用于唯一地确定一个元组。
- 主键可以由一个属性组成,也可以由多个属性共同组成。
-
-
- 主属性:包含在任一候选键中的属性称为主属性。
- 非主属性:不包含在任一候选键中的属性称为非主属性。
(2)形式化定义
- 笛卡尔乘积实际就是二维表
- 形式化的关系定义同样可以把关系看成二维表,给表中的每列取一个名字,称为属性。
- n元关系有n个属性,一个关系中的属性的名字必须是唯一的。
- 属性Di的取值范围(i=1,2,…,n)称为该属性的值域。
(3)对关系的限定
- 关系中的每个分量都是不可再分的最小属性。
- 表中列的数据类型是固定的,即列中的每个分量都是同类型的数据,来自相同的值域。
- 不同列的数据可以取自相同的值域。
- 关系表中列的顺序不重要。
- 关系表行的顺序也不重要。
- 同一个关系中的元组不能重复。
三、关系代数
(1)关系代数三大要素
运算对象、运算符和运算结果
- 关系代数是关系操作语言的一种传统表示方式,是一种抽象的查询语言。
- 是一种纯理论语言,它定义了一些操作,运用这些操作可以从一个或多个关系中得到另一个关系,而不改变源关系。
- 关系代数的操作数和操作结果都是关系,而且一个操作的输出可以是另一个操作的输入。
- 关系代数的运算对象是关系,运算结果也是关系。
(2)关系代数的运算
传统的集合运算:
并、交、差、笛卡尔积
专门的关系运算:
选择运算、投影运算、连接运算、除运算
连接运算具有如下几种形式:
θ连接
等值连接(θ连接的特例)
自然连接
外部连接(或称外连接)
半连接
•θ连接
θ是比较运算符。
连接运算从R和S的广义笛卡尔积中选择R关系在A属性组上的值与S关系在B属性组上的值满足θ的元组。
•等值连接
θ为“=”的连接成为等值连接。它是从关系R与S的笛卡尔积中选取A,B属性值相等的那些元组:
•自然连接
是一种特殊的等值连接,它去掉了等值连接结果中的重复的属性列。
•外连接
左外连接
右外连接
全外连接
•半连接
在两个关系之间执行连接操作,并将其结果投影在第一个操作关系的所有属性上。
优点是可以减少必须参与连接的元组的数目。
(3)运算优先级
关系运算的优先级按从高到低的顺序为:
投影、选择、乘积、连接和除(同级)、交并差(同)