📜  关系代数中的 SELECT 操作

📅  最后修改于: 2021-09-27 14:59:33             🧑  作者: Mango

先决条件 – 关系代数
选择操作从满足选择语法中提到的给定条件的关系中选择元组的子集。选择操作也称为水平分区,因为它对表或关系进行水平分区。

符号:

σ c(R)

其中“c”是选择条件,它是一个布尔表达式(条件),我们可以有一个单一的条件,如 Roll= 3 或条件的组合,如 X>2 AND Y<1,
符号 ‘σ (sigma)’ 用于表示 select(choose)运算符,

R 是一个关系代数表达式,其结果是一个关系。条件 ‘c’ 中指定的布尔表达式可以写成以下形式:

   or 

其中, 显然是关系属性的名称,

<运算符>是任何运算符{<,>,=,<=,> =,!=}和的,
是取自关系域的常量值。

示例 1:

σ Place = 'Mumbai' or Salary >= 1000000 (Citizen)
σ Department = 'Analytics'(σLocation = 'NewYork'(Manager))

上面的查询(立即)被称为嵌套表达式,这里,像往常一样,我们首先评估内部表达式(结果是关系说 Manager1),然后我们计算 Manager1 上的外部表达式(我们从评估内部表达式中获得的关系) ,这又导致了关系,这是我们输入的关系的一个实例。

示例 2:

给定一个 Student(Roll, Name, Class, Fees, Team) 与以下元组的关系:

Roll Name Department Fees Team
1 Bikash CSE 22000 A
2 Josh CSE 34000 A
3 Kevin ECE 36000 C
4 Ben ECE 56000 D

选择A队的所有学生:

σ Team = 'A' (Student)

Roll Name Department Fees Team
1 Bikash CSE 22000 A
2 Josh CSE 34000 A

选择所有费用大于等于 10000 且属于除 A 以外团队的 ECE 系学生。

σ Fees >= 10000(σClass != 'A' (Student))

Roll Name Department Fees Team
3 Kevin ECE 36000 C
4 Ben ECE 56000 D

关于 Select 操作的要点:
选择运算符是一元的,意味着它只适用于单个关系。选择操作是可交换的,即

σ c1(σ c2(R)) = σ c2(σ c1(R))

选择操作产生的关系的程度(属性数量)与给定的关系的程度相同。选择操作产生的关系的基数(元组数)是,

0 <= σ c (R) <= |R|