❖ 掌握
⬧ 关系的定义、特点;
⬧ 关系的三类完整性约束;
⬧ 传统集合运算和专门的关系运算
❖ 了解
⬧ 关系的操作及其分类、关系演算
❖ 重点
⬧ 关系数据结构、关系的三类完整性约束、关系代数
❖ 难点
⬧ 专门的关系运算
❖ 1.第一节 关系数据结构及形式化定义
1.1.关系
1.1.1.域
- 定义:域是一组具有相同数据类型的值的集合
1.1.2.笛卡尔积
-
笛卡尔积:域上的一种集合运算
-
给定一组域D1,D2,…,Dn,
允许其中某些域是相同的。
D1,D2,…,Dn的笛卡尔积为: D1×D2×…×Dn = {(d1,d2,…,dn)|di Di,i=1,2,…,n} -
⬧ 所有域的所有取值的一个组合
-
⬧ 其中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组(Tuple)
-
⬧ 元素中的每一个值di叫做一个分量
-
⬧ 一个域允许的不同取值个数称为这个域的基数
-
基数(Cardinal number)
➢若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则 D1×D2×…×Dn的基数M为:
-
⬧ 笛卡尔积的表示方法
➢笛卡尔积可表示为一个二维表
➢表中的每行对应一个元组,表中的每列对应一个域
1.1.3.关系
- ❖ 关系 :
D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为
⬧ R:关系名
⬧ n:关系的目或度(Degree)R(D1,D2,…,Dn)
- ❖ 关系的术语
⬧ 表(table)、列(column)、行(row)
⬧ 关系(relation)、元组(tuple)、属性(attribute)
一个表就代表一个关系,行列的组合就叫分量
3. ❖ 关系术语
⬧ 候选码(Candidate key) 全码(All-key)
⬧ 主码 主属性 非主属性
-
候选码:唯一能表示数据的最简属性(列)
-
一个表可以有多个候选码
-
候选码可以是组合形成的
-
主码只允许出现一个,在候选码里面选择
-
主属性:候选码的任一个属性
-
非主属性:非候选码的任一个属性。1
-
全码:所有列都是候选码,缺一不可
- ❖ 三类关系
- ⬧ 基本关系(基本表或基表)
实际存在的表,是实际存储数据的逻辑表示 - ⬧ 查询表
查询结果对应的表 - ⬧ 视图表
由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据
- ⬧ 基本关系(基本表或基表)
❖ 基本关系的性质 (重点)
-
❖ 基本关系的性质 (重点)
⬧ ① 列是同质的(Homogeneous)
⬧ ② 不同的列可出自同一个域- ➢ 其中的每一列称为一个属性
- ➢ 不同的属性要给予不同的属性名
⬧ ③ 列的顺序无所谓, 列的次序可以任意交换
⬧ ④ 任意两个元组的候选码不能相同
⬧ ⑤ 行的顺序无所谓,行的次序可以任意交换
⬧ 分量必须取原子值
1.2.关系模式
1.2.1. 什么是关系模式
一张表的表头就是关系模式
一张表除了表头的数据就是关系
- ❖ 关系模式是对关系的描述,是静态的、稳定的
- ❖ 关系是关系模式在某一时刻的状态或内容,是动态的、随时间不断变化的
- ❖ 关系模式和关系往往统称为关系,通过上下文加以区别
DOM就是取值范围
- ❖ 关系模式通常可以简记为
- R (U) 或 R (A1,A2,…,An)
- ⬧ R: 关系名
- ⬧ A1,A2,…,An : 属性名
- ⬧ 注:域名及属性向域的映象常常直接说明为属性的类型、长度
- R是名字 , U是属性
1.3.关系数据库
- ❖ 关系数据库
- ⬧ 在一个给定的应用领域中,所有关系的集合构成一个关系数据库
- ❖ 关系数据库的型与值
- ⬧ 关系数据库的型也称关系数据库模式,是对关系数据库的描述
- ⬧ 关系数据库的值是关系模式在某一时刻对应的关系的集合,简称为关系数 据库
❖ 2.第二节 关系操作
2.1 常用的关系操作 (5种基本运算)
- ⬧ 查询:选择、投影、连接、除、并、交、差
- ⬧ 数据更新:插入、删除、修改
- ⬧ 查询的表达能力是其中最主要的部分
- ⬧ 选择、投影、并、差、笛卡尔积是5种基本操作
== 选择、投影、并、差、笛卡尔积是5种基本操作 ==
2.2.关系操作的特点 :
- ⬧ 集合操作方式:操作的对象和结果都是集合,一次一集合的方式
❖ 3.第三节 关系的完整性(重点)
- 实体完整性
- 参照完整性
- 用户定义的完整性
- ❖ 实体完整性和参照完整性:
关系模型必须满足的完整性约束条件
称为关系的两个不变性,应该由关系系统自动支持
- ❖ 用户定义的完整性:
⬧ 应用领域需要遵循的约束条件,体现了具体领域中的语义约束 - 模型中实体及实体间的联系都是用关系来描述的,因此可能存在着 关系与关系间的引用
3.1.实体完整性(主属性非空)
3.2.参照完整性
外码F不能是R主码
R终于有一个属性F可以找到S中指定数据,所以F是R的外码
外码只能取空值或者对应表中有的数值
外码没有组合,就是单个的
3.3.用户定义的完整性
涉及到具体要求,不要求也没事
❖ 4.第四节 关系代数
4.1.传统集合运算
1. 并(Union)
2.差
3.交
4.笛卡尔积(不要求相同的目)
元组的数目是乘的关系
4.2.专门的集合运算
0.基础
A1,A2,An是元组的属性
A是属性
R 中拿出一行与 S 中一行拼在一起
X中某一个确定的数值对应的Z中所关联的数值的集合
1.选择
从行角度考虑信息
选择, 条件 从哪里选择,
列上无损失,选择的是行
2.投影
投影可能会损失行,因为结果里面可能会重复
3.链接