words ending with in:有序偶对

来源:百度文库 编辑:神马品牌网 时间:2024/04/19 05:32:39
有序偶对是什么意思?笛卡尔乘积又是什么东西?

由两个元素x,y按照一定的次序组成的二元组称为有序偶对,简称序偶(Ordered),记作,其中,称x为的第一元素,y为的第二元素。

例8.1 平面上点的坐标,x,y∈R;中国地处亚洲<中国,亚洲>;<上,下>;<左,右>等都是序偶,<操作码,地址码>这条单地址指令也是序偶。

在集合中,说两个集合是相等的,只需说明它们具备相同的元素,而无论这些元素是以怎样的顺序出现。但在序偶中,说两个序偶相等,则必须是其对应位置上的元素相等。即有如下性质:

性质8.1 (1)= 当且仅当x=y;

(2)= 当且仅当x=u,y=v。

将上述定义进行推广,可定义任意N个元素的有序序列。

笛卡儿乘积(Cartesian Product) CROSSJOIN笛卡尔乘积(所有可能的行对)

交叉连接用于对两个源表进行纯关系代数的乘运算。它不使用连接条件来限制结果集合,而是将分别来自两个数据源中的行以所有可能的方式进行组合。数据集合中一的每个行都要与数据集合二中的每一个行分别组成一个新的行。例如,如果第一个数据源中有5个行,而第二个数据源中有4个行,那么在它们之间进行交叉连接就会产生20个行。人们将这种类型的结果集称为笛卡尔乘积。
大多数交叉连接都是由于错误操作而造成的;但是它们却非常适合向数据库中填充例子数据,或者预先创建一些空行以便为程序执行期间所要填充的数据保留空间。
当两个row source做连接,但是它们之间没有关联条件时,就会在两个row source中做笛卡儿乘积,这通常由编写代码疏漏造成(即程序员忘了写关联条件)。笛卡尔乘积是一个表的每一行依次与另一个表中的所有行匹配。在特殊情况下我们可以使用笛卡儿乘积,如在星形连接中,除此之外,我们要尽量使用笛卡儿乘积,否则,自己想结果是什么吧!
注意在下面的语句中,在2个表之间没有连接。
SQL> explain plan for
select emp.deptno,dept,deptno
from emp,dept
Query Plan
------------------------------
SLECT STATEMENT [CHOOSE] Cost=5
? MERGE JOIN CARTESIAN
??? TABLE ACCESS FULL DEPT
??? SORT JOIN
????? TABLE ACCESS FULL EMP
CARTESIAN关键字指出了在2个表之间做笛卡尔乘积。假如表emp有n行,dept表有m行,笛卡尔乘积的结果就是得到n * m行结果。