基于数据库时间标签的增量数据查询方法

文档序号:8005684阅读:325来源:国知局
基于数据库时间标签的增量数据查询方法
【专利摘要】本发明公开了一种基于数据库时间标签的增量数据查询方法,其采用时间标签的方式分别对数据库数据和客户端请求进行标注,数据库数据携带的时间标签,记录数据的更新时间,即更新时间标签;客户端请求中携带的时间标签是用户上一次请求数据的响应时间,即响应时间标签,服务器通过比较数据库信息的更新时间标签和请求中的响应时间标签实现增量数据反馈。本发明的方法可以适用于数据更新相对不频繁,但单次更新数据量巨大的客户服务器网络环境,通过增加时间标签,实现数据库增量数据查询,能够在保证满足用户请求的同时减少服务器的数据处理开销和通信开销,极大地改善服务器的性能。
【专利说明】基于数据库时间标签的增量数据查询方法
【技术领域】
[0001]本发明属于网络通信【技术领域】,具体涉及一种基于数据库时间标签的增量数据查询方法的设计。
【背景技术】
[0002]大多数应用软件系统都是基于客户端/服务器这种网络环境开发的,在这种结构中,客户端可以通过向服务器发送请求来索取需求数据。通常情况下,客户端每发送一次请求命令,服务器都会根据客户端的需求查询数据库获得所有相关数据并返回给客户端。对于更新频繁的大数据库系统来说,采用前面所述服务器接收请求即进行查询的机制是合理甚至必须的;但是对于更新相对不频繁,并且单次更新数据量很大的数据系统来说,这种查询机制就会存在一定弊端。
[0003]首先,由于数据更新相对不频繁,在多数情况下用户每次查询得到的最终结果实际都是相同的,但却需要服务器的进行大量重复性的工作。
[0004]其次,假设某客户端经常甚至连续不断的一直发送请求命令的话,服务器就需要一直处理用户请求,查询数据库的相关数据,返回响应,会对服务器造成很大的压力,占用服务器额外资源,影响其工作效率和性能,甚至造成其崩溃。

【发明内容】

[0005]本发明所要解决的技术问题是针对现有技术中客户端与服务器间查询机制存在的问题导致服务器的工作效率和性能较低的缺陷而提出了一种基于数据库时间标签的增量数据查询方法。
[0006]本发明解决其技术问题采用的技术方案是:基于数据库时间标签的增量数据查询方法,具体包括:
[0007]步骤1、服务器端采用更新时间标签对数据库中的数据进行更新时间记录,所述更新时间标签随数据库中的数据变化而更新;同时服务器端采用响应时间标签对客户端向服务器端请求数据的响应时间进行标记;
[0008]步骤2、客户端向所述服务器端发送数据请求报文,若所述客户端为第一次发送数据请求报文,则直接发送请求信息;否则,需要携带上一次所述服务器端对客户端回复的数据请求的响应时间标签;
[0009]步骤3、服务器端接收数据请求包,提取所述数据请求包中携带的上一次请求数据时所述服务器端回复的响应报文中携带的响应时间标签,将所述响应时间标签与需求数据的更新时间标签进行比较,并回复响应报文至所述客户端;
[0010]步骤4、客户端收到所述服务器端回复的响应报文后,分析响应报文中包含的数据,利用本地缓存数据与返回的数据信息构造最终的需求结果。
[0011]进一步的,所述步骤I中,所述更新时间标签根据不同的系统性能和功能要求有不同的粒度模式,所述粒度模式对应为数据库中数据的更新时间标签的标记细化到数据库、数据表、数据记录或者正则表达式。
[0012]更进一步的,所述粒度模式对应为数据库中数据的更新时间标签的标记细化到数据表时,所述数据库单独维护一个更新时间记录表,所述更新时间记录表至少包含两个字段:数据表ID和表的更新时间标签;
[0013]当数据库中某个数据表发生变化候,所述更新时间记录表需要记录这个表的ID和更新时间标签,当所述客户端发送数据请求时,先查询所述更新时间记录表,若发现所需数据发生了更新,再去查询具体数据表中更新的新数据。
[0014]进一步的,所述步骤3中对所述响应时间标签与需求数据的更新时间标签进行比较的具体过程为:若数据更新时间标签晚于请求包中携带的响应时间标签,则需要重新查询数据库,提取需求数据返回给客户端;
[0015]若数据的更新时间标签早于数据请求中的响应时间标签,则不需要在重新查询数据库获得该数据,直接采用标记机制告知客户端此数据在上次请求之后没有更新变化,直接利用上次的数据信息。
[0016]更进一步的,所述步骤3中选择离当下最近的更时间标签作为用于比较的更新时间标签对响应报文作标记。
[0017]本发明的有益效果:本发明基于数据库时间标签的增量数据查询方法通过采用时间标签的方式分别对数据库数据和客户端请求进行标注,数据库数据对应的时间标签,记录数据的最近更新时间,即更新时间标签;客户端请求中携带的时间标签是用户上一次请求数据的响应包标志时间,即响应标记时间标签;服务器通过比较数据库信息的更新时间标签和请求中的响应标记时间标签实现增量数据反馈,本发明可以适用于数据更新相对不频繁的客户服务器网络环境,通过增加时间标签,实现数据库增量数据查询,能够在保证满足用户请求的同时减少服务器的数据处理开销和通信开销,极大地改善服务器的性能,节省资源,同时在灵活性和可扩展性方面有很大的改进。
【专利附图】

【附图说明】
[0018]图1为本发明实施例的基于数据库时间标签的增量数据查询方法的流程框图;
[0019]图2为本发明实施例的基于数据库时间标签的增量数据查询方法中更新记录表的结构不意图;
[0020]图3为本发明实施例的基于数据库时间标签的增量数据查询方法中教授信息表、副教授信息表和博士信息表的结构示意图;
[0021]图4为本发明实施例的基于数据库时间标签的增量数据查询方法中发生变化之前和之后的更新记录表。
【具体实施方式】
[0022]下面结合附图和具体的实施例对本发明作进一步的阐述。
[0023]如图1所示为本发明实施例基于数据库时间标签的增量数据查询方法的流程框图,其具体包括如下步骤:
[0024]步骤1、服务器端采用更新时间标签对数据库中的数据进行更新时间记录,所述更新时间标签随数据库中的数据变化而更新;同时服务器端采用响应时间标签对客户端向服务器端请求数据的响应时间进行标记;
[0025]所述更新时间标签根据不同的系统性能和功能要求有不同的粒度模式,所述粒度模式对应为数据库中数据的更新时间标签的标记可以细化到数据库、数据表、数据记录或者正则表达式等。
[0026]当所述粒度模式对应为数据库中数据的更新时间标签的标记细化到数据表时,所述数据库单独维护一个更新时间记录表,所述更新时间记录表至少包含两个字段:数据表ID和表的更新时间标签;当数据库中某个数据表发生变化候,所述更新时间记录表需要记录这个表的ID和更新时间标签,当所述客户端发送数据请求时,先查询所述更新时间记录表,若发现所需数据发生了更新,再去查询具体数据表中更新的新数据。下面在具体实施例中将详细介绍所述粒度模式细化到数据表时,客户端向服务器端查询数据增量的详细过程。
[0027]步骤2、客户端向所述服务器端发送数据请求报文,若所述客户端为第一次发送数据请求报文,则直接发送请求信息;否则,需要携带上一次所述服务器端对客户端回复的数据请求的响应时间标签;
[0028]当客户端向服务器端发送了数据请求报文之后,所述服务器端会根据客户端的数据请求回复对应的响应报文,响应报文中除了请求的数据信息还包括响应时间标签,所述响应时间标签用于标记此次服务器端的响应时间或者是记录请求数据的最近更新时间,这个标志信息需要在客户端做缓存,当客户端下次再发送相同的请求时需要在请求中携带上这个响应时间标签。
[0029]步骤3、服务器端接收数据请求包,提取所述数据请求包中携带的上一次请求数据时所述服务器端回复的响应报文中携带的响应时间标签,将所述响应时间标签与需求数据的更新时间标签进行比较,并回复响应报文至所述客户端;
[0030]其中,所述响应时间标签与需求数据的更新时间标签进行比较的具体过程为:若数据更新时间标签晚于请求包中携带的响应时间标签,则需要重新查询数据库,提取需求数据返回给客户端;若数据的更新时间标签早于数据请求中的响应时间标签,则不需要在重新查询数据库获得该数据,直接采用标记机制告知客户端此数据在上次请求之后没有更新变化,直接利用上次的数据信息。并且在所述步骤3中应当选择离当下最近的更时间标签作为用于比较的更新时间标签对响应报文作标记,例如,假设客户端向服务器端发送数据请求中要求获得A、B两个数据信息,而A的更新时间标签是2013-02-02,B的更新时间标签是2013-02-03,那两个时间标签对比得知,B的更新时间标签更接近于当下,那我们就选择B的更新时间标签作为整个响应报文的响应时间标签。
[0031]步骤4、客户端收到所述服务器端回复的响应报文后,分析响应报文中包含的数据,利用本地缓存数据与返回的数据信息构造最终的需求结果。
[0032]其中,利用本地缓存数据与返回的数据信息构造最终的需求结果不属于本发明申请方案重点讨论内容,具体手段可以按照相关规则利用现有【技术领域】中的公知常识进行需求结构的构造。
[0033]本发明通过采用时间标签方式分别对数据库数据和客户端请求进行标注,数据库数据携带的更新时间标签记录数据的更新时间;客户端请求中携带的响应时间标签是用户上一次请求数据的响应时间,服务器端通过比较数据库信息的更新时间标签和请求中的响应时间标签实现增量数据反馈,本发明的方法可以适用于数据更新相对不频繁,但单次更新数据量巨大的客户服务器网络环境,通过增加时间标签,实现数据库增量数据查询,能够在保证满足用户请求的同时减少服务器的数据处理开销和通信开销,极大地改善服务器的性能。
[0034]为了本领域技术人员能够理解并且实施本发明技术方案,下面将结合具体的实施例作进一步阐述:其中,所述服务器端的更新时间标签的粒度模式具体细化到数据库中的数据表,数据库中单独维护着一个更新记录表,用来记录每个数据表的更新时间,所述更新记录表的结构如图2所示,其主要包含两个字段:数据表ID和数据表的更新时间标签,当某数据表中有数据发生更新包括增、删、改等变化时,更新记录表中此表的表ID对应的更新时间标签就会随之发生更新;当然,如果所述服务器端的更新时间标签的粒度模式具体细化到其他事项时,对应的更新记录表也可以为其他格式。
[0035]当客户端向所述服务器端发送数据请求报文时,请求包中携带上次数据请求的响应时间标签,当服务器端接收请求包,提取包中携带的上次请求的响应时间标签,然后根据需求查询更新记录表中用户需求的数据表ID对应的更新时间标签,将响应时间标签与更新时间标签两者进行比较,实现增量数据反馈,具体为:若数据表对应的更新时间标签晚于请求包中携带的响应标记时间标签,则需要重新查询数据表提取此表中的需求数据;若更新时间标签早于请求中的时间标签,则不需要再对该数据表进行查询操作,直接在响应包的包头做标记说明即可,告诉客户端此表中的数据未发生更新,与上次的结果保持一致。此夕卜,选择需求数据的数据表ID对应的更新时间标签中离当下时间最近的更新时间标签对响应包标记响应时间标签。
[0036]下面通过一个具体实例来进行说明:
[0037]已知数据库中存在三个表:教授信息表、副教授信息表和博士信息表,所述表结构如图3所示,其中,教授表中包含教授编号、姓名、研究方向三个字段,副教授信息表中包含副教授编号、姓名和研究方向三个字段,博士信息表中包含博士编号、姓名和研究方向三个字段。所述教授信息表、副教授信息表和博士信息表表之间存在一定的关联:当某副教授升职为教授的时候会同时导致教授表和副教授表信息的更新变化。
[0038]假设:教授信息表、副教授信息表和博士信息表的表ID分别为1,2,3 ;某人甲在2013.6.20日发送请求查询了本学院的所有教授信息和所有博士,某人乙在同一天2013.6.20查询了本学院所有副教授的信息,2013.7.1日学院M副教授正是升职为教授,则若甲乙两人在2013.7.15日再一次分别查询本学院教授信息和副教授信息,整个请求、响应流程的展开过程如下步骤:
[0039]步骤A、针对三个表进行更新时间标签标记,更新记录表结构如图2所示,本例的数据库中,2013-07-01日之前和之后的更新记录表如图4所示,可见表1、2的时间标签都发生了变化。
[0040]步骤B、2013-07_15日甲和乙再一次相同的发送请求命令,假设甲乙请求包中携带的上次请求时间标签都是2013-06-20。
[0041]步骤C、服务器收到请求包,提取甲请求包的时间标签,与更新记录表中的表ID=I的更新时间标签比较,发现教授表信息在上次请求之后发生了更新,则需要重新查询教授信息表并提取数据信息,而表ID=3对应的更新时间早于上次请求时间2013-06-20,说明博士表信息没有发生过变化,所以无需再对该表进行查询操作,构造对甲的响应包并携带新的时间标签2013-07-01返回甲客户端。对于乙请求包来说,服务器将时间标签2013-6-20与副教授信息表的更新时间标签进行比较,发现2013-6-20之后,副教授信息表发生了更新变化,所以需要再一次查询此数据表,获得数据返回给客户端乙,时间标签也选择2013-07-01。
[0042]步骤D、甲、乙客户端收到响应之后,都用2013-07-01标签更新替换2013-06-20,
缓存在本地,然后根据规则构造响应结果即可。
【权利要求】
1.基于数据库时间标签的增量数据查询方法,其特征在于,具体包括: 步骤1、服务器端采用更新时间标签对数据库中的数据进行更新时间记录,所述更新时间标签随数据库中的数据变化而更新;同时服务器端采用响应时间标签对客户端向服务器端请求数据的响应时间进行标记; 步骤2、客户端向所述服务器端发送数据请求报文,若所述客户端为第一次发送数据请求报文,则直接发送请求信息;否则,需要携带上一次所述服务器端对客户端回复的数据请求的响应时间标签; 步骤3、服务器端接收数据请求包,提取所述数据请求包中携带的上一次请求数据时所述服务器端回复的响应报文中携带的响应时间标签,将所述响应时间标签与需求数据的更新时间标签进行比较,并回复响应报文至所述客户端; 步骤4、客户端收到所述服务器端回复的响应报文后,分析响应报文中包含的数据,利用本地缓存数据与返回的数据信息构造最终的需求结果。
2.如权利要求1所述的基于数据库时间标签的增量数据查询方法,其特征在于,所述步骤I中,所述更新时间标签有不同的粒度模式,所述粒度模式对应为数据库中数据的更新时间标签的标记细化到数据库、数据表、数据记录或者正则表达式。
3.如权利要求2所述的基于数据库时间标签的增量数据查询方法,其特征在于,所述粒度模式对应为数据库中数据的更新时间标签的标记细化到数据表时,所述数据库单独维护一个更新时间记录表,所述更新时间记录表至少包含两个字段:数据表ID和表的更新时间标签; 当数据库中某个数据表发生变化候,所述更新时间记录表需要记录这个表的ID和更新时间标签,当所述客户端发送数据请求时,先查询所述更新时间记录表,若发现所需数据发生了更新,再去查询具体数据表中更新的新数据。
4.如权利要求1至3任一项权利要求所述的基于数据库时间标签的增量数据查询方法,其特征在于,所述步骤3中对所述响应时间标签与需求数据的更新时间标签进行比较的具体过程为:若数据更新时间标签晚于请求包中携带的响应时间标签,则需要重新查询数据库,提取需求数据返回给客户端; 若数据的更新时间标签早于数据请求中的响应时间标签,则不需要在重新查询数据库获得该数据,直接采用标记机制告知客户端此数据在上次请求之后没有更新变化,直接利用上次的数据信息。
5.如权利要求1至3任一项权利要求所述的基于数据库时间标签的增量数据查询方法,其特征在于,所述步骤3中选择离当下最近的更时间标签作为用于比较的更新时间标签对响应报文作标记。
【文档编号】H04L29/06GK103440317SQ201310381493
【公开日】2013年12月11日 申请日期:2013年8月28日 优先权日:2013年8月28日
【发明者】李龙江, 赵海霞, 夏棋, 李永刚 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1