怎么区分《计算机二级C语言》的自然连接和笛卡尔积?

2025年03月18日 10:16
有1个网友回答
网友(1):

其区分为:

  1. 自然连接一定是等值连接,但笛卡尔积不一定是自然连接;

  2. 笛卡尔积要求相等的分量,不一定是公共属性;而自然连接要求相等的分量必须是公共属性;

  3. 笛卡尔积不把重复的属性除去;而自然连接要把重复的属性除去。

自然连接和笛卡尔积的区别在于:

  1. 笛卡儿积一般属性(列标题)不同,然后用第一个关系的元组(每一行),分别与第二个关系的每一个元组连接生成新的关系,一般最终生成的关系行数比前两个都多;

  2. 笛卡尔积就是每个属于R的记录后面缀上每个属于S的记录;

  3. 自然连接要求两个关系中至少有一个属性(列标题)相同,具有将相同的属性的元组连接在一起,不同的舍弃;

  4. 自然连接是在笛卡尔积中选取属性值(对于这个例子就是属性B)相等的那些条目,然后把重复的属性删掉。

笛卡尔积的使用说明:

  1. 将每个维度的集合的元素视为“List”,多个集合构成“List> dimvalue”作为输入;

  2. 将多维笛卡尔乘积的结果放到“List result”之中作为输出;

  3. “int layer, string curstring”只是两个中间过程的参数携带变量;

  4. 程序采用递归调用。