使用复杂条件从数据源进行数据过滤的方法和系统的制作方法

文档序号:6601381阅读:356来源:国知局
专利名称:使用复杂条件从数据源进行数据过滤的方法和系统的制作方法
使用复杂条件从数据源进行数据过滤的方法和系统
技术领域
本发明涉及数据过滤方法和系统,尤其涉及使用复杂条件从数据源进行数据过滤的方法和系统,属于数据处理技术领域。
背景技术
随着社会发展和时代进步,人们在现代生活中的各种交易活动也日益地增多,例如,金融业务交易、水电气等公共事业交易和网络支付交易等等。然而,与此同时,交易行为的类型及其业务逻辑规则也更为复杂。目前,当需要使用复杂条件(是指由多个条件进行多层次、高耦合性的逻辑关系组合)从数据源进行数据过滤的处理时,现有技术一般是通过直接在业务系统处理程序中修改过滤条件和过滤逻辑来实现的。例如,如果需要将数据过滤中的原条件1改为新条件2时,就直接在该业务系统处理程序中完成相应的修改。尽管采用上述处理方法,有时确实是非常方便和快捷,然而不容忽视的是,这种处理方法实际上是将整个系统的数据过滤条件完全混杂在一起,根本没有对数据过滤的处理逻辑进行严格的限定,从而使得业务处理之间存在着非常强的耦合性,甚至不确定性。具体而言,上述处理方法以及采用该方法的系统存在着以下这些缺点1、抗变更能力弱。如果存在针对过滤条件取值的变动,则需要更改相当复杂困难, 有时甚至根本无法进行修改;2、扩展性非常差。如果存在针对过滤条件的增加、删除,则对原有系统的影响相当大,因此不容易被融合在原有系统中;3、维护性非常差。由于复杂条件完全混杂在一起,所以致使其非常不容易被理解, 而且维护起来相当麻烦,需要投入大量的人力和物力;4、复用性非常差。由于过滤条件与过滤处理逻辑被糅合在一起,因此几乎不能被复用,从而造成对现有资源的严重浪费。

发明内容有鉴于此,本发明的目的在于提供使用复杂条件从数据源进行数据过滤的方法和系统,以有效地解决现有的处理方法及系统中存在的扩展性、维护性和复用性都非常差以及抗变更能力弱等诸多问题。为实现上述发明目的,本发明采用的技术方案如下一种使用复杂条件从数据源进行数据过滤的方法,其包括如下步骤 A、将每种类型数据过滤所用的筛选条件转换成由若干个过滤组相互之间以相同逻辑关系进行组合的形式,所述过滤组包括若干个彼此之间以同一逻辑关系进行组合且均为单一过滤要素的过滤条件,并将所得到的过滤组及其过滤条件之间的组合关系记载于数据库表中;B、将当前数据过滤所用筛选条件的取值写入所述数据库表中;C、查询所述数据库表获得当前数据过滤中的各过滤条件要求,并依次从数据源中筛选出符合当前数据过滤中的各过滤组要求的初选数据;以及D、根据所述过滤组之间的逻辑关系以及所述初选数据,从数据源中获得符合当前数据过滤要求的数据。优选地,在上述的技术方案中,所述过滤组相互之间的逻辑关系是“或”,所述过滤条件彼此之间的逻辑关系是“与”。优选地,在上述的技术方案中,所述数据库表包括过滤组组合定义表,其用于记载每种类型数据过滤所包括的过滤组的信息,所述过滤组的信息至少包括过滤组的编号、过滤组内各过滤条件的分类号,并且每一个过滤组的编号是唯一的;过滤组算法定义表,其用于记载所述过滤组的具体信息,所述具体信息至少包括过滤组内各过滤条件的分类号及其过滤方式;以及过滤组取值表,其用于记载所述过滤组内各过滤条件的分类号、各过滤条件的具体取值。优选地,在上述的技术方案中,所述具体信息还包括对所述过滤组内各过滤条件的描述。优选地,在上述的技术方案中,所述过滤方式包括过滤条件类型和黑白名单标识, 所述过滤条件类型是指过滤出唯一数值或者一个数值范围,所述黑白名单标识是指使用黑名单或者白名单的选定方式来选中符合要求的数据。优选地,在上述的技术方案中,所述具体取值包括过滤条件最小值和过滤条件最大值,并且当所述过滤组算法定义表中的所述过滤条件类型为过滤出唯一数值时,所述过滤条件最小值与所述过滤条件最大值相同。优选地,在上述的技术方案中,所述过滤组取值表还包括用于记载所需要的附加数据的字段。优选地,在上述的技术方案中,所述步骤C具体包括步骤Cl、判断在所述过滤组组合定义表中是否存在第一个过滤组的记录?如果不存在则结束,否则进入步骤C2 ;步骤C2、根据当前过滤组的编号,在所述过滤组组合定义表中找出该过滤组中第一个过滤条件的分类号;步骤C3、通过所得到的当前过滤条件的分类号,在所述过滤组算法定义表中找出当前过滤条件的过滤条件类型、黑白名单标识;步骤C4、通过所得到的当前过滤条件的分类号,在所述过滤组取值表中找出当前过滤条件的取值记录;步骤C5、判断数据源中是否存在符合当前过滤条件的数据?如果存在,则进入步骤C6 ;否则,继续判断在所述过滤组组合定义表中是否存在下一个过滤组的记录?如果存在,则返回步骤C2;否则,结束;步骤C6、判断当前过滤组内所有过滤条件是否均匹配完毕?如果是则在数据源中查找并输出符合当前过滤组要求的数据,否则返回步骤C 3继续匹配当前过滤组内的下一个过滤条件。本发明还同时提供了一种使用复杂条件进行数据过滤的系统,其包括
转换处理单元,其用于将每种类型数据过滤所用的筛选条件转换成由若干个过滤组相互之间以相同逻辑关系进行组合的形式,所述过滤组包括若干个彼此之间以同一逻辑关系进行组合且均为单一过滤要素的过滤条件,并将所得到的过滤组及其过滤条件之间的组合关系记载于数据库表中;赋值单元,其用于将一个数据过滤所用筛选条件的取值写入所述数据库表中;第一过滤单元,其用于通过查询所述数据库表获得所述数据过滤中的各过滤条件要求,并依次从数据源中筛选出符合该数据过滤中的各过滤组要求的初选数据;以及第二过滤单元,其用于根据所述过滤组之间的逻辑关系以及所述初选数据,从数据源中获得符合该数据过滤要求的数据。优选地,在上述的技术方案中,所述转换处理单元中的过滤组相互之间的逻辑关系是“或”,所述过滤组内的各过滤条件彼此之间的逻辑关系是“与”。本发明的有益效果在于在从数据源进行某种类型的数据过滤应用时,针对使用复杂逻辑组合的多种条件来筛选出数据的情形,由于本发明方法与现有技术相比是通过采用先将这些复杂条件进行逻辑关系转换处理,然后再将其重新组合的方式来完成数据过滤的,此外还通过过滤组取值、过滤组算法定义、过滤组组合定义的组合方式(即将过滤要素取值、过滤要素、过滤要素值操作方法进行分解和再整合)来设计提供优化整合的数据源, 从而能够使得系统的复杂业务处理能力以及扩展性能实现质的提高,对于增加数据过滤的条件、修改数据过滤的选择条件、提高变更速度等都极其有利,因此适用于所有存在需要使用复杂条件进行数据过滤的情形,尤其是过滤要素和/或过滤要素取值经常发生改变的应用场合。相应地,对于采用了本发明方法的系统,其完全适用于所有的业务处理领域,并且尤其适用于具有复杂逻辑处理应用需求的行业领域,例如金融类联机交易、金融清算、电信类计费、商务网络在线交易等。总之,本发明方法及其系统具备抗变更能力强、扩展性佳、维护性好、复用性能突出等众多显著优点,可以有效节约并高效利用已有的资源,杜绝严重浪费人力和物力现象的发生。

以下将结合附图和实施例,对本发明的技术方案作进一步的详细描述。其中图1是本发明的使用复杂条件从数据源进行数据过滤的方法的一个较佳实施例的部分流程处理图;图2是本发明的使用复杂条件从数据源进行数据过滤的方法一个较佳实施例中对复杂条件进行逻辑关系转换处理后的过滤组的组成结构示意图;图3是本发明的使用复杂条件进行数据过滤的系统的一个较佳实施例的组成结构示意图。
具体实施方式对于任一种类型的使用复杂条件进行数据过滤而言,其实质就是多个条件的复杂组合,即将符合多个条件的数据从数据源中筛选出来,这个过程被称为“数据过滤”。在数据筛选过程中,那些已经不能再被分解的过滤条件(例如,仅仅针对客户代码、交易时间、终端号等要素的其中之一,可以直接用>、<、=、!等运算符进行表达)则被称为“单一过滤要素”。在采用本发明方法使用复杂条件进行数据过滤时,首先要将当前数据过滤所使用的复杂条件进行逻辑关系转换处理,从而转换成由若干个过滤组进行组合的形式,并且这些过滤组相互之间的逻辑关系都是完全相同的,在它们之间优选地采用“或”的逻辑关系; 而且,在其中的每一个过滤组内都是通过若干个均为单一过滤要素的过滤条件进行组合的,这些过滤条件彼此之间的逻辑关系是相同的,在它们之间优选地采用“与,,的逻辑关系。 当然,还可以在上述的各过滤组、各过滤条件之间采用其他的逻辑关系。例如,在各过滤组之间采用“与”的逻辑关系,并通过结合“非”的逻辑运算而实现上述优选的“或”逻辑关系的效果。请参阅图2,该图示出了按照上述的逻辑转换处理复杂条件后所得到的的一个示范性实施例的结构组成。如图2所示,此时的复杂条件已经被转换处理成三个以逻辑“或” 关系进行组合的过滤组过滤组1、过滤组2和过滤组3,即被转换表达成以下的形式(过滤组1)OR (过滤组2) OR (过滤组3)同时,在过滤组1、2和3的内部相应地是由过滤条件1至L、过滤条件1’至M和过滤条件1”至N分别按照逻辑“与”关系进行组合的(L、M和N为相同或不同的正整数),即更具体地是以下的形式(过滤条件IAND过滤条件2AND过滤条件3AND...过滤条件L) OR(过滤条件1,AND过滤条件2,AND过滤条件3,AND...过滤条件M)OR(过滤条件1,,AND过滤条件2,,AND过滤条件3,,AND...过滤条件N)显然,如前所述,在以上表达式中的各过滤条件都属于单一过滤要素,在每一个过滤条件中都能够使用>、<、=、!等运算符直接进行表达。在完成了上述转换处理后,然后将经转换处理得到的各过滤组及其过滤条件之间的组合关系记载于数据库表中。在一个优选的实施例中,这些数据表包括过滤组组合定义表、过滤组算法定义表和过滤组取值表,以下将对这些数据表的功能、内容和特点等进行详细说明。对于过滤组组合定义表,它是被用来记载每种类型的数据过滤所包括的过滤组的信息的,这些过滤组的信息应当至少包括过滤组的编号(在该表中是唯一的)、过滤组内各过滤条件的分类号。对于过滤组算法定义表,它是用来记载各过滤组的具体信息的,这些具体信息应当至少包括过滤组内各过滤条件的分类号(对应于上述的过滤组组合定义表中的过滤组内各过滤条件的分类号)及其过滤方式,而过滤方式则包括过滤条件类型和黑白名单标识。其中,过滤条件类型是指通过数据过滤得到唯一一个数值,还是得到一个数值范围;黑白名单标识则是指使用黑名单模式(指不符合该条件时会被选中)、还是白名单模式(指符合该条件时才会被选中)来选中符合要求的数据。此外,在更为优选的情形下,上述的具体信息还可以包括针对过滤组内各过滤条件的描述,也就是在过滤组算法定义表中增加对各过滤条件进行描述性说明的字段以方便理解和维护、使用。对于过滤组取值表,它是被用来记载过滤组内各过滤条件的分类号(对应于上述的过滤组组合定义表中的过滤组内各过滤条件的分类号)、各过滤条件的具体取值。对于具体取值而言,它包括过滤条件最小值和过滤条件最大值,并且当过滤组算法定义表中的过滤条件类型为过滤出唯一一个数值时,很显然此时的过滤条件最小值应当与过滤条件最大值相同。此外,在某些情形下还可以在过滤组取值表中增加一些字段,例如用来记载所需要的附加数据等。在进行某种类型的数据过滤时,先将该数据过滤所使用的筛选条件的取值写入前述的数据库表中,具体而言,在上述的优选实施例中就是写入过滤组取值表中。然后,通过查询数据库表来获得该数据过滤中的各过滤条件要求,并依次从数据源中筛选出符合该数据过滤中的各过滤组要求的初选数据。随后,再根据各过滤组之间的逻辑关系以及上述的初选数据,最终从数据源中查找获得符合该数据过滤所要求的复杂条件的数据。以下通过结合图1可以进一步地理解本发明方法的上述数据过滤处理过程。如图1所示,它是本发明方法的一个较佳实施例的部分流程处理图,其中包括如下的具体步骤首先,在步骤11中判断在过滤组组合定义表中是否存在经过逻辑转换后的全部过滤组中的第一个过滤组的记录?如果不存在则结束操作,否则进入步骤12 ;随后,在步骤12中,根据当前过滤组的编号,在过滤组组合定义表中找出该过滤组中第一个过滤条件的分类号;然后,在步骤13中,通过所得到的当前过滤条件的分类号,在过滤组算法定义表中找出当前过滤条件的过滤条件类型、黑白名单标识;当然,在一些情形下,还可以同时找出如过滤描述等其他的字段信息;接着,在步骤14中,通过所得到的当前过滤条件的分类号,在过滤组取值表中找出当前过滤条件的取值记录;在步骤15中,判断数据源中是否存在符合当前过滤条件的数据?如果存在,则进入步骤16 ;否则,继续判断在过滤组组合定义表中是否存在下一个过滤组的记录?如果存在则返回步骤12,否则结束;在步骤16中,进一步判断当前过滤组内所有过滤条件是否均匹配完毕?如果是, 则在数据源中查找并输出符合当前过滤组要求的数据;否则,返回步骤13继续匹配当前过滤组内的下一个过滤条件。为了能够更为清楚地理解本发明方法,下面将特别结合一个具体实例来进一步地加以说明。假定在一个金融交易系统中,需要实现以下的一个交易权限控制在2010年1月 1日到2010年3月1日之间,A地分公司(代码10000001)的行业商户号为111100000000001 的商户的交易,只允许接入角色代码(P0S终端号)范围为00000000-00000010、且发卡机构为C银行(代码01111000)的卡进行交易。面对这样复杂的多种条件,可以将其理解为它是由两个部分组成(1)在2010年1月1日到2010年3月1日之间,A地分公司(代码10000001) 的行业商户号为111100000000001的商户,只允许接入角色代码(P0S终端号)为 00000000—00000010的终端做交易;(2)在2010年1月1日到2010年3月1日之间,A地分公司(代码10000001)的行业商户号为111100000000001的商户,只允许刷C银行(代码01111000)的卡;
因此,首先将上述的复杂条件进行逻辑关系转化处理,以形成由以下的几个过滤组进行组合的形式(交易时间>=2010年1月1日AND交易时间<=2010年3月1日AND分公司代码=10000001 AND行业商户代码=111100000000001 AND接入角色代码的代码不为 00000000—00000010) OR(交易时间>=2010年1月1日AND交易时间<=2010年3月1日AND分公司代码=10000001 AND行业商户代码=111100000000001 AND发卡机构为非C银行01111000)对此,可以将以上表达式中的前一部分设定为第一过滤组,其过滤组的编号设为 103 ;并将该表达式中的后一部分设定为第二过滤组,其过滤组的编号设为104。在数据库中相应地设置如下的过滤组组合定义表、过滤组算法定义表和过滤组取值表,并且将以上的过滤组和过滤条件之间的组合关系记载在这些表当中。(1)过滤组组合定义表
权利要求
1.一种使用复杂条件从数据源进行数据过滤的方法,其特征在于,所述方法包括如下步骤A、将每种类型数据过滤所用的筛选条件转换成由若干个过滤组相互之间以相同逻辑关系进行组合的形式,所述过滤组包括若干个彼此之间以同一逻辑关系进行组合且均为单一过滤要素的过滤条件,并将所得到的过滤组及其过滤条件之间的组合关系记载于数据库表中;B、将当前数据过滤所用筛选条件的取值写入所述数据库表中;C、查询所述数据库表获得当前数据过滤中的各过滤条件要求,并依次从数据源中筛选出符合当前数据过滤中的各过滤组要求的初选数据;以及D、根据所述过滤组之间的逻辑关系以及所述初选数据,从数据源中获得符合当前数据过滤要求的数据。
2.根据权利要求1所述的方法,其特征在于,所述过滤组相互之间的逻辑关系是“或”, 所述过滤条件彼此之间的逻辑关系是“与”。
3.根据权利要求1或2所述的方法,其特征在于,所述数据库表包括过滤组组合定义表,其用于记载每种类型数据过滤所包括的过滤组的信息,所述过滤组的信息至少包括过滤组的编号、过滤组内各过滤条件的分类号,并且每一个过滤组的编号是唯一的;过滤组算法定义表,其用于记载所述过滤组的具体信息,所述具体信息至少包括过滤组内各过滤条件的分类号及其过滤方式;以及过滤组取值表,其用于记载所述过滤组内各过滤条件的分类号、各过滤条件的具体取值。
4.根据权利要求3所述的方法,其特征在于,所述具体信息还包括对所述过滤组内各过滤条件的描述。
5.根据权利要求3所述的方法,其特征在于,所述过滤方式包括过滤条件类型和黑白名单标识,所述过滤条件类型是指过滤出唯一数值或者一个数值范围,所述黑白名单标识是指使用黑名单或者白名单的选定方式来选中符合要求的数据。
6.根据权利要求5所述的方法,其特征在于,所述具体取值包括过滤条件最小值和过滤条件最大值,并且当所述过滤组算法定义表中的所述过滤条件类型为过滤出唯一数值时,所述过滤条件最小值与所述过滤条件最大值相同。
7.根据权利要求3所述的方法,其特征在于,所述过滤组取值表还包括用于记载所需要的附加数据的字段。
8.根据权利要求3所述的方法,其特征在于,所述步骤C具体包括步骤Cl、判断在所述过滤组组合定义表中是否存在第一个过滤组的记录?如果不存在则结束,否则进入步骤C2;步骤C2、根据当前过滤组的编号,在所述过滤组组合定义表中找出该过滤组中第一个过滤条件的分类号;步骤C3、通过所得到的当前过滤条件的分类号,在所述过滤组算法定义表中找出当前过滤条件的过滤条件类型、黑白名单标识;步骤C4、通过所得到的当前过滤条件的分类号,在所述过滤组取值表中找出当前过滤条件的取值记录;步骤C5、判断数据源中是否存在符合当前过滤条件的数据?如果存在,则进入步骤 C6 ;否则,继续判断在所述过滤组组合定义表中是否存在下一个过滤组的记录?如果存在, 则返回步骤C2;否则,结束;步骤C6、判断当前过滤组内所有过滤条件是否均匹配完毕?如果是则在数据源中查找并输出符合当前过滤组要求的数据,否则返回步骤C 3继续匹配当前过滤组内的下一个过滤条件。
9.一种使用复杂条件从数据源进行数据过滤的系统,其特征在于,所述系统包括转换处理单元,其用于将每种类型数据过滤所用的筛选条件转换成由若干个过滤组相互之间以相同逻辑关系进行组合的形式,所述过滤组包括若干个彼此之间以同一逻辑关系进行组合且均为单一过滤要素的过滤条件,并将所得到的过滤组及其过滤条件之间的组合关系记载于数据库表中;赋值单元,其用于将一个数据过滤所用筛选条件的取值写入所述数据库表中; 第一过滤单元,其用于通过查询所述数据库表获得所述数据过滤中的各过滤条件要求,并依次从数据源中筛选出符合该数据过滤中的各过滤组要求的初选数据;以及第二过滤单元,其用于根据所述过滤组之间的逻辑关系以及所述初选数据,从数据源中获得符合该数据过滤要求的数据。
10.根据权利要求9所述的系统,其特征在于,所述转换处理单元中的过滤组相互之间的逻辑关系是“或”,所述过滤组内的各过滤条件彼此之间的逻辑关系是“与”。
全文摘要
本发明公开了使用复杂条件从数据源进行数据过滤的方法,包括将每种类型数据过滤所用筛选条件转换成由若干个过滤组相互间以相同逻辑关系组合的形式,过滤组包括若干个彼此间以同一逻辑关系组合且均为单一过滤要素的过滤条件,并将所得的过滤组及其过滤条件之间组合关系记载于数据库表中;将当前数据过滤所用筛选条件的取值写入数据库表中;查询数据库表获得当前数据过滤中各过滤条件要求,并依次从数据源中筛选出符合各过滤组要求的初选数据;根据过滤组之间的逻辑关系和初选数据,从数据源中获得符合当前数据过滤要求的数据。还相应公开了包括转换处理单元,赋值单元、第一过滤单元和第二过滤单元的系统。它能有效提高扩展性、维护性和复用性。
文档编号G06F17/30GK102236659SQ201010157790
公开日2011年11月9日 申请日期2010年4月27日 优先权日2010年4月27日
发明者刘志宇, 黄敬 申请人:中国银联股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1