笛卡尔积的定义→集合A与集合B的笛卡尔积记作A×B,且有:
A×B={<x,y>〡x∈A,y∈B}
由于有序对<x,y>中x,y的位置是确定的,因此A×B的记法也是确定的,不能写成B×A。
笛卡儿积也可以多个集合合成,A1×A2×…×An.
笛卡儿积的运算性质. 一般不能交换.
给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:
D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}
所有域的所有取值的一个组合
不能重复
例 给出三个域:
D1=SUPERVISOR ={ 张清玫,刘逸 }
D2=SPECIALITY={计算机专业,信息专业}
D3=POSTGRADUATE={李勇,刘晨,王敏}
则D1,D2,D3的笛卡尔积为:
D1×D2×D3 =
{(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),
(张清玫,计算机专业,王敏),(张清玫,信息专业,李勇),
(张清玫,信息专业,刘晨),(张清玫,信息专业,王敏),
(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),
(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),
(刘逸,信息专业,刘晨),(刘逸,信息专业,王敏) }
说得最直接一点,就是把两个或多个表做交叉相乘运算,如有一个学生表,每个学生一条记录,有一个课程表,每个课程代码一条记录,要生成一张学生与课程表的关系,即每个学生要有所有的课程科目,则两个表直接连接查询,不加where条件,即是一个学生与科目的笛卡尔积。