笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尔积(Cartesian product),又称直积,表示为X×Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。
假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。
矩阵的笛卡尔乘积就是矩阵的直积
讲到笛卡尔乘积,就难免会提到数据库中的 "自然连接(⋈)"。
要求:连接两个表 R ⋈ S
(表中标黄的数据后面会说到)
先看两个表头,发现A C是重复出现的
所以连接后,新表头为
然后把A C这两列单独拎出来,如下
发现有两组相同的,(也就是上面标红的数据)
所以这两个表连接之后只有 两条 记录。
此时,可以做出下图
这时候从原来的R表、S表中找到对应数据填上
这样表格就完成了。
然后根据上述过程,尝试完成下面的例题:
结果:
我们还可以知道 当R和S没有公共属性时,则R⋈S = RXS
(没有公共属性,即每个属性都有它们唯一确定的值。所以RXS就没有需要划去的,也没有相同属性需要整合)