数据库笛卡尔积

数据库笛卡尔积,第1张

所谓笛卡尔积,通俗点说就是指包含两个集合中任意取出两个元素构成的组合的集合.

举例子,假设R中有元组M个,S中有元组N个,则R和S的笛卡尔积中包含的元组数量就是M*N.这个规则可以向多个关系扩展.

上面的例子的笛卡尔积结果就是tj_angela给出的(ac,ad,bc,bd)

属于的含义就是R是d1*d2*……*dn子集,这里其实是相等的.

按照行来计算,可以把每行的3列看做一个整体(看成1列)。

设A,B为集合,用A中元素为第一元素,B中元素为第二元素构成有序对,所有这样的有序对组成的集合叫做A与B的笛卡尔积,记作AxB。

笛卡尔积的符号化为:

A×B={(x,y)|x∈A∧y∈B}

A1 A2 A3 A1 A2 A3

a b c a b c

a b c b a c

a b c c a b

b a c a b c

b a c b a c

b a c c a b

c a b a b c

c a b b a c

c a b c a b

扩展资料:

一、运算性质:

1、对任意集合A,根据定义有

AxΦ =Φ , Φ xA=Φ

2、笛卡尔积运算不满足交换律,即

AxB≠BxA(当A≠Φ ∧B≠Φ∧A≠B时)

3、笛卡尔积运算对并和交运算满足分配律,即

Ax(B∪C)=(AxB)∪(AxC)

(B∪C)xA=(BxA)∪(CxA)

Ax(B∩C)=(AxB)∩(AxC)

(B∩C)xA=(BxA)∩(CxA)

二、应用场合:

在某些情况下用于寻找连续日期中残缺的数据,可以先用笛卡尔积做一个排列组合,然后和目标表进行关联,以查询少了哪些数据。

例如:在一张考勤记录表中,记录了100个人在2018年8月的考勤信息,理论上这些人应该每天都有记录。但是实际上有的人在某些天上面的数据缺少了,然而不论是一天一天的查询,还是一个一个人的查询,都比较麻烦。

在这种情况下,可以针对每个人每一天做一个笛卡尔积处理。去除与实际表的关联,就很容易找出确实数据了。

笛卡尔积又叫笛卡尔乘积,是一个叫笛卡尔的人提出来的。 简单的说就是两个集合相乘的结果。 具体的定义去看看有关代数系的书的定义。 直观的说就是 集合A{a1,a2,a3} 集合B{b1,b2} 他们的 笛卡尔积 是 A*B ={(a1,b1),(a1,b2),(a2,b1),(a2,b2),(a3,b1),(a3,b2)} 任意两个元素结合在一起


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/sjk/6759947.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存