国开《数据库基础与应用》第二章 2-3-4:笛卡尔积运算
2-3-4:笛卡尔积运算
设一个具有n个属性的关系R和另一个具有m个属性的关系S,则它们的笛卡尔积仍是一个关系。该关系的结构是R和S的结构之拼接,即前n个属性来自R,后m个属性来自S,结果关系中的属性个数等于n+m;该关系的值是R中的每个元组与S中的每个元组的所有不同的拼接结果。R和S的笛卡尔积记作R×S,用集合公式表示为:
R×S={tRtS | tR∈R ∧ tS∈S}
若设R和S分别具有k1和k2个元组,则R×S中包含的元组个数为k1×k2个,即等于R和S中元组个数的乘积。
关系的笛卡尔积满足交换率,即R×S=S×R。在实际应用中,若需要考虑关系中属性的先后次序,则关系的笛卡尔积不满足交换率,即R×S≠S×R。
例如:设两个关系R和S分别如下表6和表7所示,则R×S的运算结果如下表8所示,结果关系中的属性个数等于为R和S中的属性个数之和,即等于3+2的值5,元组个数等于R和S中的元组个数之积,即等于4*2的值8。
表6 R关系
A | B | C |
---|---|---|
1 | 10 | 20 |
3 | 15 | 25 |
5 | 36 | 48 |
8 | 40 | 25 |
表7 S关系
D | E |
---|---|
a | b |
b | c |
表8 R×S关系
A | B | C | D | E |
---|---|---|---|---|
1 | 10 | 20 | a | b |
1 | 10 | 20 | b | c |
3 | 5 | 25 | a | b |
3 | 5 | 25 | b | c |
5 | 36 | 48 | a | b |
5 | 36 | 48 | b | c |
8 | 40 | 25 | a | b |
8 | 40 | 25 | b | c |