关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成
定义:在一个给定的应用领域中,所有关系的集合构成一个关系数据库
关系数据库的型:关系数据库模式,对关系数据库的描述
关系数据库的值:关系数据库,是关系模式在某一时刻对应的关系的集合
关系数据结构
关系——值
关系模型的数据结构非常简单,只包含单一的数据结构——关系
域
一组具有相同数据类型的值的集合
笛卡尔积
域上的一组集合运算
关系
候选码:关系中的某一属性组的值能够唯一地标识一个元组,而其子集不能,则该属性组为候选码
主码:若一个关系有多个候选码,则选定其中一个为主码
主属性:候选码的诸属性
非主属性、非码属性:不包含在任何候选码中的属性
最简单的情况:候选码只包含一个属性
最极端的情况:关系模式的所有属性是这个关系模式的候选码,称为全码
候选码不一定是主码,但主码一定是候选码
所有的码都是候选码
关系的类型:基本关系(基本表、基表)、查询表和视图表
- 基本表:实际存在的表,是实际存储数据的逻辑表示
- 查询表:临时表,列表不存在,是查询结果对应的表
- 视图表:虚表,是由基本表或其他视图表导出的表,不对应实际存储的数据【只有表头,无数据,数据在基本表中】
关系作为关系数据模型的数据结构时,给予的限定和扩充:
基本关系的性质:
- 列是同质的,即每一列中的分量是同一类型的数据,来自同一个域
- 不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名
- 列的顺序无所谓,即列的次序可以任意交换
- 任意两个元组的候选码不能取相同的值,违背了码的特性
- 行的顺序无所谓,即行的次序可以任意交换
- 分量必须取原子值,即每一个分量都必须是不可分的数据项
第一范式:关系的每一个分量必须是一个不可分的数据项
关系模式——型
关系数据库中,关系模式是型,关系是值,关系模式是对关系的描述
定义:
关系是关系模式在某一时刻的状态或内容,关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据
关系操作
基本的关系操作
关系模型中常用的关系操作包括查询操作和插入、删除、修改操作两大部分
关系的查询表达能力很强,是关系操作中最主要的部分
查询操作可以分为选择、投影、连接、除、并、差、交、笛卡尔积……
5 种基本操作:选择、投影、并、差、笛卡尔积
其他操作可以用基本操作定义和导出,交可以用差表示
关系操作的特点是集合操作方式,即操作的对象和结果都是集合
关系数据模型的数据操作方式称为一次一集合的方式
非关系数据模型的数据操作方式称为一次一记录的方式
关系数据语言的分类
关系的完整性
关系模型中的三类完整性约束:
- 实体完整性
- 参照完整性
- 用户定义的完整性
实体完整性和参照完整性是关系模型必须满足的完整性约束条件,关系的两个不变性
实体完整性
实体完整性规则:若属性(指一个或一组属性)A 是基本关系 R 的主属性,则 A 不能取空值("不知道"或"不存在"或"无意义"的值)
主属性≠主码
对于实体完整性规则的说明:
- 实体完整性规则是针对基本关系而言的,一个基本表通常对应现实世界的一个实体集
- 现实世界中的实体是可区分的,即它们具有某种唯一性标识
- 关系模型中以主码作为唯一性标识
- 主码中的属性不能取空值,如果取了空值,说明存在某个不可标识的实体,即存在不可区分的实体
参照完整性
参照完整性规则:若属性(或属性组)F 是基本关系 R 的外码,它与基本关系 S 的主码 Ks 相对应(基本关系 R 和 S 不一定是不同的关系),则对于 R 中每个元组在 F 上的值必须:
参照关系 R(F,... ) 被参照关系 S(Ks,... )
- 或者取空值(F 的每个属性值均为空值)
- 或者等于 S 中某个元组的主码值
用户定义的完整性
关系代数
定义:关系代数是一种抽象的查询语言,用关系的运算表达查询
运算的三大要素:运算对象、运算符、运算结果
- 关系代数的运算对象是关系
- 关系代数的运算结果是关系
- 关系代数的运算符:集合运算符和专门的关系运算符
关系代数表达式:关系代数中,选择、投影、连接、除、并、差、交、笛卡尔积复合后形成的表达式
传统的集合运算
传统的集合运算是二目运算,包括并、差、交、笛卡尔积 4 种运算
运算前提:关系 R 和关系 S 具有相同的目 n(即两个关系都有 n 个属性),且相应的属性取自同一个域
t 是元组变量,t ∈ R 表示 t 是 R 的一个元组
并
记作:R∪S={t|t∈R∨t∈S}
结果:n 目关系,由属于 R 和属于 S 的元组组成
差
记作:R-S={t|t∈R∧t∉S}
结果:n 目关系,由属于 R 而不属于 S 的所有元组组成
交
记作:R∩S={t|t∈R∧t∈S}
结果:n 目关系,由既属于 R 又属于 S 的元组组成
用差表示:R∩S=R-(R-S)
笛卡尔积
此处的笛卡尔积是广义的笛卡尔积,此处笛卡尔积的元素是元组
专门的关系运算
专门的关系运算包括选择、投影、连接、除运算……
选择
投影
投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列之后,就可以出现重复行,应取消完全相同的行
连接
实质:笛卡尔积和选择
悬浮元组:自然连接时,关系 R 中某些元组有可能在 S 中不存在公共属性上值相等的元组,从而造成 R 中这些元组被舍弃了,S 中某些元组也可能被舍弃,这些被舍弃的元组称为悬浮元组
外连接:把悬浮元组保存在结果关系中,在其他属性上填空值,那么这种连接叫做外连接,记作 R⋈S
左外连接:只保留左边关系 R 中的悬浮元组
右外连接:只保留右边关系 S 中的悬浮元组