关系代数是一种过程查询语言,它以关系为输入,生成关系作为输出。关系代数主要为关系数据库和SQL提供理论基础。
关系代数中的运算符
投影 (π)
投影用于从关系中投影所需的列数据。
例子 :
R
(A B C)
----------
1 2 4
2 2 3
3 2 3
4 3 4
π (BC)
B C
-----
2 4
2 3
3 4
注意:默认投影会删除重复数据。
选择 (σ)
选择用于选择关系所需的元组。
对于上述关系
σ (c>3)R
将选择 c 大于 3 的元组。
注意:选择运算符只选择所需的元组,但不显示它们。为了显示,使用数据投影运算符。
对于上面选择的元组,为了显示,我们还需要使用投影。
π (σ (c>3)R ) will show following tuples.
A B C
-------
1 2 4
4 3 4
联合 (U)
关系代数中的并运算与集合论中的并运算相同,唯一的约束是对于两个关系的并集,两个关系必须具有相同的属性集。
集差值 (-)
关系代数中的集差运算与集合论中的集差运算相同,其约束条件是两个关系都应具有相同的属性集。
重命名 (ρ)
重命名是用于重命名关系属性的一元操作。
ρ (a/b)R 将关系的属性“b”重命名为“a”。
交叉产品 (X)
两个关系之间的叉积假设 A 和 B,因此 AXB 之间的叉积将导致 A 的所有属性后跟 B 的每个属性。 A 的每个记录将与 B 的每个记录配对。
下面是例子
A B
(Name Age Sex ) (Id Course)
------------------ -------------
Ram 14 M 1 DS
Sona 15 F 2 DBMS
kim 20 M
A X B
Name Age Sex Id Course
---------------------------------
Ram 14 M 1 DS
Ram 14 M 2 DBMS
Sona 15 F 1 DS
Sona 15 F 2 DBMS
Kim 20 M 1 DS
Kim 20 M 2 DBMS
注意:如果 A 有“n”个元组,B 有“m”个元组,那么 AXB 将有“n*m”个元组。
自然连接 (⋈)
自然连接是一个二元运算符。两个或多个关系之间的自然连接将产生具有相同公共属性的所有元组组合的集合。
让我们看看下面的例子
Emp Dep
(Name Id Dept_name ) (Dept_name Manager)
------------------------ ---------------------
A 120 IT Sale Y
B 125 HR Prod Z
C 110 Sale IT A
D 111 IT
Emp ⋈ Dep
Name Id Dept_name Manager
-------------------------------
A 120 IT A
C 110 Sale Y
D 111 IT A
条件连接
条件连接的工作方式类似于自然连接。在自然连接中,默认情况下,公共属性之间的条件相等,而在条件连接中,我们可以指定任何条件,例如大于、小于、不等于
让我们看看下面的例子
R S
(ID Sex Marks) (ID Sex Marks)
------------------ --------------------
1 F 45 10 M 20
2 F 55 11 M 22
3 F 60 12 M 59
Join between R And S with condition R.marks >= S.marks
R.ID R.Sex R.Marks S.ID S.Sex S.Marks
-----------------------------------------------
1 F 45 10 M 20
1 F 45 11 M 22
2 F 55 10 M 20
2 F 55 11 M 22
3 F 60 10 M 20
3 F 60 11 M 22
3 F 60 12 M 59
深度文章:
关系代数中的基本运算符 扩展关系代数运算符
以下是上一年的门问题
https://www.geeksforgeeks.org/gate-gate-cs-2012-question-50/
https://www.geeksforgeeks.org/gate-gate-cs-2012-question-43/
参考:
https://en.wikipedia.org/wiki/Relational_algebra