关系代数 - 交集属性

Relational Algebra - Intersection Properties

这项调查最初是从一个测试问题开始的,我断言

    R ∩ S = R ∩ (R ∩ S)

根据我的研究,我无法得出很多关于关系代数中交集属性的信息。

如果这是集合论,我会断言

    R ∩ (R ∩ S) => Associativity
      (R ∩ R) ∩ S => Idempotence
          (R) ∩ S = R ∩ S

使用关系代数,我们改为对包进行操作。我相信我可以用袋子采取这些相同的步骤(幂等性似乎微不足道,http://comet.lehman.cuny.edu/stjohn/teaching/db/ullmanSlidesF00/slides7.pdf 的第 3 页建议结合性),但我不能完全证明它是正式的。

谁能帮我断言(或通过反例或其他方式反驳)关系代数中交集的结合性和幂等性?

非常感谢。

关系模型是在集合上正式定义的,因此关系代数仅在集合上定义。但是自从关系数据库将模型扩展到包括多重集或包之后,关系代数也类似地扩展到多重集,几乎所有关于数据库的现代书籍都描述了这种扩展。

特别是,使用符号 Opb 来表示运算符 Op 在多重集上的变体,我们可以定义运算符∩b , ∪b 和 −b 如下:

R∩bS:如果一个元素t在R中出现n次并且在S中出现m次,然后在R中出现min(n,m)次∩b S ;

R ∪b S:如果一个元素t在R中出现n次并且S中出现m次,然后在R中出现n+m次 ∪b S;

R −b S:如果一个元素t在R中出现n次并且在S中出现m次,然后在R中出现max(0,n-m)次-b S .


您想表明:

R∩bS=R∩b(R∩bS)

正如你的正确推导所示,如果我们可以证明运算符的结合性和幂等性,则可以证明这一点 ∩b.

幂等性:

R∩bR=R

在这种情况下,由于每个元素在两个操作数中出现的次数相同,即m = n,我们有它出现min结果中 (n, n) = n 次,即出现相同次数的 R.

关联性:

(R∩bS)∩bT=R∩b(S ∩bT)

假设某个元素t在R中出现n次,在R中出现m次S,和 T 中的 k 次,我们有:

(R∩bS)∩bT

它会在结果中出现min(min(n,m), k)次,这等于min(n,m, k)。另一方面,在:

R∩b(S∩bT)

它会在结果中出现 min(n, min(m,k)) 次,但这又等于 min(n,m ,k).

所以这意味着它在两个结果中出现的次数相同,因此两个结果相等。

正如 philipxy 已经评论过的,关系是集合,因此适用集合论。下面提供的 link 为您提供了一个转换等价列表,其中列出了并集和交集的关联 属性。

http://www.postgresql.org/message-id/attachment/32495/equivalenceRules.pdf

可能会提出这样一个问题,即有多少关系代数定理在 SQL 数据库领域而不是关系代数领域中被证明是正确的。这是有问题的,因为任何给定的实现都可能存在错误,甚至 SQL 模型中也可能存在缺陷。我倾向于盲目地假设关系代数的结果可以应用到实际世界中,但一些深思熟虑的思想家在这方面发出了警告。