C语言 关系运算及关系代数

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
* 元组的前n列是关系R的一个元组 * 后m列是关系S的一个元组 * * R×S = {tr ts |tr ∈R ∧ ts∈S }
* R×S
A R a1 a1 a2 A S a1 a1 a2
B b1 b2 b2 B b2 b3 b2
C c1 c2 c1 C c2 c2 c1
A
a1 a1 a1
R×S
*7
10 10
等值连接 R
S
R.B=S.B
A a1 a1 a2 a2
R.B b1 b2 b3 b3
C 5 6 8 8
S.B b1 b2 b3 b3
E 3
*
7 10 2
自然连接 R A a1 a1 a2 a2
S B b1 b2 b3 b3 C 5 6 8 8 E 3 7 10 2
*
给定一个关系R(X,Z),X和Z为属 性组。当t[X]=x时,x在R中的象集 (Images Set)为: Zx={t[Z]|t ∈R,t[X]=x}
*
Sname 李勇 刘晨 王敏 张立
Sdept
CS
IS
*IS
MA
[例4] 查询学生关系Student中都有哪些系 πSdept(Student) 结果:
Sdept CS
* IS
MA
*1)连接也称为θ连接 *2)连接运算的含义
R S={
AθB
* 从两个关系的笛卡尔积中选取属性间满足一定条件的元组
*
R∩S = { t|t ∈ R∧t ∈S }
R
S
A a1 a1 a2 A a1 a1 a2
B b1 b2 b2 B b2 b3 b2
C c1 c2 c1 C c2 c2 c1
R∩S
A B C a1 b2 c2 a2 b2 c1
*
*R *S
* n目关系,k1个元组 * m目关系,k2个元组 * 列:(n+m)列的元组的集合 * 行:k1×k2个元组
B
b1 b1 b1 b2 b2 b2 b2 b2 b2
C A
c1 a1 c1 a1 c1 a2 c2 a1 c2 a1 c2 a2 c1 a1 c1 a1 c1 a2
B
C
b2 c2 b3 c2 b2 c1 b2 c2 b3 c2 b2 c1 b2 c2 b3 c2 b2 c1
a1 a1 a1 a2 a2 a2
* 什么是等值连接
*θ为“=”的连接运算称为等值连接
* 等值连接的含义
*从关系R与S的广义笛卡尔积中选取A、B属性值
相等的那些元组,即等值连接为:
R S={
A=B
| tr ∈R∧ts ∈S∧tr[A] = ts[B] }
tr ts
*
* 自然连接(Natural join)
* 什么是自然连接
*
自然连接是一种特殊的等值连接
* 插入、删除、修改
*
* 概述 * 传统的集合运算 * 专门的关系运算
*
1. 关系代数 2. 运算的三要素 3. 关系代数运算的三个要素 4. 关系代数运算的分类 5. 表示记号
*
1.关系代数 一种抽象的查询语言
用对关系的运算来表达查询
*
2.关系代数运算的三个要素
运算对象:关系 运算结果:关系 运算符:四类
*
关系数据库模型
1. 关系数据模型概述 2. 关系数据模型的结构 3. 关系数据模型的完整性规则 4. 关系代数 5. 关系演算
*
1. 关系数据模型的数据结构 2. 关系数据模型的操纵(运算) 3. 关系数据模型的完整性约束
*
* 关系数据模型的操作
* 查询
* 选择、投影、连接、除、并、交、差
* 数据更新
课程名 Cname 数据库 数学 信息系统 操作系统 数据结构 数据处理 PASCAL语言 语言
(b)
先行课 Cpno 5 1
学分 Ccredit 4 2 4 3 4 2 4
例9
Course
*
6 7 6
学 号 Sno 95001 95001 95001 95002 95002
课程号 Cno 1 2 3 2 3
4.关系代数运算的分类
传统的集合运算
并、差、交、广义笛卡尔积
专门的关系运算
选择、投影、连接、除
*
5.
表示记号
(1) R,t∈R,t[Ai] 设关系模式为R(A1,A2,…,An) 它的一个关系设为R。t∈R表示t是R的一 个元组t[Ai]则表示元组t中相应于属性 Ai的一个分量
*
(2) A,t[A], A
*
它表示R中属性组X上值为x的诸元组 在Z上分量的集合。
A a1 a2
B b1 b3 b4 b2 b6 b2 b2
C c2 c7 c6 c3 c6 c3 c1
B b1
C c2 c1 c3
D d1 d1 d2
S
b2 b2
R
a3 a1 a4 a2 a1
*
R÷S ÷ A a1
给定关系R 其中X, , 为属性组 为属性组。 给定关系 (X,Y) 和S (Y,Z),其中 ,Y,Z为属性组。 其中 R中的 与S中的 可以有不同的属性名,但必须出自相同 中的Y与 中的 可以有不同的属性名, 中的Y可以有不同的属性名 中的 的域集。R与S的除运算得到一个新的关系 的除运算得到一个新的关系P(X),P是R中 的域集。 与 的除运算得到一个新的关系 是
πA(R) = { t[A] | t ∈R }
A:R中的属性列
*
* 2)投影操作主要是从列的角度进行运算
* 但投影之后不仅取消了原关系中的某些列,而且还
可能取消某些元组(避免重复行)
π
*
* 3) 举例
[例3] 查询学生的姓名和所在系
即求Student关系上学生姓名和所在系两个属性上 的投影 πSname,Sdept(Student) 或 结果: π2,5(Student)
*
学 号 Sno 95001 95002 95003 95004
姓 名 Sname 李勇 刘晨 王敏 张立
性 别 Ssex 男 女 女 男 (a)
年 龄 Sage 20 19 18
所在 系 Sdept CS
Student
IS MA IS
*
19
例1
例2
例3
例4
例9
课程号 Cno 1 2 3 4 5 6 7
*
R
S
A a1 a1 a2 A a1 a1 a2
B b1 b2 b2 B b2 b3 b2
C c1 c2 c1 C c2 c2 c1
R-S
A B C a1 b1 c1
*
* R和S
* 具有相同的目n * 相应的属性取自同一个域
* R∩S
* 仍为n目关系,由既属于R又属于S的元组组成
R∩S = R –(R-S)
满足下列条件的元组在X属性列上的投影:元组在 上分 属性列上的投影: 属性列上的投影 元组在X上分
量值x的象集 x包含S在Y上投影的集合。 量值 的象集Y 包含 在 上投影的集合。 的象集 上投影的集合
R÷S = {tr [X] | tr ∈ R∧πY (S) ⊆ Yx } Yx:x在R中的象集,x = tr[X] 中的象集, 在 中的象集
(c)
成 绩 Grade 92 85
SC
*
88 90 80
例7 例9
[例1] 查询信息系(IS系)全体学生 σSdept = 'IS' (Student) 或 结果: σ5 ='IS' (Student)
Sno 95002 95004 Sname 刘晨 张立
*
Ssex 女 男
Sage 19 19
Sdept IS IS
若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一 部分,则A称为属性列或域列。t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元组t 在属性列A上诸分量的集合。A则表示{A1,A2,…,An} A A {A A … A }中去掉{Ai1, {A Ai2,…,Aik}后剩余的属性组。
B b1 b2 b2 B b2 b3 b2
C c1 c2 c1 C c2 c2 c1
R∪S ∪
A a1 a1 a1 a2
*
B b1 b2 b3 b2
C c1 c2 c2 c1
* R和S
* 具有相同的目n * 相应的属性取自同一个域
*R - S
* 仍为n目关系,由属于R而不属于S的所有元组组成
R -S = { t|t∈R∧t∉S }
* θ:比较运算符(>,≥,<,≤,=或<>) * X1,Y1等:属性名、常量、简单函数;属性名也可以用它
的序号来代替; * φ:逻辑运算符(∧或∨) * [ ]:表示任选项 * …:表示上述格式可以重复下去
*
* 3) 选择运算是从行的角度进行的运算
* 4) 举例
设有一个学生-课程数据库,包括学生关系 σ Student、课程关系Course和选修关系SC。
*
* 5)举例
[例5] B b1
A a1 a1 a2 a2 B b1 b2 b3 b4 C 5 6 8 12
E 3 7 10 2 2
b2 b3
*
b3 b5
R
S
R
S
C<E
A a1 a1 a1 a1 a2
R.B b1 b1 b2 b2 b3
C 5 5 6 6 8
S.B b2 b3 b2 b3 b3
E 7 10
*两个关系中进行比较的分量必须是相同
的属性组
*在结果中把重复的属性列去掉
* 自然连接的含义
R和S具有相同的属性组B
*
R S={
| tr ∈R∧ts ∈S∧tr[B] = ts[B] }
tr ts
*4)一般的连接操作是从行的
角度进行运算。
R
自然连接还需要取消重 复列,所以是同时从行和列的角 AθB S 度进行运算。
含义 并 差 交 广义笛 卡尔积
运算符 比 > 较 ≥ 运 < 算 ≤ 符 = ≠
含义
大于 大于等于 小于 小于等于 等于 不等于
概述( 概述(续)
关系代数运算符( 表 关系代数运算符(续)
运算符 含义 专门的 关系 运算符
运算符 含义
σ 选择 逻辑运 ¬ 非 π 投影 算符 ∧与 连接 ∨或 除 ÷
[例2] 查询年龄小于20岁的学生
σSage < 20(Student) 或 σ4 < 20(Student)
结果:
Sno 95002 95003 95004
Sname 刘晨 王敏 张立
*
Ssex 女 女 男
Sage 19 18 19
Sdept IS MA IS
* 1)投影运算符的含义
* 从R中选择出若干属性列组成新的关系
*
* (3) tr ts
R为n目关系,S为m目关系。tr ∈R,ts∈S, tr ts称为元组的连接。 它是一个n + m列的元组,前n个分量为R中的一个n元组,后m n m n R n m 个分量为S中的一个m元组。
*
* 4)象集Zx
给定一个关系R(X,Z),X和Z为属性组。 当t[X]=x时,x在R中的象集(Images Set) 为: Zx={t[Z]|t ∈R,t[X]=x} 它表示R中属性组X上值为x的诸元组在Z上 分量的集合。
*
*集合运算符
* 将关系看成元组的集合 * 运算是从关系的“水平”方向即行的角度来进行 * 不仅涉及行而且涉及列
*专门的关系运算符 *算术比较符 *逻辑运算符
* 辅助专门的关系运算符进行操作 * 辅助专门的关系运算符进行操作
*
概述( 概述(续)
表 关系代数运算符
运算符 集 ∪ 合 运 ∩ 算 × 符
*
* 2)除操作是同时从行和列角度进行运算
R
÷
S
*
A a1 a2
B b1 b3 b4 b2 b6 b2 b2
C c2 c7 c6 c3 c6 c3 c1
B b1
C c2 c1 c3
D d1 d1 d2
S
b2 b2
R
a3 a1 a4 a2 Fra Baidu bibliotek1
R÷S ÷ A
*
a1
在关系R中 可以取四个值{a1, , , 在关系 中,A可以取四个值 ,a2,a3,a4} 可以取四个值
*
* * *
概述 传统的集合运算 专门的关系运算
*
* * * *
并 差 交 广义笛卡尔积
*
* R和S
* 具有相同的目n(即两个关系都有n个属性) * 相应的属性取自同一个域
* R∪S
* 仍为n目关系,由属于R或属于S的元组组成
R∪S = { t|t ∈ R∨t ∈S }
*
R
S
A a1 a1 a2 A a1 a1 a2
tr ts | tr ∈ R∧ts ∈S∧tr[A]θts[B] }
* A和B:分别为R和S上度数相等且可比的属性组 * θ:比较运算符
*
连接运算从R和S的广义笛卡尔积R×S中选取(R关系)在A 属性组上的值与(S关系)在B属性组上值满足比较关系的元 组。
*
* 3)两类常用连接运算
* 等值连接(equijoin)
*
* * *
概述 传统的集合运算 专门的关系运算
*
* * * *
选择 投影 连接 除
*
*1) 选择又称为限制(Restriction) *2) 选择运算符的含义
*在关系R中选择满足给定条件的诸元组
σF(R) = {t|t∈R∧F(t)= '真'} *F:选择条件,是一个逻辑表达式,基本形式为: [¬( ] X1θY1 [ )][φ [¬( ] X2θY2 [ )]]…
相关文档
最新文档