首页 > 母婴教育 > 文化教育 > 中学 >

如何快速理解笛卡尔积的概念

来源:互联网 2023-03-20 14:39:29 323

最近做数据库表设计,涉及到笛卡尔积的概念,以前学得似懂非懂,这属于理念层面,不会也不要紧,但会的话能迅速加深自己的理解,学其他知识也能触类旁通。教科书讲得太抽象,晦涩难懂。那么跟我一起来一步步入门笛卡尔积吧。D7e办公区 - 实用经验教程分享!

工具/原料

  • 愿意主动学习
  • 帮助理解的辅助工具:EXCEL 或纸笔 或 思维导图软件

方法/步骤

  • 1

    首先瞧一眼定义:设D1,D2,...,Di,...,Dn为任意集合,定义D1,D2,...,Di,...,Dn的笛卡尔积为D1×D2×...×Di×...×Dn={(d1,d2,...,di,...,dn)|di∈Di,i=1,2,3,...,n}D7e办公区 - 实用经验教程分享!

    其中,每一个元素(d1,d2,...,di,...,dn)称为一个n元组(n-tuple,即属性的个数),元组的每一个di称为元组的一个分量。若Di(i=1,2,3,...,n)为有限集,其基数(cardinal number,即元组的个数)为mi(i=1,2,3,...,n),则D1×D2×...×Di×...×Dn的基数为各基数之积,笛卡尔积可以用二维表来表示。D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    这一看太麻烦了,太抽象了,简直劝退。所以,我们暂且不管。D7e办公区 - 实用经验教程分享!

    如何快速理解笛卡尔积的概念D7e办公区 - 实用经验教程分享!

  • 2

    我们描述一个事物,可以用其中若干特征来表示,这些特征称为属性(Attriubute)。D7e办公区 - 实用经验教程分享!

    比如描述学生,学生的属性有姓名,性别,身份证号,职业等等,描述苹果,属性有颜色,味道,出产地等等。D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    同时,每个属性有取值范围,取值范围可以看做是一个值的集合,称为该属性的域(domain)。D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    比如,性别的域为{男,女},也就是说性别的取值范围是男,女;D7e办公区 - 实用经验教程分享!

    颜色的域也可以为{赤,橙,黄,绿,青,蓝,紫},也就是说颜色的取值范围是赤,橙,黄,绿,青,蓝,紫;D7e办公区 - 实用经验教程分享!

    个位整数的域为{0,1,2,3,4,5,6,7,8,9}等等。D7e办公区 - 实用经验教程分享!

    因此,在笛卡尔积定义中用字母D代表域,D可以看成是取值范围,集合,或空间。看哪个好理解了。D7e办公区 - 实用经验教程分享!

    如何快速理解笛卡尔积的概念D7e办公区 - 实用经验教程分享!

  • 2相关内容未经许可获取自百度经验
  • 3

    接下来,看个例题来理解概念:D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    若D1={0,1},D2={a,b},D3={c,d},求D1×D2×D3。D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    我们来分析:D7e办公区 - 实用经验教程分享!

    D1的取值范围为{0,1}D7e办公区 - 实用经验教程分享!

    D2的取值范围为{a,b}D7e办公区 - 实用经验教程分享!

    D3的取值范围为{c,d}D7e办公区 - 实用经验教程分享!

    根据定义,这有三个域D1,D2,D3相乘,笛卡尔积的每一个元素将会是(d1,d2,d3)的形式,也就是一个三元组。D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    元组的每个值di都称为元组的一个分量,而每个分量分别来自不同的域D1,D2,D3。D7e办公区 - 实用经验教程分享!

    所以,D7e办公区 - 实用经验教程分享!

    D1×D2×D3={(0,a,c),(0,a,d),(0,b,c),(0,b,d),(1,a,c),(1,a,d),(1,b,c),(1,b,d)}D7e办公区 - 实用经验教程分享!

    它的基数为2×2×2=8,也就是元组的个数为8,用二维表表示的行数为8。D7e办公区 - 实用经验教程分享!

    如何快速理解笛卡尔积的概念D7e办公区 - 实用经验教程分享!

  • 方法/步骤2

  • 1

    在进行笛卡尔积运算前,需要注意的是,参与运算的某属性的取值范围(域)D1,D2,...,Dn并不会取所代表意义的全部可能的值,但他们的计算值(笛卡尔积)却是所有可能的组合。

    D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    例如,姓名的域往往抽取有限个{张三,李四},学号的域也是抽取有限个{100101,100102,100103}。D7e办公区 - 实用经验教程分享!

    但笛卡尔积却是他们的所有可能的组合{(张三,100101),(张三,100102),(张三,100103),(李四,100101),(李四,100102),(李四,100103)}。D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    如果用二维表表示的话,这并没有现实的意义,因为这是所有可能的组合。D7e办公区 - 实用经验教程分享!

    而现实情况是,一个人只可能有一个学号,一个学号只能对应一个人。D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    所以,引出另一个定义:D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    D1×D2×...×Di×...×Dn的子集称为在域D1,D2,...,Di,...,Dn上的关系,记为R(D1,D2,...,Di,...,Dn),称关系R为n元关系。D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    如图,用该二维表表示的关系R为4元关系。它是域D1,D2,D3,D4(学号,姓名,专业,性别)笛卡尔积的子集。而关系R具有现实意义,因为它可能就是某一学校的学生表。D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    域D1,D2,D3,D4(学号,姓名,专业,性别)笛卡尔积的基数为3×3×3×2=54,这里是它的子集,只有3行,基数为3。D7e办公区 - 实用经验教程分享!

    同时,关系R也可以看做一个域(二维表),有三种取值,一个元组意为一个取值。可以与另一个域(二维表)做笛卡尔积,形成一个新的域(二维表)。D7e办公区 - 实用经验教程分享!

    如何快速理解笛卡尔积的概念D7e办公区 - 实用经验教程分享!

  • 2

    在百度百科中,笛卡尔积的定义是:D7e办公区 - 实用经验教程分享!

    “两个集合X和Y的笛卡尔积(Cartesian product),又称直积,表示为X×Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成”D7e办公区 - 实用经验教程分享!

    我们可以看出,这是一个特例,是两个集合的笛卡尔积。D7e办公区 - 实用经验教程分享!

    在数据表中,也经常需要做两个表的join操作,其实也就是求笛卡尔积。D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    教课书中给的广义笛卡尔积定义:D7e办公区 - 实用经验教程分享!

    两个元数分别为n目和m目的关系R和S的广义笛卡尔积是一个(n m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组,记作R×S,其形式定义如下:D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    R×S={t|t= t^n,t^m> ∧ t^n∈R ∧ t^m∈R}D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    D7e办公区 - 实用经验教程分享!

    如果R和S中有相同的属性名,可在属性名前加关系名作为限定,以示区别。若R有K1个元组,S有K2个元组,则R和S的广义笛卡尔积有K1×K2个元组。D7e办公区 - 实用经验教程分享!

    注意:t^n,t^m>代表元组t^n和t^m拼接成的一个元组。“∧”是“逻辑与”。D7e办公区 - 实用经验教程分享!

    如图,列数为3、元组个数为3的关系R和列数为3、元组个数为3的关系S做笛卡尔积,成为了一个列数为6、元组个数为9的新二维表。D7e办公区 - 实用经验教程分享!

    (图片引自百度百科)D7e办公区 - 实用经验教程分享!

    如何快速理解笛卡尔积的概念D7e办公区 - 实用经验教程分享!

  • 注意事项

    • 不同的教材对笛卡尔积有不同的定义,这是因为是站在不同的角度描述的。只要站在一种角度上理解了,用其他角度看也能很快理解

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!D7e办公区 - 实用经验教程分享!


    标签: 数学数据库

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码