我试图更好地理解SQL在实践中的工作原理。 它是否将重复记录作为附加参数(表示多重性)存储到记录中?或者,我们是否简单地向表中添加另一个重复记录?或者,还有其他一些方法?我很好奇大多数SQL发行版。SQL实现如何在内部存储重复记录?
例如,假设我们有关系R(A,B,c)与整数属性,我们可以如下存储在内部:
Integer-a Integer-b Integer-c Multiplicity
1 2 3 2
备选地
Integer-a Integer-b Integer-c
1 2 3
1 2 3
我很惊讶它的作品是这样的!特别是当有行李如十字路口时。在最坏的情况下,O(m)空间与O(1)空间。 – Daniel
@丹尼尔。 。 。不要认为任何真正的数据库都是关系模型的学术纯粹实现。最好说关系代数启发了SQL。反过来,真实世界的实现受到更多世俗考虑的深刻影响。也许,关系代数是任何给定数据库的DNA,但其实现更多地受到环境因素的影响。 –
还要注意,现在重复数据删除经常发生在文件系统或更低级别 – Gnudiff