一种数据处理方法和数据库服务器与流程

文档序号:11276382阅读:169来源:国知局
一种数据处理方法和数据库服务器与流程

本申请涉及数据处理技术领域,更具体的说是涉及关系数据库中的关系操作。



背景技术:

关系数据库是采用关系模型作为数据组织形式的数据库。在关系模型中,实体以及实体之间的联系都是用关系来表示的,在用户看来,一个关系模型的逻辑结构就是一张二维表。在关系模型中的关系操作可以包括:选择、投影和连接等查询操作。其中,匹配是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。

在进行匹配时,需要依次对两个关系中的各个元组之间进行匹配检测,即依次检测两个关系中的各个元组之间是否满足连接条件,并从两个关系中提取出与连接条件匹配的元组集合。然而由于每个关系中元组的数量一般都较大,这样,在匹配过程中进行匹配检测的数据处理量也会非常大,从而影响到数据库系统性能。



技术实现要素:

本申请提供了一种数据处理方法和数据库服务器,以减少匹配中的数据处理量,提高数据库系统的性能。

第一方面,本申请实施例提供一种数据处理方法,该方法应用于数据库系统,该数据库系统包含第一数据集合和第二数据集合,该第一数据集合包括至少一个元组,该第二数据集合包括至少一个元组,该方法中从第一数据集合中获取待处理的第一元组;在第一数据集合的检测记录中,检测与第一元组具有相同目标属性的元组的元组信息(如整条元组或者元组的目标属性的信息),该检测记录包含所述第一数据集合中与所述第二数据集合不满足连接条件的元组的元组信息,该目标属性包括该连接条件所设定的需要进行 匹配的属性;当该检测记录中不存在与该第一元组具有相同属性的元组的元组信息时,依据该连接条件将第一元组与所述第二数据集合进行匹配。

由于在检测记录中存在与第一元组具有相同目标属性的元组的信息的情况下,可以确定第二数据集合中不存在与第一元组满足连接条件的元组,从而仅仅在检测记录中不存在与该第一元组具有相同目标属性的元组的信息,再将该第一元组与该第二数据集合进行匹配检测,可以减少循环进行匹配的次数,减少了数据处理量,有利于提高了数据库系统性能。

在一个可能的设计中,与第一元组具有相同目标属性的元组可以为:与该第一元组相同的元组。

在一个可能的设计中,在依据连接条件将第一元组与第二数据集合进行匹配之后,如果第一元组与第二数据集合中的任意一个元组均不满足连接条件,将该第一元组的元组信息存储到检测记录中。

在一个可能的设计中,当该检测记录中存在与第一元组具有相同目标属性的元组的元组信息时,结束该第一元组与第二数据集合的匹配,从而无需将该第一元组与该第二数据集合进行匹配,减少了与第二数据集合进行匹配的次数。

在一个可能的设计中,在从所述第一数据集合中获取待处理的第一元组之前,还可以将第一数据集合中的元组划分为至少一个元组集合,任一元组集合包括至少一个元组,其中任一元组集合中的全部元组的目标属性相同;

相应的,获取第一元组可以是:从所述至少一个元组集合中获取待处理的第一元组集合,然后,从该第一元组集合中获取第一元组。这样,在依据连接条件将第一元组与第二数据集合进行匹配之后,如果该第一元组与第二数据集合中的任意一个元组均不满足连接条件时,结束该第一元组集合中所有元组与第二数据集合的匹配,有利于进一步减少处理量。

进一步,当该检测记录中存在与该第一元组具有相同属性的元组的元组信息时,结束该第一元组集合中所有元组与第二数据集合的匹配,从而可以减少从检测该检测记录的次数,也可以减少匹配次数,进而大大减少了数据处理量。

第二方面,本发明实施例提供了一种数据库服务器,该数据库服务器具有实现上述方法实际中数据库服务器行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

在一个可能的设计中,数据库服务器的结构中包括处理器和存储器,处理器被配置为执行上述方法中相应的功能。该存储器被配置为存储上述方法所涉及的第一数据集合和第二数据集合该存储器还用于与处理器耦合,其保存数据库服务器必要的程序指令和数据。

第三方面,本发明实施例提供了一种数据库服务系统,该数据库服务器系统包含第一数据集合和第二数据集合,该第一数据集合包括至少一个元组,该第二数据集合包括至少一个元组,该系统包括,包括:获取单元,用于从该第一数据集合中获取待处理的第一元组;检测单元,用于在第一数据集合的检测记录中,检测与第一元组具有相同目标属性的元组的元组信息,检测记录包含第一数据集合中与第二数据集合不满足连接条件的元组的元组信息,目标属性包括连接条件所设定的需要进行匹配的属性;匹配单元,用于当检测记录中不存在与该第一元组具有相同属性的元组的元组信息时,依据连接条件将该第一元组与第二数据集合进行匹配。

第四方面,本发明实施例提供了一种计算机存储介质,用于储存为第二方面所描述的数据处理的数据库服务器所用的计算机软件指令,其包含用于执行第一方面的数据处理方法所设计的程序。

本发明实施例的第二、三、四等方面和第一方面的设计思路一致,技术手段类似,技术方案带来的具体有益效果请参考第一方面,不再赘述。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请的一种可能的应用场景示意图;

图2为本申请实施例提供的一种数据处理方法一个实施例的流程示意图;

图3示出了本申请实施例中对属于不同元组序列内的元组进行排序的示意图;

图4示出了本申请提供的一种数据处理方法又一个实施例的流程示意图;

图5示出了本申请提供的一种数据库服务器一种可能的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例的技术方案可应用于数据库系统,从最终用户角度来看,数据库系统可以分为单用户数据库系统、分布式数据库系统等等。

为了便于理解,以分布式数据库系统为例对本申请实施例的应用场景进行介绍。

分布式数据库系统是指数据库中的数据在逻辑上是一个整体,但物理地分布在计算机网络的不同节点上,如图1所示,分布式数据库系统100可以包括多个数据节点101,这多个数据节点之间可以通过网络相连,网络可以是互联网、因特网协议存储区域网络(ipsan,internetprotocolstorageareanetwork)以及私有网络等等。网络中的每个数据节点可以认为是一台数据库服务器,数据节点可以独立处理本地数据库中的数据,执行局部应用;也可以同时存储和处理多个异地数据库中的数据,执行全局应用。

数据节点101可以包括:处理器、硬盘、内存、系统总线、io设备、通信模块以及电源模块等等。

可选的,在分布式数据库系统中还可以包括客户端102,客户端的用户请求(如,数据读取请求、数据编辑请求等)被传送到数据库服务器,数据库 服务器进行处理后,只将结果(而不是全部数据)返回给用户,从而减少网络上的数据传输量。

特别的,在本申请实施例中所述的数据库系统为关系型数据库,关系型数据库采用关系模型作为数据组织形式的数据库。在用户看来,一个关系就是一个二维表,它由行和列组成。

其中,关系模型中的关系就对应着通常所说的表;

元组,表中的一行即为一个元组;

属性,表中一列即为一个属性。

关系模型中的关系操作包括:选择、投影和匹配。

其中,匹配是将两个关系连接成为一个关系,连接的结果是一个包含原关系所有列的新关系。匹配的两个关系对应两个二维表,这两个二维表可以是两个表,也可以是同一个表。在进行匹配时,这两个二维表一个可以称为外部表、一个可以称为内部表,具体将哪个表作为外部表是由用户业务确定或者是按照预设规则来确定的。

其中,外部表可以认为匹配中的驱动表,而内部表可以认为是匹配的被驱动表,一旦外部表和内部表的角色确定,则执行匹配的规则就是:选取外部表中的一个元组分别与内部表中的各个元组进行匹配检测,若,外部表中的该元组与内部表中某个元组满足预设的连接条件,则将这两个元组连接为一个元组,否则,不进行拼接;然后,从外部表中选取另一个元组来分别与内部表中各个元组进行匹配检测,如此循环,直至外部表中的每个元组均与内部表进行了匹配检测。

下面将结合本申请上面所述的共性方面,对本申请实施例进一步详细的描述。

现有的匹配实际上都是采用循环检测的方式,这样,当数据表中的元组数据较大时,循环检测的次数就会大大增加,导致匹配的数据处理量较大。然而对于两个数据表的匹配而言,外部表中可能会存在某两个或多个元组在基于该预设的连接条件与内部表中各个元组进行匹配检测时,所得到检测结果相同,这样,如果外部表中的每个元组均进行匹配检测,则会出现冗余检测。

为此,本申请实施例提供了一种数据处理方法,和基于该数据处理方法的数据库服务器。在匹配中,数据库服务器会将从第一数据集合获取待处理的第一元组,并在第一数据结合的检测记录中,检测是否存在与该第一元组具有相同目标属性的元组的信息,该目标属性为连接条件中设定的需要进行匹配的属性。由于检测记录中记录了第一数据集合中与该第二数据集合不满足连接条件的元组的信息,如果该检测记录中存在与该第一元组具有相同属性的元组的信息时,则说明该第一元组与第二数据集合中任意一个元组也不满足连接条件,则无需再将第一元组与该第二数据集合进行匹配,而只有当该检测记录中不存在与该第一元组具有相同属性的元组的信息时,才会依据连接条件将第一元组与该第二数据集合进行匹配,从而可以减少匹配检测的次数,降低匹配的数据处理量,从而提高数据库系统性能。

下面结合图2,对本申请实施例的数据处理方法进行介绍。该数据处理方法应用于数据库系统,该数据库系统包括第一数据集合和第二数据集合,其中,第一数据集合包括至少一个元组,该第二数据集合包括至少一个元组。在本实施例中,该第一数据集合可以理解为如上所述的外部表,该第二数据集合可以理解为如上所述的内部表。

如图2,本申请实施例可以包括:

201,从所述第一数据集合中获取待处理的第一元组。

为了便于区分,将第一数据集合中当前待与第二数据集合进行匹配的元组称为第一元组。

确定第一元组的方式可以与现有的方式相似,如,可以按照第一数据集合中元组的顺序,依次将第一数据集合中各个元组作为待进行匹配检测的元组,从而确定出当前需要与第二数据集合进行匹配的第一元组。又如,也可以是从第一数据集合中未与第二数据集合进行匹配的元组中随机确定出一个元组作为第一元组。当然,还可以有其他确定当前元组的方式,在此不一一列举。

202,在该第一数据集合的检测记录中,检测与该第一元组具有相同目标属性的元组的元组信息。

其中,该检测记录包括该第一数据集合中与该第二数据集合不满足连接条件的元组的信息。具体的,该检测记录可以包括:当前时刻之前,从第一 数据集合中检测出的与第二数据集合中任意一个元组均不满足连接条件的元组的信息。其中,该检测记录可以存储于数据库系统中,可选的,为了提高查询检测记录的效率,该检测记录可以缓存于内存中。

其中,目标属性包括连接条件所设定的需要进行匹配的属性。需要说明的是,连接条件可能会规定将第一数据集合中的一个或多个属性分别与第二数据集合中的一个或多个属性进行匹配,因此,该目标属性可以理解有一个或多个。举例说明,第一数据集合的元组与第二数据集合中的元组进行连接的连接条件可以为:第一数据集合中元组属性a的值与第二数据集合中元组的属性b的值相等,且第一数据集合中元组的属性c的值大于第二数据集合中元组的属性d的值。则该第一数据集合的属性a和属性c均属于连接条件设定的需要进行匹配的目标属性。

相应的,与第一元组具有相同目标属性的元组是指对于任意一个目标元组而言,该元组的该目标属性的属性值与该第一元组中该目标属性的属性值相同。仍以上面例子中目标属性包括属性a和属性c为例进行介绍,在对检测记录进行检测时,需要检测检测记录中是否存在属性a的属性值与第一元组的属性a的属性值相同,且属性c的属性值与第二元组的属性c的值相同的元组。其中,检测该检测记录中与第一元组具有相同目标属性的元组的方式可以有多种实现方式。

在一个示例中,可以在该第一数据集合的检测记录中,检测与该第一元组相同的元组的元组信息。可以理解的是,当两个元组完全相同时,这两个元组的每个目标属性的属性值也必然相同,这样,分别依据连接条件将这两个元组与第二数据集合进行匹配所得到的匹配结果相同,即如果一个元组无法从第二数据集合中匹配到满足连接条件的元组,另一个元组也无法从第二数据集合中匹配到满足连接条件的元组。

在另一个示例中,从检测记录中检测与第一元组具有相同目标属性的元组也可以理解为从检测记录中检测与该第一元祖的目标属性具有相同检测结果的元组。具体的,可以检测该检测记录中,是否存在与第一元组满足如下预设关系的元组:对于任意一个目标属性,当将该第一元组的该目标属性作为第二数据集合中第二元组的待匹配属性时,则该检测记录中存储的元组的目标属性与该第二元组的待匹配属性之间满足该连接条件,其中,该待匹配 属性属于第二数据集合且为该连接条件设定的需要与该目标属性进行匹配的属性。

当检测记录中存在于第一元组的目标属性满足如上预设关系的元组时,则在检测记录中该元组从第二数据集合中匹配不到满足连接条件的元组的情况下,该第二数据集合中也同样不会存在与该第一元组满足连接条件的元组。

举例说明,连接条件为“第一数据集合表中元组的属性a的值与第二数据集合中元组的属性b的值相等,且第一数据集合中元组的属性c的值大于第二数据集合中元组的属性d的值”时,目标属性包括属性a和属性c,而第二数据集合表中需要与属性a进行匹配的待匹配属性为属性b,第二数据集合中需要与属性c进行匹配的待匹配属性为属性d。那预设关系可以为:对于属性a而言,假设第一元组的属性a的值为第二数据集合中的第二元组的属性b的值,那么检测记录中的元组的属性a的值需要与第一元组的属性a的值相同;同时,对于属性c,假设第一元组的属性c的值为第二数据集合中属性d的值时,那么检测记录中元组的属性c的值需要大于第一元组中属性c的值。例如,假设检测记录中与第一元组满足预设关系的元组的属性a的值为5,且属性c的值为7;那么在第一元组的属性a的值为5,且属性c的值为6(或者是小于6的数值)的情况下,如果第二数据集合中不存在属性c的值为5,且属性d的值小于值7的元组,那么第二数据集合中表中肯定不存在属性值为5且属性d的值小于6元组。

需要说明的是,为了能够对比将检测记录中的元组的目标属性的属性值与第一元组中该目标属性的属性值进行比对,在该检测记录中存储的元组的元组信息可以是完整一条元组,即包括元组的全部属性以及属性值。可选的,为了减少数据存储量以及从检测记录中匹配元组的数据量,在检测记录中可以仅仅记录元组的目标属性的集合。例如,目标属性为属性a和属性c,则检测记录可以存储元组的属性a的值和属性c的值。

203,当该检测记录中不存在与该第一元组具有相同属性的元组的元组信息时,则依据该连接条件将该第一元组与该第二数据集合进行匹配。

当检测记录中不存在与第一元组具有相同目标属性的元组的信息时,则无法确定该第一元组是否与第一数据集合表中的元组之间满足该连接条件, 则需要依据连接条件将第一元组与第二数据集合进行匹配,而在该种情况下所进行的匹配并不会造成冗余检测。

可以理解的是,对于任意一个目标属性,如果该检测记录中某个元组的该目标属性均与第一元组中该目标属性相同,那么在已知该第二数据集合不存在与检测记录中该元组满足连接条件的元组的情况下,可以确定即使将该第一元组与第二数据集合进行匹配,同样无法从第二数据集合中匹配与该第一元组满足连接条件的元组。因此,当检测记录中存在与第一元组具有相同目标属性的元组的元组信息时,还可以结束第一元组与第二数据集合所需进行的匹配,不进行依据连接条件将第一元组与第二数据集合进行匹配的操作,从而减少匹配检测的次数

可选的,在步骤202之后,本申请实施例还可以包括:当检测记录中存在与第一元组具有相同目标属性的元组的元组信息时,则从第一数据集合内未处理的元组中,重新确定当前待处理的第一元组,以实现继续对第一数据集合中其他未处理元组的处理。

可选的,在步骤203之后,本申请实施例还可以包括:如果检测到该第一元组与该第二数据集合中的任意一个元组均不满足该连接条件,则将该第一元组的元组信息存储到该检测记录中。在第一元组与第一数据集合中的任意一个元组均不满足连接条件的情况下,将该第一元组的元组信息存储到检测记录中,从而可以为第一数据集合中其他元组的匹配检测提供依据,有利于减少冗余检测。

本申请实施例中,在确定第一数据集合中当前待处理的第一元组后,会先检测该检测记录中是否存在与该第一元组具有相同目标属性的元组的元组信息,如果检测记录中存在与第一元组具有相同目标属性的元组的元组信息,则可以确定第二数据集合不存在与该第一元组满足连接条件的元组,从而可以仅仅在检测记录中不存在与该第一元组具有相同目标属性的元组的信息时,再依据连接条件将该第一元组与该第二数据集合进行匹配,进而可以减少循环进行匹配检测的次数,减少了数据处理量,有利于提高了数据库系统性能。

可选的,在本申请实施例中,在依据连接条件对第一数据集合与第二数据集合进行匹配之前,还可以包括:将第一数据集合中的元组划分为至少一个元组集合,其中,任意一个元组组合中包括至少一个元组,且任意一个元组序列中不同元组的目标属性相同。如目标属性包括属性a和属性c,则一个元组集合内不同元组的属性a的值均相同,且属性c的值均相同。

在第一数据集合中的元组被划分为多个元组集合的情况下,从第一数据集合中获取待处理的第一元组可以为:从至少一个元组集合中获取待处理的第一元组集合,然后从该第一元组集合中获取待处理的第一元组。如,按照元组集合的先后顺序,从至少一个元组集合中确定当前待处理的元组集合,或者是,从至少一个元组集合中未被处理的元组集合中随机确定一个待处理的元组集合。相应的,从待处理的第一元组集合中确定待处理的第一元组可以是按照该第一元组集合中各个元组的顺序,确定待处理的第一元组,也可以是,从第一元组集合中未处理的元组中,确定待处理的第一元组。

可以理解是,如果元组集合中某一个元组无法从第二数据集合中匹配到满足连接条件的元组,则该元组集合中的其他元组同样无法从第二数据集合中匹配到满足连接条件的元组,因此,在划分出至少一个元组集合后,对于某个元组集合中首个进行处理的元组而言,如果第二数据集合中不存在与该元组满足连接条件的元组,则无需对该元组集合中的其他元组进行匹配检测。因此,在依据该连接条件将该第一元组集合中的第一元组与该第二数据集合进行匹配之后,如果该第一元组与第二数据集合中的任意一个元组均不满足该连接条件时,则无需再将第一元组集合中其他元组与该第二数据集合进行匹配,结束该第一元组集合中所有元组与第二数据集合的匹配。可选的,如果该第一元组与第二数据集合中的任意一个元组均不满足该连接条件时,结束该第一元组集合中所有元组与第二数据集合的匹配的同时,可以从至少一个数据集合中未被处理的元组集合中重新确定第一元组集合,并从重新确定的第一元组集合中确定待处理的第一元组。

相应的,对于该元组集合中首个待处理的第一元组而言,如果检测记录中存在与该第一元组具有相同目标属性的元组的信息,则结束第一元组与第二数据集合进行匹配的同时,也无需将该元组集合中的其他元组与第二数据集合进行匹配,即,当该检测记录中存在与该第一元组具有相同属性的元组 的元组信息时,则结束该第一元组集合中所有元组与该第二数据集合的匹配,以进一步减少匹配次数。同时,当该检测记录中存在与该第一元组具有相同属性的元组的元组信息时,不进行该第一元组集合中其他元组与该第二数据集合的匹配,也减少了将该第一元组集合中的其他元组与检测记录中存储的元组进行匹配的次数,可以进一步减少数据处理量。

可选的,在该检测记录中存在与该第一元组具有相同属性的元组的元组信息的情况下,在结束该第一元组集合中所有元组与该第二数据集合的匹配的同时,还可以从未处理的元组集合中重新确定待处理的第一元组集合,并从重新确定出的第一元组集合中确定待处理的第一元组。

可以理解的是,由于第一数据集合中元组的数据量可能非常巨大,因此,在划分元组集合时,可以仅仅将第一数据集合中已经加载到内存中的元组划分为至少一个元组集合,然后从内存中包含的元组集合中确定待处理的第一元组集合,并执行后续操作。

可选的,在划分出多个个元组集合之后,还可以采用标识区分出属于不同元组集合中的元组。

在一种示例中,在划分出n(n为大于等于1的自然数)个元组序列之后,为了区分出各个元组所属的元组集合,还可以为元组集合分配唯一的集合标识,并为属于同一个元组集合的元组标识出相同的集合标识。如,元组集合a和元组集合b,则元组集合中每个元组可以标识有集合标识a,而元组集合b中的元组可以标识有集合标识b。

在另一种示例中,将内存中第一数据集合中的元组划分为多个元组集合之后,为了便于分区出各个元组所属的元组集合,可以对内存中第一数据集合的各个元组进行排序,将属于同一个元组集合的元组的排序顺序相邻,然后为同一元组集合中排序最靠前的元组分配标识1,并为该元组集合中其他元组分配标识0。

如图3,其示出了对各个元组按照所属的元组集合进行排序以及为元组集合中各个元组分配标识的示意图。为了便于描述,图3中仅仅以元组具有一个属性,且该属性为连接条件中设定的需要进行匹配的目标属性为例进行描述,图3箭头左侧为在排序前该第一数据集合中各元祖的顺序,而箭头右侧 为排序后的该第一数据集合中各个元组的顺序。由图3可见,目标属性的属性值相同的元组属于同一个元组集合,同一个元组集合中各个元组的顺序相邻;同时,同一元组集合中排序最靠前的元组分配的标识为1,而该元组集合中其他元组的标识为0。这样,后续如果该元组集合中标识为1的元组无法从第二数据集合中匹配到满足连接条件的元组,则可以依次序不处理排序位于该元组之后标识为0的元组,直至检测到该元组之后下一个标识为1的元组后,再对该标识为1的元组进行处理。

为了便于理解,下面将结合更多的附图,对本发明的实施例做进一步说明。

以将内存中的第一数据集合的元组划分为至少一个元组集合,且以属于同一个元组集合的元组的顺序相邻为例进行介绍,如图4,其示出了本申请一种数据处理方法又一个实施例的流程示意图,该实施例的数据处理方法可以包括:

401,将内存中属于第一数据集合的元组划分为n个元组集合,并对内存中第一数据集合中的元组进行排序,以将属于相同元组集合的元组的顺序相邻。

其中,n为大于等于1的自然数。

每个元组集合中包括至少一个第一数据集合的元组,且一个第一数据集合中不同元组具有相同的目标属性。

402,按照元组的先后顺序,确定当前待处理的第一元组。

举例说明,先将排序位于第一个元组作为当前元组,后续将位于上一次处理的元组之后最近一个元组作为待处理的第一元组。例如,仍以图3中排序后的元组为例,假设上一次处理的元组为排序处于第三行的元组1,那么当前需要将排序处于第四行的元组2作为第一元组。

403,检测检测记录中是否存在与该第一元组具有相同目标属性的元组的元组信息,如果是,则执行步骤404;如果否,则执行步骤405。

其中,检测记录和目标属性与可以参见前面实施例的相关介绍相同。

404,按照元组的先后顺序,确定排序位于该第一元组之后且最近一个标识为1的目标元组,并将该目标元组作为待处理的第一元组,并返回403。

可以理解的是,如果当前处理的元组的标识为1,则说明该元组为所属的元组集合中首个进行处理的元组,在该种情况下,无法确定检测检测记录中是否存在与该元组具有相同目标属性元组,因此,在获取到待处理的标识为1的元组之后,需要返回执行步骤403。

同时,如果该检测记录中存在与该第一元组具有相同目标属性的元组,则无需对该第一元组所属的元组集合中的其他元组进行处理,结束对该第一元组所属的元组集合中其他元组与第二数据集合的匹配。同时,可以从位于该第一元组之后的其他元组集合中确定需要处理的元组,即,将当前元组之后最近一个标识为1的元组确定为待处理的元组。

405,将该第一元组与第二数据集合进行匹配检测,返回402,直至内存中不存在需要被处理的元组。

可以理解的是,在步骤405之后,如果检测到该第一元组与第二数据集合中的任意一个元组之间均不满足连接条件,同样可以将该第一元组的元组信息存储到该检测记录中。

可以理解的是,当第一数据集合中具有相同目标属性的元组较多时,采用本申请实施例的方法可以很明显的减少数据处理量,相反的当第一数据集合中具有相同目标属性的元组较少,采用本申请实施例的数据处理方法进行匹配处理的过程中,可能不能明显体现出本申请实施例方法的优势。因此,可选的,在将第一数据集合与第二数据集合进行匹配之前,可以先确定该第一数据集合中目标属性的属性值与该第一数据集合中其他元组均不相同的元组,并统计这类元组的总数量,如果该类元组的总数量与第一数据集合中元组的总数量的比值小于预设阈值,则按照本申请实施例的方法将第一数据集合中的元组与第二数据集合进行匹配;反之,则可以按照现有的其他方式来将第一数据集合中的元组与第二数据集合进行匹配。

图5示出了上述实施例中所涉及的数据库服务器的一种可能的结构示意图。

该数据库服务器500包括:存储器501和处理器502。

存储器501,用于存储第一数据集合和第二数据集合,所述第一数据集合包括至少一个元组,所述第二数据集合包括至少一个元组;

处理器502,用于从所述第一数据集合中获取待处理的第一元组;在所述第一数据集合的检测记录中,检测与所述第一元组具有相同目标属性的元组的元组信息,所述检测记录包含所述第一数据集合中与所述第二数据集合不满足连接条件的元组的信息,所述目标属性包括所述连接条件所设定的需要进行匹配的属性;当所述检测记录中不存在与所述第一元组具有相同属性的元组的元组信息时,依据所述连接条件将所述第一元组与所述第二数据集合进行所述匹配。

当然,该存储器还可以用于存储该处理器执行以上操作的程序代码和数据。

可选的,该数据库服务器还可以包括:内存503,用于存储该第一数据集合的检测记录。

可以理解的是,图5仅仅示出了数据库服务器的简化设计。在实际应用中,数据库服务器500还可以包括通信总线504,其中,内存、处理器等可以通过通信总线相连。

该数据库服务器还可以包含任意数量的控制器,通信单元等等,而所有可以实现本发明的数据库服务器都在本申请的保护范围之内

可选的,所述处理器在所述第一数据集合的检测记录中,检测与所述第一元组具有相同目标属性的元组的元组信息,具体为:在所述第一数据集合的检测记录中,检测与所述第一元组相同的元组的元组信息。

可选的,所述处理器还用于,在依据所述连接条件将所述第一元组与所述第二数据集合进行所述匹配之后,当所述第一元组与所述第二数据集合中的任意一个元组均不满足所述连接条件,将所述第一元组的元组信息存储到所述检测记录中。

可选的,所述处理器还用于,当所述检测记录中存在与所述第一元组具有相同目标属性的元组的元组信息时,结束所述第一元组与第二数据集合的所述匹配。

可选的,所述处理器还用于,在从所述第一数据集合中获取待处理的第一元组之前,将所述第一数据集合中的元组划分为至少一个元组集合,任一 元组集合包括至少一个元组,所述任一元组集合中的全部元组的所述目标属性相同;

则,所述处理器从所述第一数据集合中获取待处理的第一元组,具体为:

从所述至少一个元组集合中获取待处理的第一元组集合;

从所述第一元组集合中获取第一元组;

则,所述处理器,还用于,在依据所述连接条件将所述第一元组与所述第二数据集合进行匹配之后,当所述第一元组与所述第二数据集合中的任意一个元组均不满足所述连接条件时,则结束所述第一元组集合中所有元组与所述第二数据集合的所述匹配。

可选的,所述处理器还用于,当所述检测记录中存在与所述第一元组具有相同属性的元组的元组信息时,则结束所述第一元组集合中所有元组与所述第二数据集合的所述匹配。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1