求数据库关系运算中差运算的代码实现

来源:百度知道 编辑:UC知道 时间:2024/04/30 13:26:42
两个表表1表2.实现这两个表的差运算。可用C语言实现
差运算表1-表2的概念是在表1中且不在表2中的元组
只是我C语言学得不好,不会写程序

假设关系R和S分别有n和m个元组,
R的序号为i,S的序号为j.
算法如下:
关于键k对两关系作升序排列;
i=1;j=1;
while in and jm do
比较Ri(k)与Sj(k)
若Ri(k)小,则取Ri;序号i加1;
若Sj(k)小,则序号j加1;
若相等, 则i和j均加1;
endwhile;
若in , 则输出R的剩余元组.
算法简例:设R与S都仅
有一个属性(是键)。排
序后分别是:
R:1,4,5,6 (n=4)
S:2,4 (m=2)

执行过程是:
i=j=1;
比较1和2,输出1,i改为2;
比较4和2, j改为2;
比较4和4, i=j=3;
循环停止;
输出R剩余元组5,6.
算法停止.
操作结果:1,5,6.

这个是集合的差算法,类似于数据库的。

数据库的差运算应该是取得两个查询结果集中的一个结果集相对另一个结果多出的数据,比较中以第一个结果集的结果为主;
两个表的差运算,什么意思啊?

数据库的差运算是先按照查询列的先后顺序排序,然后就是两个有序数组的匹配比较了,排序的目的是为了避免后期比较用循环的方式,数据量很大的话,循环会变得极慢。

select * from 表1
except
select * from 表2

---------
需要用c语言吗????????