关系运算

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章 关系运算
目录 上一页 下一页 退出
小结
2
本章要点
关系模型概述 关系数据结构及其形式化定义 关系代数 关系演算*
关系模型概述
目录 上一页 下一页 退出
3
关系数据库是应用数学方法处理数据,实
体和实体之间的联系都用“关系”来描述。
关系数据库系统是近年来发展最快,应用 得也最广泛的数据库系统。
关系数据结构:二维表(逻辑结构)
T
S
C
t1
s1
c1
t1
s1
c2
t1
s2
c1



t2
s3
c2
元组有序性和基数的计算
目录 上一页 下一页 退出
元组不是di 的集合,元组中分量是按序排列 的,集合中是无序的。
– 如(a,b,c)(b,c,a)(c,a,b),但 {a,b,c}={b,c,a}={c,a,b}
基数:域的可取值个数
– 如{男,女}这个域的基数是2 n
RS
–两个关系R和S若进行并运算,则它们必须 是相容的:
•关系R和S必须是同元的,即它们的属性数目必 须相同
•对i,R的第i个属性的域必须和S的第i个属性 的域相同
13
目录 上一页 下一页 退出
14
并运算示例
R
AB C
3
6
7
2
5
7
7
2
3
4
4
3
R∪S
S
ABC
3
4
5
7
2
3
ABC
3
6
7
2
5
7
7
2
3
4
– 查询表:查询结果构成,只读的,不能修改
– 视图表:虚表,不存放实际数据,可通过返回 基本表修改数据
扩充定义
– 关系必须是有限集合;
– 为关系的每列附加一属性名以取消关系元组的 有序性
关系的性质
目录 上一页 下一页 退出
10
五条性质
– 列是同质的
• 即每一列中的分量来自同一域,是同一类型的数据。
M mi m1 m2 3 2 6 i 1
– D1×D2有6个元组,构成一张二维表
因为R1包含于D,所以R1是关系;
8
而R2 ,R3 不包含于D,所以R2 ,R3 不是关系
关系的分类和扩充定义
目录 上一页 下一页 退出
9
分类:
– 基本表:实际存在,数据的逻辑表示,可以读 取和修改
– 行、列的顺序无关紧要
– 任意两个元组不能完全相同(集合内不能有相同的两个元 素),即候选码取值是唯一的
– 每一分量必须是不可再分的数据。满足这一条件的关系 称作满足第一范式(1NF)的
关系模式
目录 上一页 下一页 退出
11
关系模式
– 关系的描述称作关系模式,包括关系名R、关 系中的属性名集合U、属性所来自的域D、属 性向域的映象dom 、F属性间的数据依赖关系 等,一般记为:R(U,D,dom,F),简记为:R(U) 或R(A1 , A2 ,…, An )
• 如 S, 上C)例,的如笛下卡表儿所积示,其一个子集为关系TE属A性CH(T,
T
S
C
t1
s1
c1

t1
s1
c2

t1
s2
c1
7
t2
s3
c2
关系示例
目录 上一页 下一页 退出
例:若属性A1,A2分别在域D1,D2中取值 D1={1,2,3},D2={a,b},则求D=D1×D2 如下
– 解:D1的n 基数m1=3, D2 的基数m2=2,
– 一组域D1 , D2 ,…, Dn的笛卡尔积为:
D1×D2×…×Dn = {(d1 , d2 , … , dn) | di∈Di , i=1,…,n}
– 笛卡尔积的每个元素(d1 , d2 , … , dn)称作一个 n-元组(n-tuple)
– 元组的每一个值di叫做一个分量(component)
关系操作:集合操作,非过程化语言
关系代数
关系演算 元组
完整性约束:

实体完整性
参照完整性
用户定义完整性
关系数据结构及形式化定义
目录 上一页 下一页 退出
4
域(Domain)
– 一组值的集合,这组值具有相同的数据类型
– 如整数的集合、字符串的集合、全体学生的集 合
笛卡尔积(Cartesian Product)
目录 上一页 下一页 退出
5
笛卡儿积举例
– 例:设
D1为教师集合(T)= {t1,t2} D2为学生集合(S)= {s1,s2 ,s3} D3为课程集合(C)= {c1,c2} 则D1×D2×D3是个三元组集合,元组个数为 2×3×2,是所有可能的(教师,学生,课程)元 组集合
– 笛卡尔积可表为二维表的形式
汇总:
–来自百度文库传统集合运算
• 二目运算:并、交、差、广义笛卡儿积
– 专门关系运算
• 选择、投影、连接、除
– 扩展运算
• 广义投影、外连接、聚集
– 修改操作
• 插入、删除、更新
传统集合运算(二目运算)
目录 上一页 下一页 退出
并运算
– 所有至少出现在两个关系中之一的元组集合 RS ={ r | rR rS }
4
5
交运算
目录 上一页 下一页 退出
所有同时出现在两个关系中的元组集合 RS ={ r | rR rS }
• 如TEACH(T, S, C)={(t1 , s1 , c1), (t1 , t2 , c1)}是错误的 – 不同的列可来自同一域,每列必须有不同的属性名。
• 如P={t1,t2 , s1,s2 ,s3},C= {c1,c2},则TEACH 不能写成TEACH (P, P, C),还应写成TEACH(T, S, C)
– dom一般直接说明为属性的类型、长度等
– 某一时刻对应某个关系模式的内容(元组的集 合)称作关系
– 关系模式是型,是稳定的
– 关系是某一时刻的值,是随时间不断变化的
关系代数
目录 上一页 下一页 退出
12
关系代数------一组建立在关系上的高级运算, 每个运算都以一个或多个关系作为它的运算 对象,并且生成一个关系作为运算结果
4
3
3
4
5
差运算
目录 上一页 下一页 退出
所有出现在一个关系而不在另一关系中的元 组集合
RS ={ r | rR rS }
RS
R和S必须是相容的
15
目录 上一页 下一页 退出
16
差运算示例
R
ABC
3
6
7
2
5
7
7
2
3
4
4
3
R-S
ABC
3
6
7
2
5
7
4
4
3
S
ABC
3
4
5
7
2
3
S-R
ABC
3
– 若Di的基数为mi,则笛卡尔积的基数为i1 mi
6
形式化定义关系
目 录 关系
上一页 下一页 退出
– 笛卡尔积D1×D2×…×Dn的子集叫做在域D1 , D2 ,…, Dn上的关系,用R(D1 , D2 ,…, Dn )表示
– R是关系的名字,n是关系的度或目 – 关系是笛卡尔积中有意义的子集 – 关系也可以表示为二维表
相关文档
最新文档