关系数据库由关系数据结构、关系操作集合和完整性约束组成。
关系模型的数据结构只包含关系。
域:
具有相同数据类型值的集合
笛卡尔积:
集合运算
关系:
关系是笛卡尔积的有限子集,关系也是一个二维表。
属性:
对每列起一个名字,称为属性
候选码:
关系中能唯一标识元组的属性组称为候选码
主属性:
候选码的属性称为主属性
主码:
选一个候选码作为主码
全码:
所有属性都是候选码,称为全码
关系的三种类型:
基本表(基本关系)、查询表、视图表
基本关系
6个性质:
1、 列是同质的。(同一类型)
2、 不同列可以出自同一域。
3、 列的次序可交换。
4、 任意两个元组的候选码不能相同。
5、 行的次序可交换。
6、 每个分量都是不可分的数据项,不允许表中有表
规范化的关系称为范式
关系模式是对关系的描述
关系是一张二维表,表的一行为元组,一列为属性。
关系模式
R(U,D,DOM,F)
R是关系名
U是属性名集合
D是属性来自的域
DOM是属性向域的映像集合
F是属性间数据依赖关系集合
关系操作
基本的关系操作
两类操作:
查询操作、增删改操作
查询操作包括:
选择、投影、连接、除、并、差、交、笛卡尔积
关系操作的特点是集合操作方式,操作对象和结果都是集合。
关系数据语言的分类
关系数据语言包括:关系代数语言、关系演算语言和双重特点语言(SQL)
SQL有双重特点,是数据库标准语言。
关系的完整性
三类完整性约束
实体完整性、参照完整性和用户定义的完整性
实体完整性
基本关系的主码不能为空值。
参照完整性
若属性F是基本关系R的外码,它对应S中的主码,则R 中每个元组在F上的值必须为:或者取空值、或者等于S中某个元组的的主码值。
用户定义的完整性
例如:某个属性必须取唯一值,或者某个非主属性也不能取空值
关系代数
集合运算
并、差、交、笛卡尔积
关系运算
1、选择(Selection) 从行操作
在关系R中选择满足给定条件的诸元组
2、投影(Projection) 从列操作
关系R上的投影是从R中选择出若干属性组成新关系
3、连接(Join) 一般从行进行运算
从两个关系的笛卡尔积中选取满足一定条件的元组
等值连接
“=”的连接运算
自然连接
特殊的等值连接,要求两个关系进行比较的分量必须是相同的属性组,在结构中把重复属性列删掉,只保留一份
外连接
把舍弃的元组也保留在自然连接的基础上,其他属性填空值(NULL),这种连接叫外连接。
对于R×S
左外连接:保留R中被舍弃的元组
右外连接:保留S中被舍弃的元组
4、除运算(Division) 同时从行列出发
涉及到求“全部”之类的查询,一般用除法
关系运算的优先级:
投影
选择
笛卡尔积
连接、除
交
并、差