数据库系统2-关系数据库
1 关系模式概述
- 关系数据库系统 是 支持关系模型的DBS
- 关系模型的组成
- 关系数据结构
- 关系操作集合
- 关系完整性约束
1.1 关系数据结构 – 关系(二维表)
- 关系数据结构的特点:实体和联系都用关系这种单一的数据结构来实现
1.2 关系操作
- 并、交、差、广义笛卡尔积、选择、投影、连接、除
- 插入、删除、修改
- 关系操作的特点
- 操作对象和操作结果都是集合
1.3 关系完整性约束
- 实体完整性、参照完整性、用户定义完整性
2 关系的形式化定义
2.1 关系的定义
2.1.1 定义
- 域:一组具有相同数据类型的值的集合,表示一个域
- 关系: 的一个子集叫做域上的关系,表示为:
- ,为关系名,为关系的目或度
- 基数:一个域允许的不同取值个数称为这个域的基数
- 关系中基数是指 行数
2.1.2 几个概念
- 候选码:能唯一标识元组的属性(组)
- 主码:多个候选码中选的一个作为主码
- 主属性:候选码中的诸属性
- 非主属性:不出现在任何候选码中的属性
2.2 关系的六条性质
- 列是同质的:每一列中的风量来自同一域,数据类型相同
- 不同列可以出自同一个域
- 列序无关性
- 任意两个元组不能完全相同
- 行许无关系
- 分量不可再分
3 关系的完整性约束
3.1 实体完整性
- 若属性A是基本关系R的主属性,则A不能取空值
3.2 参照完整性
3.2.1 参照关系与外码
设F是关系R的一个或一组属性但不是R的码。如果F与关系S的主码相对应,则称F是R的外码,R称为参照关系,S称为被参照关系(目标关系)
例子:
说明
- 关系R和S不一定是不同的关系
- 目标关系S的主码和参照关系的外码F必须在同一个(一组)域上
- 外码并不一定要与对应的主码同名,当位于不同关系时往往同名,以便识别
3.2.2 参照完整性规则
若属性(组)F是关系R的外码,它与关系S的**主码**相对应,则对于R中的每个元组在F上的值必须为:
- 或者取空值
- 或者等于S中某个元组的主码值
思考题:
- 某关系R的外码是指其他关系的候选码,同时作为R的非主属性
- 外码和被参照的主码可以不同名,但必须取自同一值域
3.3 用户定义完整性
- 用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求,如性别只能取"男"、"女"值。
- 通常由RDBMS的Check约束提供这类检查
4 关系代数
4.1 表示记号
4.2 关系代数
4.2.1 并、交、差
- 并、交、差 运算都是针对行的
4.2.2 广义笛卡尔积
- n + m 列
- k1 * K2 行
4.2.3 选择、投影、连接、除
选择 -> 取行
- 符号:
- 含义:在关系R中选择满足给定条件的诸元组
- F:选择条件
投影 -> 取列
相关符号
符号:
含义:在R中选择出若干属性列组成新的关系
- A:R中的属性列的集合
注:投影后不仅取消了原关系中的某些行,而且还可能取消某些元组(避免重复行)
连接 -> 混合
- 符号:
- 含义:从两个关系的广义笛卡尔积中选取属性间满足一定条件的元组
- 连接
常用两种连接运算
等值运算
- 为’='的连接运算
- 为’='的连接运算
自然连接
- 一种特殊的等值连接
- 关系中比较的两个分量必须是同名的属性(组)
- 在结果中把重复的属性列去掉
- 意义:将两个有关联的表合成一张有意义的表
外连接
除 -> 混合
相关符号
符号:
- 例子:查询选修了全部课程的学号和姓名
5 关系代数实用案例
详情见ppt第181页
易错题1
- 应该用除法
- 应该用除法
易错题2
易错题3
6 关系演算
- 可分为元组演算和域演算(不讲)
6.1 元组演算
- 元组演算表达式:
- t称为元组变量
- 称为元组演算公式
- 原子公式:
6.2 关系代数表达式与元组演算表达式的等价转换
6.3 例子
7 关系演算实用案例 - 难点
- 详情见ppt第206页
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Escapeey`Blog!
评论