第二章 关系数据库
#关系数据库
* 域:是一组具有相同数据类型的值的集合
* 笛卡尔积:给定一组域D1 ,D2,D3.....这写域中可以有相同的
笛卡尔积为:D1xD2xD3.....xDn = { (d1,d2.d3....dn) }
其中每一个元素(d1,d2.d3....dn) 叫作一个n元组或简称元组,元素中每一个值叫作一个分量
* 关系:D1xD2xD3.....xDn的子集叫做在域D1,D2,....,Dn上的关系,表示为
R(D1xD2xD3.....xDn)
其中R表示关系的名称,n是关系的度或目
关系可以是二维表
* 超码:若关系中的某一个或多个属性的集合能唯一标识一个元组,则称该属性或属性组为超码
* 候选码:如果构成超码属性组的任意真子集都不能成为超码,则这样的最小超码称为超码
就是属性组中有唯一标识元组的真子集,那么就不能成为候选码
* 主码:若一个关系有多个候选码,则选定其中一个为主码
* 候选码的诸属性称为主属性,不包含在任何候选码中的属性称为非主属性\非码属性
* 基本关系具有的性质
- 列是同质的,每一个列中的分量是同一个类型的数据,来自同一个域
- 不同的列可以来自同一个域,其中的每一个列称为一个属性,属性不同,要有不同的名字
- 行和列的顺序没有要求
- 任意两个元组的候选码不能相同
- 分量必须去原子值,每一分量都必须是不可分的数据项
* 关系模式:对关系的描述(主码作为唯一的标识)
* 关系模式要指出元素集合的结构(由那些属性组成,这些属性来自那些域,以及属性与域之间的关系
* 形式化表示:R(U,D,DOM,F)
R表示关系名字,U表示组成该关系的属性集合,D表示属性组U中属性所来自的域,
DOM表示属性向域的映象集合(直接说明属性的类型,长度),F为属性间数据的依赖关系
* 关系模式简记为:R(U)
* 关系模式是型,关系的是值
* 关系是关系模式某一时刻的状态与内容
* 关系模式是静态的,稳定的,关系是动态的,随意事件变化的
# 关系操作
* 关系的基本操作
- 查询
选择、投影、连接、除、并、交、差、笛卡尔积
- 数据更新
插入、删除、修改
* 关系操作的特点
集合操作方式,即操作的对象的和结果都是集合,一次操作,一次集合
* 关系数据语言的分类
- 关系代数语言
用对关系的运算来表达的查询的要求
- 关系演算语言(用谓词来表达查询的要求)
* 元组关系演算语言
谓词变元的基本对象是元组变量
* 域关系演算语言
同上
- 具有关系代数和关系演算双重特点的语言
SQL
# 关系的完整性
* 数据完整性:保证数据的正确性、有效、相容性
是指数据是符合显示世界中的语义、反映当前的显示状况
* 关系模型有三类完整性约束
- 实体完整性
若属性A是基本关系R的主属性,则属性A不能去空值(空值表示无意义,不存在)
规则:
1. 实体完整性规则是针对基本关系而言的
2. 现实世界中的实体是可区分的,即它们具有唯一的标识
3. 关系模型中以主码作为唯一的标识
4. 主码的属性即主属性不能为空值
- 参照完整性
外码:设F是基本关系R中 一个或一组属性,但不是关系R的主码,
如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码
参照完整性的规则:
设F是基本关系R中 一个或一组属性,但不是关系R的主码,
如果F与基本关系S的主码Ks相对应,则对于R中每一元组的在F上的值必须为
或者去空值
或者等于S中的某个元组的主码值
- 用户定义的完整性
是针对某一具体的关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足语义要求
它是没有完整的统一规则
# 关系代数
* 一种抽象的查询语言
* 用对关系的运算来表达查询
* 关系代数运算的三个要素
- 运算对象:关系
- 运算结果:关系
- 运算符:四类
1. 集合运算符(并(U【向下】),差(-),交(U)X(广义的笛卡尔积))
- 并 差 交
R和S满足的条件
1. 具有相同的目n(即两个关系都有n个属性)
2.相应的属性取自同一个域
R并S = R - (R - S)
R-S:就是去掉共有的
2. 关系运算符(选择,投影,连接,除法)涉及行和列
* 投影
从关系R中选择出若干个属性列组成新的关系
记作:ΠA(下标)(R) = { t【A】| t ∈R}
其中A为R中的属性列
从列的角度进行运算
* 选择
选择操是在关系R中选择满足给定条件的诸元组
其表示形式为:
F表示选择条件 ,是一个关系表达式
* 连接
θ连接:从两个关系的笛卡尔积中选取属性间满足一定条件的元组
AθB分别为R和S上的度数相等且可比的属性组
θ:比较运算符
两个关系做广义笛卡尔积将会产生一个新的关系
等值连接:θ为“=”的连接运算称为等值连接
自然连接:自然连接是一种特殊的等值连接
特殊之处:
-首先,要求两个关系进行比较的分量必须是同名属性组
-最后,在等值连接的结果中去掉重复的属性列
若R和S具有相同的属性组B,U为R和S的全体属性集合
外连接: 如果把悬浮元组也保存在R和S自然连接(R 🔗S )
的结果关系中,而在其他属性值上填空值,那么这种
连接称为:外连接
外连接分为:左外连(保留左边关系R中的悬浮元组)
右外连(保留右边关系S中的悬浮元组)
悬浮元组:把两个关系在做自然连接时被舍弃的元组称为悬浮元组
3. 比较运算符(大于......)辅助专门的关系运算符进行操作
4. 逻辑运算符(与或非) 辅助专门的关系运算符进行操作