📜  关系代数中的项目运算

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

先决条件 – 关系代数
项目操作选择(或选择)某些属性而丢弃其他属性。 Project 操作也称为垂直分区,因为它垂直分区关系或表,丢弃其他列或属性。

符号:

πA(R)

其中’A’是属性列表,它是来自relation(R)属性的期望属性集,
符号 ‘π(pi)’ 用于表示项目运算符,
R 通常是一个关系代数表达式,它导致一个关系。

例子 –

πAge(Student)
πDept, Sex(Emp)

例子 –
给定关系 Faculty (Class, Dept, Position) 与以下元组:

Class Dept Position
5 CSE Assistant Professor
5 CSE Assistant Professor
6 EE Assistant Professor
6 EE Assistant Professor

1. 项目班和学院部门——

πClass, Dept(Faculty)

Class Dept
5 CSE
6 EE

在这里,我们可以观察到结果关系的度数(属性数)为 2,而 Faculty 关系的度数为 3,因此我们可以得出结论,对关系应用 Project 操作可能会得到不同程度的关系.

因此,结果关系的程度等于属性列表“A”中的属性数。

2. 学院的项目职位——

πPosition(Faculty)

Position
Assistant Professor


在这里,我们可以观察到所有重复的元组都从结果关系中的关系中删除。这称为重复消除。

3. 学院项目课 –

πClass(Faculty)

Class
5
6

要点:

  1. Project 操作会删除重复的元组。
  2. Project 操作不是可交换的,即:
    πAttribute List 1(πAttribute List2(R)) != πAttribute List 2 (πAttribute List1(R))
  3. 仅当属性列表 1 是属性列表 2 的子集时,以下表达式才有效。
    πAttribute List 1(πAttribute List2(R))

    而且,写上面的表达式和写下面的表达式一样好:

    πAttribute List 1(πAttribute List2(R)) = πAttribute List 1 (R)
  4. 来自 Project 操作的结果关系的基数(元组数)是:
    1 <= πA(R) <= |R|
  5. 来自 Project 操作的结果关系的程度(属性数)等于属性列表“A”中的属性数。
  6. 在 SQL 中,SELECT DISTINCT 查询与此处的 PROJECT 完全相同。