📜  关系代数中的SELECT运算

📅  最后修改于: 2021-08-25 16:57:56             🧑  作者: 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:

给定学生(卷,姓名,班级,费用,团队)与以下元组的关系:

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

有关选择操作的要点:
选择运算符为一元,表示它仅适用于单个关系。选择操作是可交换的,即

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

选择操作所生成的关系的程度(属性的数量)与给定的关系的程度相同。通过选择操作得到的关系的基数(元组数)为,

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