作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是关系代数的初学者,我无法完全理解笛卡尔积的工作原理。
我想知道当我的两个表具有共同属性时笛卡尔积会发生什么。当两个表没有任何共同属性时,我可以毫无疑问地理解。
例如,我试图理解我自己制作的示例。
T1 T2
---------- -----------
A B C A B D
1 4 7 1 4 8
2 5 3 2 9 5
4 7 1 7 3 2
如果我想做 T1 x T2,当我想编写 T1 第一行 A=1 , B=4 , C=7
和第二行的串联的行时T2 行 A=2 ,B=9 ,C=5
,A 列和 B 列发生了什么?
如果你能告诉我 T1 x T2 的结果,那将非常有用!
最佳答案
编辑:如评论部分所述。我正在编辑这个答案,以便正确理解这个问题。
由于这可能是重复的,请参阅此链接: Cartesian products of tables that contains same columns
首先,这取决于您使用的代数。对于某些代数,笛卡尔积可以在具有共同属性的表之间完成,类似于交叉联接,而在其他代数上不允许笛卡尔积,因此您必须重命名属性。
p.s:查找交叉联接,因为它们类似于笛卡尔积,但没有联接条件,请查看示例表交叉联接的预期结果:
T1 T2 T1 X T2
---------- ----------- = ----------------------------
A B C A B D T1.A T1.B T1.C T2.A T2.B T2.D
1 4 7 1 4 8 1 4 7 1 4 8
2 5 3 2 9 5 1 4 7 2 9 5
4 7 1 7 3 2 1 4 7 7 3 2
2 5 3 1 4 8
2 5 3 2 9 5
2 5 3 7 3 2
4 7 1 1 4 8
4 7 1 2 9 5
4 7 1 7 3 2
引用链接:What is the difference between Cartesian product and cross join?
另外,我强烈建议您检查一下并亲自尝试一下!
RelaX - 关系代数计算器 http://dbis-uibk.github.io/relax/index.htm
关于relational-algebra - 关系代数中的笛卡尔积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46321540/
我是一名优秀的程序员,十分优秀!