个性化阅读
专注于IT技术分析

DBMS中的关系代数介绍

关系代数是一种过程查询语言, 它以”关系”为输入, 并生成”关系”为输出。关系代数主要为关系数据库和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, 因此A X B之间的叉积将得出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”个元组, 则A X B将具有” 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://en.wikipedia.org/wiki/Relational_algebra

如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请发表评论。

赞(0)
未经允许不得转载:srcmini » DBMS中的关系代数介绍

评论 抢沙发

评论前必须登录!