为啥关系代数中的投影算子会消除重复项?
Posted
技术标签:
【中文标题】为啥关系代数中的投影算子会消除重复项?【英文标题】:Why Projection Operator in relational algebra eliminates duplicates?为什么关系代数中的投影算子会消除重复项? 【发布时间】:2015-04-15 15:02:25 【问题描述】:在 Projection Operator 中消除重复的后果是什么?是的,为什么在实际系统中没有重复消除,除非指定?
【问题讨论】:
关系代数处理集合。真实系统处理多重集合。 我不知道你指的是哪个“真实系统”,但真正专业的信息系统肯定会避免重复信息。 【参考方案1】:如果某件事是真的,那么说两遍并不会让它变得更真实。
在“关系”系统的早期实施中忽略了所需的重复消除,因为工程师担心会影响性能。即使在现有系统中新引入/新支持诸如 DISTINCT 之类的关键字时,用于它的算法通常也非常幼稚,以至于“性能影响”似乎非常真实和/或不可避免。从那以后,事情就一直这样。
【讨论】:
【参考方案2】:正如 Martin 所建议的,关系代数处理集合、投影、选择、并集、交集都是 SET 操作。并且集合没有重复项。然而,现实世界的系统会考虑元组或多重集,它们可能有重复。
【讨论】:
以上是关于为啥关系代数中的投影算子会消除重复项?的主要内容,如果未能解决你的问题,请参考以下文章