跳到主要内容

投影与选择

投影 π\pi 做什么?​

  • 输入: 一个关系 R;
  • 输出: 只保留 R 的部分列得到的新关系 S;
  • 写法: πA1,A2,…(R)\pi_{A_1,A_2,\dots}(R), 下标列出要保留的属性;
  • 元数: 输出关系的属性个数等于下标中的属性个数;
  • 元组数: 集合语义下会合并重复元组, 因此可能少于 R; 需要保留重复时用包上的拓展投影, 见 包语义;

选择 σ\sigma 做什么?​

  • 输入: 一个关系 R 与条件 C;
  • 输出: R 中满足条件 C 的元组构成的子集;
  • 写法: σC(R)\sigma_C(R);
  • 模式: 输出关系的属性与 R 完全相同, 只减少元组;

投影与选择的区别是什么?​

维度投影 π\pi选择 σ\sigma
作用对象列 (属性)行 (元组)
条件保留哪些属性保留哪些元组
结果元数减少不变
结果基数可能减少不增加
  • 组合: πL(σC(R))\pi_L(\sigma_C(R)) 先按条件选行, 再只保留需要的列;

(source: 010-关系数据模型.md §代数查询语言/§投影/§选择)