数据库系统概论——关系代数详解,2024年最新写的太详细了

本文详细介绍了数据库系统中的关系代数运算,包括选择、交、差和广义笛卡尔积的概念及实例解析。通过实际例子,如学生-课程-选修关系,阐述了如何运用这些运算符进行数据筛选和操作。同时,提供了获取全面学习资料的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注大数据)
img

正文

n

n

n目关系,但结果关系要消除重复元组。

举例:

R

R

R和

S

S

S

  • 具有相同的目

n

n

n(即两个关系都有n个属性)

  • 相应的属性取自同一个域

R

S

R∪S

R∪S

  • 仍为

n

n

n目关系,由属于

R

R

R或属于

S

S

S的元组组成
+ R

 ∪ 
 
 
 S 
 
 
 = 
 
 
 { 
 
 
 t 
 
 
 ∣ 
 
 
 t 
 
 
 ∈ 
 
 
 R 
 
 
 ∨ 
 
 
 t 
 
 
 ∈ 
 
 
 S 
 
 
 } 
 
 
 
 R∪S=\{t|t∈R∨t∈S \} 
 
 
 R∪S={t∣t∈R∨t∈S}

具体如下图所示:
在这里插入图片描述

(2)交( Intersection)

  • 关系

R

R

R与关系

S

S

S的交记作:

R

S

=

{

t

t

R

t

S

}

R∩S={t|t∈R∧t∈S }

R∩S={t∣t∈R∧t∈S}

  • 结果关系由既属于

R

R

R又属于

S

S

S的元组组成,且仍为

n

n

n目关系。

举例:

R

R

R和

S

S

S

  • 具有相同的目

n

n

n

  • 相应的属性取自同一个域

R

S

R∩S

R∩S

  • 仍为

n

n

n目关系,由既属于

R

R

R又属于

S

S

S的元组组成
+ R

 ∩ 
 
 
 S 
 
 
 = 
 
 
 { 
 
 
 t 
 
 
 ∣ 
 
 
 t 
 
 
 ∈ 
 
 
 R 
 
 
 ∧ 
 
 
 t 
 
 
 ∈ 
 
 
 S 
 
 
 } 
 
 
 
 R∩S=\{t|t∈R∧t∈S \} 
 
 
 R∩S={t∣t∈R∧t∈S}

具体如下图所示:
在这里插入图片描述

(3)差(Difference)

  • 关系R与关系S的差记作:

R

S

=

{

t

t

R

t

S

}

R-S={t|t∈R ∧t \notin S}

R−S={t∣t∈R∧t∈/S}

  • R

R

R和

S

S

S的差,结果关系由属于

R

R

R而不属于

S

S

S的所有元组组成,且仍为

n

n

n目关系,即在关系

R

R

R中减去

R

R

R和

S

S

S的相同元组。

举例:

R

R

R和

S

S

S

  • 具有相同的目

n

n

n

  • 相应的属性取自同一个域

R

S

R - S

R−S

  • 仍为

n

n

n目关系,由属于

R

R

R而不属于

S

S

S的所有元组组成
+ R

 − 
 
 
 S 
 
 
 = 
 
 
 { 
 
 
 t 
 
 
 ∣ 
 
 
 t 
 
 
 ∈ 
 
 
 R 
 
 
 ∧ 
 
 
 t 
 
 
 ∉ 
 
 
 S 
 
 
 } 
 
 
 
 R-S=\{t|t∈R ∧t \notin S\} 
 
 
 R−S={t∣t∈R∧t∈/S}

在这里插入图片描述

(4)广义笛卡尔积(Extended Cartesian Product)

  • 两个分别为

n

n

n目和

m

m

m目的关系,

R

R

R和

S

S

S的广义笛卡尔积是一个

(

n

m

)

(n+m)

(n+m)列的元组的集合。

  • 元组的前

n

n

n列是关系

R

R

R的一个元组,后

m

m

m列是关系

S

S

S的一个元组。若

R

R

R有

k

1

k_1

k1​个元组,

S

S

S有

k

2

k_2

k2​个元组,则关系

R

R

R和关系

S

S

S的广义笛卡尔积有

k

1

×

k

2

k_1×k_2

k1​×k2​个元组。

  • 记作:

R

×

S

=

{

(

a

1

,

a

2

,

a

m

,

b

1

,

b

2

,

b

n

)

(

a

1

,

a

2

,

a

m

)

R

(

b

1

,

b

2

,

b

n

)

S

}

R×S={(a_1,a_2,…a_m,b_1,b_2,…b_n)| (a_1,a_2,…a_m) ∈R ∧ (b_1,b_2,…b_n) ∈ S}。

R×S={(a1​,a2​,…am​,b1​,b2​,…bn​)∣(a1​,a2​,…am​)∈R∧(b1​,b2​,…bn​)∈S}。

严格地讲应该是广义的笛卡尔积

  • R

R

R:

n

n

n目关系,

k

1

k_1

k1​个元组

  • S

S

S:

m

m

m目关系,

k

2

k_2

k2​个元组

R

×

S

R×S

R×S

  • 列:

m

n

m+n

m+n列元组的集合

+ 元组的前 
 
 
 
 
 n 
 
 
 
 n 
 
 
 n列是关系 
 
 
 
 
 R 
 
 
 
 R 
 
 
 R的一个元组
+ 后 
 
 
 
 
 m 
 
 
 
 m 
 
 
 m列是关系 
 
 
 
 
 S 
 
 
 
 S 
 
 
 S的一个元组
  • 行:

k

1

×

k

2

k_1×k_2

k1​×k2​个元组
在这里插入图片描述
具体如下图所示:
在这里插入图片描述

1.2 专门的关系运算

在讲解之前,我们先引入几个记号,这样有助于下面的理解,确实关系代数后半部分有点难理解。
**(1)

R

,

t

R

,

t

[

A

i

]

R,t\in R,t[A_i]

R,t∈R,t[Ai​]**
设关系模式为

R

(

A

1

A

2

A

n

)

R(A_1,A_2,…,A_n)

R(A1​,A2​,…,An​),它的一个关系设为

R

R

R,

t

R

t\in R

t∈R表示

t

t

t是

R

R

R的一个元组,

t

[

A

i

]

t[A_i]

t[Ai​]则表示元组t中相应于属性

A

i

A_i

Ai​的一个分量。

(2)

t

r

t

s

\overbrace{t_rt_s}

tr​ts​

​ ,

R

R

R为

n

n

n目关系,

S

S

S为

m

m

m目关系。

t

r

R

t

s

S

t

r

t

s

t_r\in R,t_s\in S, \overbrace{t_r t_s}

tr​∈R,ts​∈S,tr​ts​

​称为元组的连接。

t

r

t

s

\overbrace{t_r t_s}

tr​ts​

​是一个

n

m

n + m

n+m列的元组,前

n

n

n个分量为

R

R

R中的一个

n

n

n元组,后

m

m

m个分量为

S

S

S中的一个

m

m

m元组。
(3)象集

Z

x

Z_x

Zx​
给定一个关系

R

X

,

Z

R(X,Z)

R(X,Z),

X

X

X和

Z

Z

Z为属性组。当

t

[

X

]

=

x

t[X]=x

t[X]=x时,

x

x

x在

R

R

R中的象集(Images Set)为:

Z

x

=

t

[

Z

]

t

R

t

[

X

]

=

x

Z_x={t[Z]|t \in R,t[X]=x}

Zx​=t[Z]∣t∈R,t[X]=x

它表示

R

R

R中属性组

X

X

X上值为

x

x

x的诸元组在

Z

Z

Z上分量的集合。

举例如下:
在这里插入图片描述
上面抽象的例子可能并不是特别容易理解,那么我们就拿生活中的实际例子进行解释:

学生-课程-选修关系:
学生关系Student、课程关系Course和选修关系SC

在这里插入图片描述
在上面的关系表中,我们可以把SC表看作一个关系R,它的属性组为学号,课程号以及成绩,即

R

(

S

n

o

,

C

n

o

,

G

r

a

d

e

)

R(Sno, Cno, Grade)

R(Sno,Cno,Grade)。这时我们将SC表与上面那个例子对比可以看出,Sno为200215121的学号在关系R(SC表)中的象集为

S

n

o

200215121

=

{

1

2

3

}

Sno_{200215121}={1,2,3}

Sno200215121​={1,2,3},以此类推,这样就比较容易理解一点。

1.2.1 选择运算
  • 选择又称为限制

  • 选择运算符的含义

    • 关系R上的选择操作是根据某些条件对关系R做水平分割,即从行的角度选择符合条件的元组。
  • 在关系R中选择满足给定条件的诸元组

    • 记作:

    σ

    F

    R

    =

    {

    t

    t

    R

    F

    (

    t

    )

    =

    ‘真’

    }

    σF(R)={t|t∈R∧F(t)=‘真’}

    σF(R)={t∣t∈R∧F(t)=‘真’}

  • F:选择条件,是一个逻辑表达式,取逻辑值“真”或“假”。

  • 选择运算是从关系R中选取使逻辑表达式F为真的元组,是从行的角度进行的运算

在这里插入图片描述

F:选择条件,是一个逻辑表达式

  • 基本形式为:

X

1

θ

Y

1

X_1θY_1

X1​θY1​

  • θ

θ

θ:比较运算符

(>,

,<,

,=或

<

(>,≥,<,≤,=或<>)

(>,≥,<,≤,=或<>)

  • X

1

Y

1

X_1,Y_1

X1​,Y1​:属性名、常量、简单函数.

  • 属性名也可以用它的序号来代替;

以最上面的学生-课程-选修关系表举例说明更好理解:

[例1] 查询信息系(IS系)全体学生

σ

S

d

e

p

t

=

I

S

(

S

t

u

d

e

n

t

)

σ

5

=

I

S

(

S

t

u

d

e

n

t

)

σ_{Sdept} = ‘IS’ (Student) 或 σ_5 =‘IS’(Student)

σSdept​=′IS′(Student)或σ5​=′IS′(Student)

结果:
在这里插入图片描述

[例2] 查询年龄小于20岁的学生

σ

S

a

g

e

<

20

(

S

t

u

d

e

n

t

)

σ

4

<

20

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

)。这时我们将SC表与上面那个例子对比可以看出,Sno为200215121的学号在关系R(SC表)中的象集为

S

n

o

200215121

=

{

1

2

3

}

Sno_{200215121}={1,2,3}

Sno200215121​={1,2,3},以此类推,这样就比较容易理解一点。

1.2.1 选择运算
  • 选择又称为限制

  • 选择运算符的含义

    • 关系R上的选择操作是根据某些条件对关系R做水平分割,即从行的角度选择符合条件的元组。
  • 在关系R中选择满足给定条件的诸元组

    • 记作:

    σ

    F

    R

    =

    {

    t

    t

    R

    F

    (

    t

    )

    =

    ‘真’

    }

    σF(R)={t|t∈R∧F(t)=‘真’}

    σF(R)={t∣t∈R∧F(t)=‘真’}

  • F:选择条件,是一个逻辑表达式,取逻辑值“真”或“假”。

  • 选择运算是从关系R中选取使逻辑表达式F为真的元组,是从行的角度进行的运算

在这里插入图片描述

F:选择条件,是一个逻辑表达式

  • 基本形式为:

X

1

θ

Y

1

X_1θY_1

X1​θY1​

  • θ

θ

θ:比较运算符

(>,

,<,

,=或

<

(>,≥,<,≤,=或<>)

(>,≥,<,≤,=或<>)

  • X

1

Y

1

X_1,Y_1

X1​,Y1​:属性名、常量、简单函数.

  • 属性名也可以用它的序号来代替;

以最上面的学生-课程-选修关系表举例说明更好理解:

[例1] 查询信息系(IS系)全体学生

σ

S

d

e

p

t

=

I

S

(

S

t

u

d

e

n

t

)

σ

5

=

I

S

(

S

t

u

d

e

n

t

)

σ_{Sdept} = ‘IS’ (Student) 或 σ_5 =‘IS’(Student)

σSdept​=′IS′(Student)或σ5​=′IS′(Student)

结果:
在这里插入图片描述

[例2] 查询年龄小于20岁的学生

σ

S

a

g

e

<

20

(

S

t

u

d

e

n

t

)

σ

4

<

20

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)
[外链图片转存中…(img-XRlNUJ5u-1713408500266)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值