📜  关系代数中的项目运算

📅  最后修改于: 2021-08-27 17:17:57             🧑  作者: Mango

先修课程–关系代数
项目操作选择(或选择)某些属性而放弃其他属性。项目操作也称为垂直分区,因为它对关系或表进行垂直分区,从而丢弃其他列或属性。

符号:

πA(R)

其中“ A”是属性列表,它是Relation(R)的属性中所需的一组属性,
符号“π(pi)”用于表示Project运算符,
R通常是一个关系代数表达式,它导致一个关系。

例子 –

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

例子 –
给定与以下元组的关系系(班级,系,职位):

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,而教职关系的程度为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. 项目操作产生的关系的基数(元组数)为:
    1 <= πA(R) <= |R|
  5. 项目操作产生的关系的程度(属性数)等于属性列表“ A”中的属性数。
  6. 在SQL中,SELECT DISTINCT查询与此处的PROJECT完全相同。