在关系代数中,关系表达式 R − (R − S) 与下列哪一个表达式等价(__)。
关系代数中,关系作为元组的集合,遵循集合运算的各类恒等式。其中差运算与交运算存在关键转换关系:R − (R − S) 等价于 R ∩ S,类似地S − (S − R)也等价于R ∩ S,这是因为从一个关系中移除“属于该关系但不属于另一关系的元组”,剩余的就是同时属于两个关系的元组,即交集。此外,差运算还可转化为交运算与补集的组合,即R − S = R ∩ ¬S,这里的¬S指S在全域关系中的补集。同时要明确关系代数基础集合运算的核心属性:交运算取两关系共有的元组,差运算取仅属于前一关系的元组,并运算取属于任一关系的元组,笛卡尔积则是两关系元组的所有可能组合,其结果的属性数为两关系属性数之和,元组数量为两关系元组数的乘积。掌握这些运算转换关系和特性,可帮助简化关系代数表达式,提升查询优化的效率。
本题考察关系代数中集合运算(差、交、并、笛卡尔积)的等价变换相关知识点。
表达式 R − (R − S) 的含义是:从 R 中去掉那些“属于 R 但不属于 S 的元组”,也就是“只保留既在 R 中又在 S 中的元组”,因此等价于 R ∩ S。
选项 A:R ∩ S 表示既属于 R 又属于 S 的元组集合。根据集合恒等式,R − (R − S) = R ∩ S,所以选项 A 正确。
选项 B:R ∪ S 表示属于 R 或属于 S(或同时属于二者)的所有元组,是“并集”运算,结果通常比交集大,显然不等价于从 R 中删掉不在 S 中的部分,因此选项 B 错误。
选项 C:R − S 表示属于 R 且不属于 S 的元组集合,语义刚好与 R ∩ S 相反,R − (R − S) 是把这些从 R 中去掉,结果绝不可能等于 R − S,因此选项 C 错误。
选项 D:R × S 表示 R 与 S 的笛卡尔积,其结果是所有 (r, s) 组合的元组集合,维数与基数都与简单的集合差、交完全不同,更不可能与 R − (R − S) 等价,因此选项 D 错误。
选择选项 A。
