首页> 中国专利> 使用复杂条件从数据源进行数据过滤的方法和系统

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

摘要

本发明公开了使用复杂条件从数据源进行数据过滤的方法,包括:将每种类型数据过滤所用筛选条件转换成由若干个过滤组相互间以相同逻辑关系组合的形式,过滤组包括若干个彼此间以同一逻辑关系组合且均为单一过滤要素的过滤条件,并将所得的过滤组及其过滤条件之间组合关系记载于数据库表中;将当前数据过滤所用筛选条件的取值写入数据库表中;查询数据库表获得当前数据过滤中各过滤条件要求,并依次从数据源中筛选出符合各过滤组要求的初选数据;根据过滤组之间的逻辑关系和初选数据,从数据源中获得符合当前数据过滤要求的数据。还相应公开了包括转换处理单元,赋值单元、第一过滤单元和第二过滤单元的系统。它能有效提高扩展性、维护性和复用性。

著录项

  • 公开/公告号CN102236659A

    专利类型发明专利

  • 公开/公告日2011-11-09

    原文格式PDF

  • 申请/专利权人 中国银联股份有限公司;

    申请/专利号CN201010157790.6

  • 发明设计人 黄敬;刘志宇;

    申请日2010-04-27

  • 分类号G06F17/30;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人谭佐晞

  • 地址 200135 上海市浦东新区含笑路36号银联大厦

  • 入库时间 2023-12-18 03:38:52

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-01-15

    授权

    授权

  • 2012-05-09

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20100427

    实质审查的生效

  • 2012-05-02

    著录事项变更 IPC(主分类):G06F17/30 变更前: 变更后: 申请日:20100427

    著录事项变更

  • 2011-11-09

    公开

    公开

说明书

【技术领域】

本发明涉及数据过滤方法和系统,尤其涉及使用复杂条件从数据源进行 数据过滤的方法和系统,属于数据处理技术领域。

【背景技术】

随着社会发展和时代进步,人们在现代生活中的各种交易活动也日益地 增多,例如,金融业务交易、水电气等公共事业交易和网络支付交易等等。 然而,与此同时,交易行为的类型及其业务逻辑规则也更为复杂。目前,当 需要使用复杂条件(是指由多个条件进行多层次、高耦合性的逻辑关系组合) 从数据源进行数据过滤的处理时,现有技术一般是通过直接在业务系统处理 程序中修改过滤条件和过滤逻辑来实现的。例如,如果需要将数据过滤中的 原条件1改为新条件2时,就直接在该业务系统处理程序中完成相应的修改。

尽管采用上述处理方法,有时确实是非常方便和快捷,然而不容忽视的 是,这种处理方法实际上是将整个系统的数据过滤条件完全混杂在一起,根 本没有对数据过滤的处理逻辑进行严格的限定,从而使得业务处理之间存在 着非常强的耦合性,甚至不确定性。具体而言,上述处理方法以及采用该方 法的系统存在着以下这些缺点:

1、抗变更能力弱。如果存在针对过滤条件取值的变动,则需要更改相 当复杂困难,有时甚至根本无法进行修改;

2、扩展性非常差。如果存在针对过滤条件的增加、删除,则对原有系 统的影响相当大,因此不容易被融合在原有系统中;

3、维护性非常差。由于复杂条件完全混杂在一起,所以致使其非常不 容易被理解,而且维护起来相当麻烦,需要投入大量的人力和物力;

4、复用性非常差。由于过滤条件与过滤处理逻辑被糅合在一起,因此 几乎不能被复用,从而造成对现有资源的严重浪费。

【发明内容】

有鉴于此,本发明的目的在于提供使用复杂条件从数据源进行数据过滤 的方法和系统,以有效地解决现有的处理方法及系统中存在的扩展性、维护 性和复用性都非常差以及抗变更能力弱等诸多问题。

为实现上述发明目的,本发明采用的技术方案如下:

一种使用复杂条件从数据源进行数据过滤的方法,其包括如下步骤:

A、将每种类型数据过滤所用的筛选条件转换成由若干个过滤组相互之 间以相同逻辑关系进行组合的形式,所述过滤组包括若干个彼此之间以同一 逻辑关系进行组合且均为单一过滤要素的过滤条件,并将所得到的过滤组及 其过滤条件之间的组合关系记载于数据库表中;

B、将当前数据过滤所用筛选条件的取值写入所述数据库表中;

C、查询所述数据库表获得当前数据过滤中的各过滤条件要求,并依次 从数据源中筛选出符合当前数据过滤中的各过滤组要求的初选数据;以及

D、根据所述过滤组之间的逻辑关系以及所述初选数据,从数据源中获 得符合当前数据过滤要求的数据。

优选地,在上述的技术方案中,所述过滤组相互之间的逻辑关系是“或”, 所述过滤条件彼此之间的逻辑关系是“与”。

优选地,在上述的技术方案中,所述数据库表包括:

过滤组组合定义表,其用于记载每种类型数据过滤所包括的过滤组的信 息,所述过滤组的信息至少包括过滤组的编号、过滤组内各过滤条件的分类 号,并且每一个过滤组的编号是唯一的;

过滤组算法定义表,其用于记载所述过滤组的具体信息,所述具体信息 至少包括过滤组内各过滤条件的分类号及其过滤方式;以及

过滤组取值表,其用于记载所述过滤组内各过滤条件的分类号、各过滤 条件的具体取值。

优选地,在上述的技术方案中,所述具体信息还包括对所述过滤组内各 过滤条件的描述。

优选地,在上述的技术方案中,所述过滤方式包括过滤条件类型和黑白 名单标识,所述过滤条件类型是指过滤出唯一数值或者一个数值范围,所述 黑白名单标识是指使用黑名单或者白名单的选定方式来选中符合要求的数 据。

优选地,在上述的技术方案中,所述具体取值包括过滤条件最小值和过 滤条件最大值,并且当所述过滤组算法定义表中的所述过滤条件类型为过滤 出唯一数值时,所述过滤条件最小值与所述过滤条件最大值相同。

优选地,在上述的技术方案中,所述过滤组取值表还包括用于记载所需 要的附加数据的字段。

优选地,在上述的技术方案中,所述步骤C具体包括:

步骤C1、判断在所述过滤组组合定义表中是否存在第一个过滤组的记 录?如果不存在则结束,否则进入步骤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为相同或不同的正整数),即更具体地是以下的形式:

(过滤条件1AND过滤条件2AND过滤条件3 AND...过滤条件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的商户的交易,只允许接入角色代码(POS 终端号)范围为00000000--00000010、且发卡机构为C银行(代码01111000) 的卡进行交易。

面对这样复杂的多种条件,可以将其理解为它是由两个部分组成:

(1)在2010年1月1日到2010年3月1日之间,A地分公司(代码 10000001)的行业商户号为111100000000001的商户,只允许接入角色代码 (POS终端号)为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)过滤组组合定义表:

  过滤组的编号   过滤条件的分类号   103   00   103   01   103   07   103   06   104   00   104   01   104   07   104   20

对于上表中的各字段,具体解释如下:

在过滤组的编号为103的过滤组中,共有4个过滤条件/单一过滤要素: 00交易时间、01分公司代码、07行业商户、06接入角色代码;

在过滤组的编号为104的过滤组中,共有4个条件/单一过滤要素:00 交易时间、01分公司代码、07行业商户、20发卡机构。

(2)过滤组算法定义表

  过滤条件   的分类号   过滤条   件类型   黑白名单标识   过滤条件的描述   00   R   W   交易时间   01   S   W   机构代码   07   S   W   行业商户   06   R   B   接入角色代码   20   S   B   发卡机构

对于上表中的各字段,具体解释如下:

00交易时间:是取一段数值范围(以字符R表示),采用白名单模式(以 字符W表示);

01分公司代码:是唯一的数值取值(以字符S表示),采用白名单模式;

07商户代码:是唯一的数值取值,采用白名单模式;

06接入角色代码:是取一段数值范围,采用黑名单模式(以字符B表示);

20发卡机构:是唯一的数值取值,采用黑名单模式。

(3)过滤组取值表

  过滤条件   的分类号   过滤条件最小值   过滤条件最大值   00   20100101000000   20100301235959   01   10000001   10000001   07   111100000000001   111100000000001   06   00000000   00000010   20   01111000   01111000

对于上表中的各字段,具体解释如下:

00交易时间:是取值为20100101000000至2010030123595(即2010 年01月01日00:00:00到2010年03月01日23:59:59);

01分公司代码:取值为10000001(A地分公司);

07行业商户:取值为111100000000001;

06接入角色代码:取值范围为00000000至00000010;由于这个取值采 用黑名单模式,这意味着接入角色代码的范围为非00000000-00000010之 间的终端,才会被过滤出来(被过滤出来的交易都会被决绝);

20发卡机构的:取值为C银行01111000;由于这个取值采用黑名单模 式,这意味着发卡机构为非C银行01111000的终端,才会被过滤出来。

经过以上配置,则在采用本发明方法进行数据过滤时,在2010年1月 1日到2010年3月1日之间,A地分公司(代码10000001)行业商户号为 111100000000001的交易:当其接入角色代码(POS终端号)的范围不为 00000000--00000010时,对应于上述第一过滤组的第一组交易数据被筛选 出来;当其银行卡的发卡机构不为C银行(代码01111000)时,对应于上 述第二过滤组的第二组交易数据也被筛选出来,从而形成了本次数据过滤中 的初选数据。由于在本示例中,第一过滤组和第二过滤组之间采用的是“或” 的逻辑关系,因此根据该逻辑关系以及第一组交易数据、第一组交易数据, 就能够最终从数据源中获得符合当前数据过滤要求的数据,即实现所需要实 现的“在2010年1月1日到2010年3月1日之间,A地分公司(代码10000001) 的行业商户号为111100000000001的商户的交易,只允许接入角色代码(POS 终端号)范围为00000000--00000010、且发卡机构为C银行(代码01111000) 的卡进行交易”的数据过滤要求。

通过以上的详细描述,可以显见本发明方法具有以下的优点:

(1)可以非常方便地增加、删除要素,而无须对原系统进行大的修改。 例如,如果需要增加“交易金额”这一新的要素,则只要在上述各表中增加 对这个新要素的处理,就可以实现增加该要素的功能。

(2)当需要修改相关过滤条件时,只需要相应地修改上述各表即可。 例如,如果想在B分公司也实现如上所述的同样交易权限控制,则仅需要在 过滤组组合定义表中增加一条关于B分公司的记录即可。

此外,本发明还相应地提供了一种使用复杂条件进行数据过滤的系统。 请参阅图3,它示出了该系统的一个较佳实施例的组成结构。如图3所示, 在该较佳实施例中包括:转换处理单元4、赋值单元5、第一过滤单元6和 第二过滤单元7。其中,转换处理单元4是用来将每种类型数据过滤所用的 筛选条件转换成由若干个过滤组(每个过滤组本身则包括若干个均为单一过 滤要素的过滤条件)进行组合的形式并将以上得到的过滤组及其过滤条件之 间的组合关系记载于数据库表中,上述的各过滤组相互之间设为完全相同逻 辑关系(例如“或”),而过滤条件彼此之间设为同一逻辑关系(例如“与”)。 赋值单元5是用来将一个数据过滤所使用到得筛选条件的具体取值写入上 述的数据库表中,第一过滤单元6是用于通过查询上述的数据库表获得数据 过滤中的各过滤条件要求,并依次从数据源中筛选出符合数据过滤中的各过 滤组要求的初选数据,而第二过滤单元7则是用来根据过滤组之间的逻辑关 系以及所获得的初选数据来从数据源中获得符合数据过滤要求的最终数据。 对于本发明系统中涉及到的关于过滤组和过滤组内各过滤条件之间的逻辑 关系设置、数据库表的配置、初选数据的获取、符合数据过滤要求的最终数 据的获取等内容,都可以一一参照前述的本发明方法中的相应部分,故在此 不再赘述。

综上所述,本发明方法和系统由于具备抗变更能力强、扩展性佳、维护 性好、复用性能突出等优点,从而相对于现有技术而具备明显优势,因此值 得在所有的业务处理领域,尤其适于在具有复杂处理逻辑、过滤要素和/或 过滤要素取值经常发生变更的行业领域内(如金融联机交易、金融清算、证 券交易、电信计费等)进行广泛推广和应用。

以上列举了若干具体实施例来详细阐明本发明的使用复杂条件从数据 源进行数据过滤的方法和系统,这些个例仅供说明本发明的原理及其实施方 式之用,而非对本发明的限制,在不脱离本发明的精神和范围的情况下,本 领域的普通技术人员还可以作出各种变形和改进,因此所有等同的技术方案 均应属于本发明的范畴并为本发明的各项权利要求所限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号