关系代数 - 交集属性
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 模型中也可能存在缺陷。我倾向于盲目地假设关系代数的结果可以应用到实际世界中,但一些深思熟虑的思想家在这方面发出了警告。
这项调查最初是从一个测试问题开始的,我断言
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 模型中也可能存在缺陷。我倾向于盲目地假设关系代数的结果可以应用到实际世界中,但一些深思熟虑的思想家在这方面发出了警告。