关系代数基本运算符


关系代数是一种过程化查询语言,它用于在对多个关系进行运算后提供单个表/关系作为输出。这里将讨论一些基本关系。

在我们的学习过程中,我们将使用三个关系(表):

表 1:课程

课程ID名称
1计算机科学
2信息技术
3机械工程

表 2:学生

学号名称地址年龄
1Ram德里18
2Raju海德拉巴20
4Faiz德里22
5Salman海德拉巴20

表 3:宿舍

宿舍号名称地址年龄
1Ram德里18
2Akash海德拉巴20
3NehaJhansi21

我们将对这些关系进行一些操作,以根据执行的操作创建新的关系。

  • 选择运算符 (σ) - 选择运算符用 sigma σ 表示,用于根据某些条件选择关系的元组。只有满足特定条件的元组才会被选中。

语法

σ(condition)(relation_name)

示例

Select the student with course id 1.
σ(course_id = 1)(student)

结果

学号名称地址年龄
4Faiz德里22
  • 投影运算符 (∏) 投影运算符用 ∏ 表示,用于从特定关系中选择列。只选择特定的列。

语法

∏(column1 , column2 , … , columnn)(relation_name)

示例

Let’s select all students's name and no who are in hostel.
∏( st. No. , name)(hostel)

结果

宿舍号名称
1Ram
2Akash
3Neha

在投影中,行总是不同的,即如果存在另一个名为 Panjak 的学生,则另一个将被移除。

  • 笛卡尔积 (X) - 笛卡尔积用 X 符号表示,用于查找两个变量连接的值。在笛卡尔积中,关系 1 的每个元组与关系 2 的每个元组交叉。这使得输出关系的阶数为 nXm,其中 n 是关系 1 中元组的数量,m 是关系 2 中元组的数量。

语法

relation1 X relation2

示例

让我们查找课程表和宿舍表的笛卡尔积。

student X course


宿舍号名称地址年龄课程ID名称
1Ram德里181计算机科学
1Ram德里182信息技术
1Ram德里183机械工程
2Akash海德拉巴201计算机科学
2Akash海德拉巴202信息技术
2Akash海德拉巴203机械工程
3NehaJhansi211计算机科学
3NehaJhansi212信息技术
3NehaJhansi213机械工程
  • 并集 (U) - 两个关系关系 1 和关系 2 的并集将给出存在于关系 1 或关系 2 中的元组,但同时存在于关系 1 和关系 2 中的元组只考虑一次。

    为了找到它们的并集,这两个关系也必须具有相同的域。

语法

relation1 U relation2

示例

让我们查找学生和宿舍的并集。

student U hostel


学号名称地址年龄
1Ram德里18
2Raju海德拉巴20
4Faiz德里22
5Salman海德拉巴20
2Akash海德拉巴20
3NehaJhansi21
  • 差运算符 (-) - 差运算符用 - 符号表示。关系 1 - 关系 2 将导致一个关系,其中存在于关系 1 中但不存在于关系 2 中的元组。为了计算差集,关系必须是并集兼容的。

语法

relation1 - relation2

示例

让我们查找学生 - 宿舍的操作。

student - hostel


学号名称地址年龄
2Raju海德拉巴20
4Faiz德里22
5Salman海德拉巴20
  • 重命名 (ρ) - 重命名运算符用 ρ 表示,用于将给定的关系重命名为另一个给定的名称。

语法

ρ(new_name , old_name)

更新于:2019年11月22日

4K+ 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告