先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注大数据)
正文
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}
trts
,
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,trts
称为元组的连接。
t
r
t
s
⏞
\overbrace{t_r t_s}
trts
是一个
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 (备注大数据)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事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行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!