国开《数据库基础与应用》第二章 2-1-2:笛卡儿积
2-1-2:笛卡儿积
笛卡尔积是定义在一组域上的数据集合。假定n个数据域用D1、D2、...、Dn表示,则它们的笛卡尔积表示为D1×D2×...×Dn,笛卡尔积中的每个元素为一个n元组:(d1,d2,...,dn),其中di属于Di数据域中的一个元素。
在数据域D1、D2、...、Dn中,若任一个域Di的基数用mi表示,则在这些域上的笛卡尔积,是在所有不同域上各取一个元素值所构成的n元组的集合,笛卡尔积中所含元素的总个数等于所有数据域的基数的乘积m1×m2×...×mn。
例如:D1={1,3,5,7}, D2={2,4,6}, D1域的基数4,D2域的基数3,乘积为12。D1和D2的笛卡尔积为:
D1×D2={(1,2),(1,4),(1,6),(3,2),(3,4),(3,6),(5,2),(5,4),(5,6),(7,2),(7,4),(7,6)}
再如:设学生域={王力,赵火,孙平},导师域={刘华,张明},专业域={计算机,电子},学生域×导师域×专业域,元组的个数为3*2*2=12。
在n个域上的笛卡尔积可以用一张二维数据表来表示,该表的结构为n个域的域名,该表中的内容为笛卡尔积中的所有元组,表中的每一行内容为一个元组,每一列为一个域,每个元组中的n个分量分别来自n个域,每个分量为对应域中的一个值,二维表的行数等于笛卡尔积的元组个数。