关系数据库
关系数据结构及形式化定义
定义
- 关系:是笛卡尔积的有限子集,可以用二维表表示,每行对应一个元组(Tuple),每列对应一个域(Domain)
- 候选码:该属性可以唯一地标识一个元组(候选码可以有多个)
- 主码:选定一个候选码为主码
- 主属性与非主属性:所有候选码的属性均成为主属性,其余的即为非主属性(或称非码属性)
关系的基本性质
关系模式
关系模式是型(静态),关系是值(动态)
关系数据库
关系数据库的型也称关系数据库模式,其值简称为关系数据库
关系操作
关系的完整性
实体完整性
主码作为唯一性标识不能取空值(无意义值)
参照完整性
外码:
参照完整性规则
用户定义的完整性
针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求
练习
- 成功
- 课程号作为主码被赋予空值,违背实体完整性规则
- 同2
- 主码正常赋值但S与C中没有对应数据,违背参照完整性规则
关系代数
传统的集合运算
专门的关系运算
练习
以学生-课程数据库为例
删除关系中部分数据
投影
针对列(注意投影后会消除重复行,相当于默认使用了DISTINCT)
选择
针对行
关系的连接
非等值连接 等值连接 自然连接
自然连接是一种特殊的等值连接:自然连接就是在将R,S中的同名属性等值连接的基础上去掉重复列
外连接
悬浮数组:自然连接过程中被舍弃的元组,如上图 R 中的第四个元组和 S 中的第五个元组
若将悬浮数组保留,此连接便称作外连接
左外连接
保留左边关系R中的悬浮数组,
右外连接
保留右边关系S的悬浮数组