在关系代数中选择DISTINCT行

Kar*_*ran 17 relational-algebra

SQL中有一个DISTINCT运算符.但是,我有一个赋值,我需要从表中获取一些不同的值,我只能使用关系代数.有办法吗?

nvo*_*gel 36

关系投影总是返回不同的元组,因此永远不需要DISTINCT.RA中不允许重复的元组 - 这是关系模型和SQL模型之间的一个主要区别.

  • 嗨DDavid,我想你可能会忽略Molina,Ullman,Widom提出的观点(顺便出版的优秀书籍和我经常提到的那本书).从第5.2节引用:"当使用关系模型的DBMS首次开发时,它们的查询语言主要实现了关系代数.但是......这些系统将关系视为*包*,而不是设置."(我的重点)他们继续指出行李操作与RA支持的设定操作不同.SQL的DISTINCT"operator"需要一个元组包并消除重复.RA专门处理元组集. (3认同)

Ujj*_*jha 5

关系代数基于集合论.SQL是多集理论的实现.Set始终具有不同的元素.所以元组在关系代数中默认是不同的.