日期:2014-05-16  浏览次数:20517 次

迪卡尔积的运算
迪卡尔积是向关系的什么方向进行运算的?a.垂直,b.水平,c.既水平也垂直,d.先垂直后水平,(选择哪个呢?又为什么是那样选呢??)
------解决方案--------------------
C......吧
------解决方案--------------------
如果一个2*3的表和一个4*5的表作迪卡尔积,会生成一个8*15的表,不知道这个是你说的哪种。
------解决方案--------------------
写错了,是8*8,行相剩,列相加
------解决方案--------------------
按照我的理解,先从左表选一行,然后分别和右表关联,这算是水平吧。关联之后再选第二行,折算垂直吧。。
------解决方案--------------------
算完一行(水平),然后开始算第二行,第一行和第二行这个顺序应该是垂直吧
------解决方案--------------------
a.垂直

笛卡儿积又名直积
假设A表N列 2行 ,B表M列3行
A表{A1,A2}和B表{B1,B2,B3}的直积 = A x B (不同于矩阵积,不要混淆) = {(A1,B1),(A1,B2),(A1,B3),(A2,B1),(A2,B2),(A2,B3)}
结果行数 =  2*3 = 6行 (这是“积”运算)
结果列数 = N+M (这不是“积”运算,是加运算)

所以是 a.垂直
------解决方案--------------------
补充一个重要概念 笛卡儿积 中 “积” 指的是“乘积”

这个运算中,只有行计算是“乘积”,列计算是“加”

所以只需要关注垂直,无视水平

------解决方案--------------------
根据算法,A表有4行,B表有5行,笛卡尔积为4*5=20行。
“乘积”只关乎左表和右表的行数,我认为这就是“垂直”。