跳到主要内容

集合运算

关系上的并、交、差各做什么?​

设两个关系 R 与 S。

运算符号结果元组
并R∪S出现在 R 或出现在 S 中的元组
交R∩S同时出现在 R 和 S 中的元组
差R−S出现在 R 但不出现在 S 中的元组

集合运算需要满足什么前提?​

  • 并兼容: R 与 S 的模式相同, 属性个数与对应属性的域一致;
  • 原因: 运算按元组是否出现在两侧来判断, 属性对不上就无法比较;
  • 结果: 结果模式与 R、S 相同;

交能否用差表示?​

  • 结论: 可以, R∩S=R−(R−S)R \cap S = R - (R - S);
  • 验证: R−SR-S 是只在 R 中出现的元组, 再从 R 中减去它, 剩下的就是两边都有的元组;
  • 意义: 说明交不是基本运算, 见 关系代数总览;

(source: 010-关系数据模型.md §代数查询语言/§集合操作)