4.2关系数据库

4、关系代数

        关系代数是一种抽象的查询语言,它用对关系的运算来表达查询。运算的三大要素:运算对象、运算符、运算结果。关系代数的运算对象是关系,运算结果也是关系;运算符要用到的包括两类:集合运算符和专门的关系运算符。如下表所示:

运算符 含义

集合运算符

\times 笛卡尔积
专门的关系运算符 选择
投影
\bowtie 连接

         其中,传统的集合运算将关系看成元组的集合,其运算是从关系的 “ 水平 ” 方向,即行的角度来进行;而专门的关系运算不仅涉及行,而且涉及列。

        一些符号的概念:

(1)R,t∈R,t[Ai]

① 设关系模式为 R(A1,A2,…,An) 它的一个关系设为 R;

② t∈R 表示 t 是 R 的一个元组;

③ t[Ai] 则表示元组 t 中相应于属性 Ai  的一个分量。

(2)A,t[A], ​​​​​

① 若 A = {Ai1,Ai2,…,Aik},其中 Ai1,Ai2,…,Aik 是A1, A2,…,An 中的一部分,则A称为属性列或属性组;

② t[A] = ( t[Ai1],t[Ai2],…,t[Aik] ) 表示元组 t 在属性列 A 上诸分量的集合;

③  则表示 { A1,A2,…,An } 中去掉 { Ai1,Ai2,…,Aik } 后剩余的属性组。

 (3)

① R为 n 目关系,S 为 m 目关系。 tr∈R,ts∈S,称为元组的连接。

是一个 n+m 列的元组,前 n 个分量为 R 中的一个 n 元组,后 m 个分量为 S 中的一个 m 元组。

(4)象集 Zx

给定一个关系R(X,Z),X 和 Z 为属性组。 当 t[X] = x 时,x 在 R 中的象集为:

 Zx = { t[Z] | t ∈R,t[X]=x};

它表示 R 中属性组 X 上值为 x 的诸元组在 Z 上分量的集合。

【例】如图:

R
x1 Z1
x1 Z2
x1 Z3
x2 Z2
x2 Z3
x3 Z1
x3 Z3

① x1 在 R 中的象集为:

Zx1 = { Z1,Z2,Z3 };

② x2 在 R 中的象集为:

Zx2 = { Z2,Z3 };

③ x3 在 R 中的象集为:

Zx3 = { Z1,Z3 }。

(4.1)传统的集合运算

        传统的集合运算是二目运算,包括并、差、交、笛卡尔积四种运算。

(4.1.1)并( Union )

        条件:设关系 R 和关系 S 具有相同的目 n(即两个关系都有 n 个属性),且相应的属性取自同一个域。

        记为:R∪S = { t | t ∈ R∨t ∈S };结果仍然为 n 目关系,由属于 R 或者属于 S 的元组组成。

【例】

(4.1.2)差( Difference )

        条件:设关系 R 和关系 S 具有相同的目 n(即两个关系都有 n 个属性),且相应的属性取自同一个域。

        记为:R - S = { t | t∈R∧t∉S };仍然为 n 目关系,由属于 R 而不属于 S 的所有元组组成。

【例】

(4.1.3)交( Intersection )

        条件:设关系 R 和关系 S 具有相同的目 n(即两个关系都有 n 个属性),且相应的属性取自同一个域。

        记为:R ∩ S = { t | t ∈ R∧t ∈S },R∩S = R –(R-S);仍然为 n 目关系,由既属于 R 又属于 S 的元组组成。

【例】

(4.1.4)笛卡尔积(Cartesian Product)

        条件:两个分别为 n 目和 m 目的关系 R S 的笛卡儿积是一个 (n+m) 列的元组的集合。元组的前 n 列是关系 R 的一个元组,后 m 列是关系 S 的一个元组。若 R k1 个元组,S k2 个元组,则关系 R 和关系 S 的笛卡儿积有 k1×k2 个元组。

        记为:R×S = { |tr ∈R ∧ ts∈S };列:(n+m) 列元组的集合;行:k1×k2 个元组。

 【例】

(4.2)专门的关系运算

学生关系 Student、课程关系 Course 和选修关系 SC 如下表:

Student

学号

Sno

姓名

Sname

性别

Ssex

年龄

Sage

所在系

Sdept

202101 张三 20 CS
202102 李四 18 CS
202103 王五 19 MA
202104 赵六 20 IS
Course

课程号

Cno

课程名

Cname

先行课

Cpno

学分

Ccredit

1 数据库 5 4
2 数学 2
3 信息系统 1 4
4 操作系统 6 3
5 数据结构 7 4
6 数据处理 2
7 PASCAL语言 6 4
SC

学号

Sno

课程号

Cno

成绩

Grade

202101
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周小周OvO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值