CN103902548A - 一种访问数据库的系统和方法及注册、订票、网购系统 - Google Patents
一种访问数据库的系统和方法及注册、订票、网购系统 Download PDFInfo
- Publication number
- CN103902548A CN103902548A CN201210572366.7A CN201210572366A CN103902548A CN 103902548 A CN103902548 A CN 103902548A CN 201210572366 A CN201210572366 A CN 201210572366A CN 103902548 A CN103902548 A CN 103902548A
- Authority
- CN
- China
- Prior art keywords
- data
- server
- data storehouse
- request
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
Abstract
本发明涉及一种访问数据库的系统和方法及注册、订票、网购系统。该系统包括:网络服务器、读、写数据库服务器和客户端;其中,客户端与网络服务器通过网络连接,网络服务器分别与读、写数据库服务器相连;客户端向网络服务器发送读、写数据库请求;从网络服务器获得返回数据;网络服务器从读数据库服务器获得读数据库请求所要求的数据提供给客户端;根据写数据库请求,修改写数据库服务器中的相应数据,并将修改结果提供给客户端;写数据库服务器周期性将自身存储的数据库提供给读数据库服务器,使二者存储的数据库保持同步。本发明能降低单台服务器的访问量,防止巨量访问造成服务器瘫痪。
Description
技术领域
本发明涉及数据库的网络访问技术领域,特别是涉及一种访问数据库的系统和方法及注册、订票、网购系统。
背景技术
随着互联网技术的发展,网络注册、网络订票、网络购物等通过网络来进行某种操作的新兴事物层出不穷,其共同的技术基础是数据库的网络访问技术。该技术中,数据库存储在服务器,外部的客户端通过网络向服务器提交读数据库请求及写数据库请求,分别完成对数据库的读操作和写操作。这种技术的特点是访问的种类比较单一,基本只有读数据库请求和写数据库请求两种,但访问量大且在时间上随机分布。这样,当巨量的读、写数据库请求同时提交给服务器时,很容易造成服务器的瘫痪,随之而来的不仅是客户端不断的刷新操作从而向服务器提交更多的请求,进一步加大服务器的工作负担,延长服务器的响应时间,更糟的后果是可能造成数据库发生混乱,给客户及商家带来巨大损失。现有的防止服务器瘫痪的方法是提高服务器的配置,从而提高其响应速度,在尽可能短的时间内完成不断涌来的读、写服务器请求,但是,目前的服务器制造水平远远不能满足巨量客户端同时提交请求时的响应需求,而且,由于上述的巨量访问往往集中在很短的时间(如圣诞、国庆、元旦等节假日期间)里,在其余的大量时间里,服务器的网络访问量都比较小,这种提高服务器配置的方式也会造成资源的浪费和成本的增加。
发明内容
本发明所要解决的技术问题是提供一种访问数据库的系统和方法及注册、订票、网购系统,能降低单台服务器的访问量,防止巨量访问造成服务器瘫痪。
本发明解决上述技术问题的技术方案如下:一种访问数据库的系统,该系统包括:网络服务器、读数据库服务器、写数据库服务器、一台以上的客户端;其中,
所述客户端与所述网络服务器通过网络连接,所述网络服务器分别与所述读数据库服务器和所述写数据库服务器相连;
所述客户端用于,向所述网络服务器发送读数据库请求及写数据库请求;从所述网络服务器获得返回数据;
所述网络服务器用于,从所述读数据库服务器获得所述读数据库请求所要求的数据作为返回数据提供给所述客户端;根据所述写数据库请求,修改所述写数据库服务器中的相应数据,并将修改结果作为返回数据提供给所述客户端;
所述读数据库服务器用于,存储数据库,并向所述网络服务器提供其要求的数据;
所述写数据库服务器用于,存储数据库,并保存所述网络服务器对数据的所述修改结果;周期性将自身存储的所述数据库提供给所述读数据库服务器,使二者存储的数据库保持同步。
本发明的有益效果是:本发明中,数据库保存在读数据库服务器和写数据库服务器,写数据库服务器周期性将其存储的数据库提供给读数据库服务器,使二者的数据库保持同步。网络服务器根据客户端发送的数据库操作请求类型(读数据库请求和写数据库请求)的不同,分别访问读数据库服务器和写数据库服务器,进行数据的读取和修改,并将返回数据提供给客户端,完成客户端对数据库的访问过程。这样,当巨量的数据库读、写请求发送到网络服务器时,读数据库服务器和写数据库服务器分别承担一部分访问,这降低了单台服务器的访问量,防止了巨量访问造成服务器发生瘫痪,同时也降低了对于读数据库服务器和写数据库服务器的配置要求,一定程度上降低了系统对服务器资源的要求以及系统成本。
在上述技术方案的基础上,本发明还可以做如下改进:
进一步,所述读数据库服务器和写数据库服务器的数量均超过1台,所有读数据库服务器组成读数据库服务器集群,所有写数据库服务器组成写数据库服务器集群;则
所述网络服务器用于,从所述读数据库服务器集群中选中一台读数据库服务器作为对应于所述读数据库请求的目标读数据库服务器,从所述目标读数据库服务器获得所述读数据库请求所要求的数据作为返回数据提供给所述客户端;从所述写数据库服务器集群中选中一台写数据库服务器作为对应于所述写数据库请求的目标写数据库服务器,根据所述写数据库请求,修改所述目标写数据库服务器中的相应数据,并将修改结果作为返回数据提供给所述客户端;
各所述读数据库服务器用于,存储数据库并与所述读数据库服务器集群中的其他读数据库服务器保持数据库的同步;向所述网络服务器提供其要求的数据;
各所述写数据库服务器用于,存储数据库并与所述写数据库服务器集群中的其他写数据库服务器保持数据库的同步;保存所述网络服务器对数据的所述修改结果;
所述写数据库服务器集群周期性将自身存储的所述数据库提供给所述读数据库服务器集群,使二者存储的数据库保持同步。
进一步,所述网络服务器还用于,将所述数据库中数据条数不超过1000条的数据表保存到自身的内存中,构成内存数据表,并周期性将该内存数据表中的数据提供给所述读数据库服务器,保持数据的同步;判断所述内存数据表是否包含所述读数据库请求所要求的数据,是则将该数据作为返回数据提供给所述客户端,否则,从所述读数据库服务器获得所述读数据库请求所要求的数据作为返回数据提供给所述客户端;判断所述内存数据表是否包含所述写数据库请求所要求修改的数据,是则修改所述内存数据表中的相应数据,并将修改结果作为返回数据提供给所述客户端,否则,根据所述写数据库请求,修改所述写数据库服务器中的相应数据,并将修改结果作为返回数据提供给所述客户端。
进一步,所述网络服务器还用于:按照合并规则,将2个以上的读数据库请求合并为合并读数据库请求,从所述读数据库服务器一次性获得所述合并读数据库请求所要求的所有数据作为返回数据分别提供给相应客户端;按照所述合并规则,将2个以上的写数据库请求合并为合并写数据库请求,根据该合并写数据库请求,一次性修改所述写数据库服务器中的所有相应数据,并将修改结果作为返回数据分别提供给相应客户端;
其中,所述合并规则包括:
请求执行的操作的类型相同,则合并;
和/或,请求执行的操作之间具有关联性,则合并。
本发明还提供了一种注册系统,该系统包括:网络服务器、读数据库服务器、写数据库服务器、一台以上的注册客户端;其中,
所述注册客户端与所述网络服务器通过网络连接,所述网络服务器分别与所述读数据库服务器和所述写数据库服务器相连;
所述注册客户端用于,向所述网络服务器发送读数据库请求及写数据库请求;从所述网络服务器获得返回数据;
所述网络服务器用于,从所述读数据库服务器获得所述读数据库请求所要求的注册码作为返回数据提供给所述注册客户端;根据所述写数据库请求,修改所述写数据库服务器中的相应注册码,并将修改结果作为返回数据提供给所述注册客户端;
所述读数据库服务器用于,存储数据库,并向所述网络服务器提供其要求的注册码;
所述写数据库服务器用于,存储数据库,并保存所述网络服务器对注册码的所述修改结果;周期性将自身存储的所述数据库提供给所述读数据库服务器,使二者存储的数据库保持同步。
进一步,所述网络服务器还用于,将所述数据库中注册码的条数不超过1000条的注册码表保存到自身的内存中,构成内存注册码表,并周期性将该内存注册码表中的注册码提供给所述读数据库服务器,保持数据的同步;判断所述内存注册码表是否包含所述读数据库请求所要求的注册码,是则将该注册码作为返回数据提供给所述客户端,否则,从所述读数据库服务器获得所述读数据库请求所要求的注册码作为返回数据提供给所述客户端;判断所述内存注册码表是否包含所述写数据库请求所要求修改的注册码,是则修改所述内存注册码表中的相应注册码,并将修改结果作为返回数据提供给所述客户端,否则,根据所述写数据库请求,修改所述写数据库服务器中的相应注册码,并将修改结果作为返回数据提供给所述客户端。
本发明还提供了一种订票系统,该系统包括:网络服务器、读数据库服务器、写数据库服务器、一台以上的订票客户端;其中,
所述订票客户端与所述网络服务器通过网络连接,所述网络服务器分别与所述读数据库服务器和所述写数据库服务器相连;
所述订票客户端用于,向所述网络服务器发送读数据库请求及写数据库请求;从所述网络服务器获得返回数据;
所述网络服务器用于,从所述读数据库服务器获得所述读数据库请求所要求的票务数据作为返回数据提供给所述订票客户端;根据所述写数据库请求,修改所述写数据库服务器中的相应票务数据,并将修改结果作为返回数据提供给所述订票客户端;
所述读数据库服务器用于,存储数据库,并向所述网络服务器提供其要求的票务数据;
所述写数据库服务器用于,存储数据库,并保存所述网络服务器对票务数据的所述修改结果;周期性将自身存储的所述数据库提供给所述读数据库服务器,使二者存储的数据库保持同步。
进一步,所述网络服务器还用于,将所述数据库中票务数据的条数不超过1000条的票务数据表保存到自身的内存中,构成内存票务数据表,并周期性将该内存票务数据表中的票务数据提供给所述读数据库服务器,保持数据的同步;判断所述内存票务数据表是否包含所述读数据库请求所要求的票务数据,是则将该票务数据作为返回数据提供给所述客户端,否则,从所述读数据库服务器获得所述读数据库请求所要求的票务数据作为返回数据提供给所述客户端;判断所述内存票务数据表是否包含所述写数据库请求所要求修改的票务数据,是则修改所述内存票务数据表中的相应票务数据,并将修改结果作为返回数据提供给所述客户端,否则,根据所述写数据库请求,修改所述写数据库服务器中的相应票务数据,并将修改结果作为返回数据提供给所述客户端。
本发明还提供了一种网购系统,该系统包括:网络服务器、读数据库服务器、写数据库服务器、一台以上的网购客户端;其中,
所述网购客户端与所述网络服务器通过网络连接,所述网络服务器分别与所述读数据库服务器和所述写数据库服务器相连;
所述网购客户端用于,向所述网络服务器发送读数据库请求及写数据库请求;从所述网络服务器获得返回数据;
所述网络服务器用于,从所述读数据库服务器获得所述读数据库请求所要求的商品数据作为返回数据提供给所述网购客户端;根据所述写数据库请求,修改所述写数据库服务器中的相应商品数据,并将修改结果作为返回数据提供给所述网购客户端;
所述读数据库服务器用于,存储数据库,并向所述网络服务器提供其要求的商品数据;
所述写数据库服务器用于,存储数据库,并保存所述网络服务器对商品数据的所述修改结果;周期性将自身存储的所述数据库提供给所述读数据库服务器,使二者存储的数据库保持同步。
进一步,所述网络服务器还用于,将所述数据库中商品数据的条数不超过1000条的商品数据表保存到自身的内存中,构成内存商品数据表,并周期性将该内存商品数据表中的商品数据提供给所述读数据库服务器,保持数据的同步;判断所述内存商品数据表是否包含所述读数据库请求所要求的商品数据,是则将该商品数据作为返回数据提供给所述客户端,否则,从所述读数据库服务器获得所述读数据库请求所要求的商品数据作为返回数据提供给所述客户端;判断所述内存商品数据表是否包含所述写数据库请求所要求修改的商品数据,是则修改所述内存商品数据表中的相应商品数据,并将修改结果作为返回数据提供给所述客户端,否则,根据所述写数据库请求,修改所述写数据库服务器中的相应商品数据,并将修改结果作为返回数据提供给所述客户端。
本发明还提供了一种访问数据库的方法,该方法基于上述的系统;该方法包括:
步骤1:各客户端向网络服务器发送读数据库请求或写数据库请求;
步骤2:所述网络服务器从所述读数据库服务器获得所述读数据库请求所要求的数据作为返回数据;所述网络服务器根据所述写数据库请求,修改所述写数据库服务器中的相应数据,并将修改结果作为返回数据;
步骤3:所述网络服务器将所述返回数据提供给相应的客户端;
步骤4:所述写数据库服务器周期性将自身存储的数据库提供给所述读数据库服务器,使二者存储的数据库保持同步。
进一步,所述读数据库服务器和写数据库服务器的数量均超过1台,所有读数据库服务器组成读数据库服务器集群,所有写数据库服务器组成写数据库服务器集群;则
在所述步骤1之后,在所述步骤2之前,还包括步骤12-1:所述网络服务器从所述读数据库服务器集群中选中一台读数据库服务器作为对应于所述读数据库请求的目标读数据库服务器;所述网络服务器从所述写数据库服务器集群中选中一台写数据库服务器作为对应于所述写数据库请求的目标写数据库服务器;
所述步骤2的方法为:所述网络服务器从所述目标读数据库服务器获得所述读数据库请求所要求的数据作为返回数据;所述网络服务器根据所述写数据库请求,修改所述目标写数据库服务器中的相应数据,并将修改结果作为返回数据;各所述读数据库服务器与所述读数据库服务器集群中的其他读数据库服务器保持数据库的同步;各所述写数据库服务器与所述写数据库服务器集群中的其他写数据库服务器保持数据库的同步;
所述步骤4的方法为:所述写数据库服务器集群周期性将自身存储的所述数据库提供给所述读数据库服务器集群,使二者存储的数据库保持同步。
进一步,所述读数据库服务器集群中的读数据库服务器的数量为M,所述写数据库服务器集群中的写数据库服务器的数量为N,M和N均为大于1的整数;则所述步骤12-1中:
所述网络服务器从所述读数据库服务器集群中选中一台读数据库服务器作为对应于所述读数据库请求的目标读数据库服务器的方法为:所述网络服务器将所述读数据库服务器集群中序号为i%M的读数据库服务器作为对应于所述读数据库请求的目标读数据库服务器;i为所述读数据库请求的序号,i%M为求模运算;
所述网络服务器从所述写数据库服务器集群中选中一台写数据库服务器作为对应于所述写数据库请求的目标写数据库服务器的方法为:所述网络服务器将所述写数据库服务器集群中序号为j%N的写数据库服务器作为对应于所述写数据库请求的目标写数据库服务器;j为所述写数据库请求的序号,j%N为求模运算。
进一步,i和j均为静态变量。
进一步,所述数据库中数据条数不超过1000条的数据表保存到所述网络服务器的内存中,构成内存数据表;则
在所述步骤1之后,在所述步骤2之前,还包括步骤12-2:所述网络服务器判断所述内存数据表是否包含所述读数据库请求所要求的数据,是则将该数据作为返回数据提供给所述客户端;所述网络服务器判断所述内存数据表是否包含所述写数据库请求所要求修改的数据,是则修改所述内存数据表中的相应数据,并将修改结果作为返回数据提供给所述客户端;
所述步骤4还包括:所述网络服务器周期性将所述内存数据表中的数据提供给所述读数据库服务器,保持数据的同步。
进一步,在所述步骤1之后,在所述步骤2之前,还包括步骤12-3:所述网络服务器按照合并规则,将2个以上的读数据库请求合并为合并读数据库请求,将2个以上的写数据库请求合并为合并写数据库请求;
所述步骤2的方法为:所述网络服务器从所述读数据库服务器一次性获得所述合并读数据库请求所要求的所有数据作为返回数据;所述网络服务器根据所述合并写数据库请求,一次性修改所述写数据库服务器中的所有相应数据,并将修改结果作为返回数据;
所述步骤3的方法为:所述网络服务器将所述返回数据分别提供给相应的客户端;
其中,所述合并规则包括:
请求执行的操作的类型相同,则合并;
和/或,请求执行的操作之间具有关联性,则合并。
附图说明
图1为本发明提出的访问数据库的系统的结构图;
图2为本发明提出的访问数据库的方法的流程图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
本发明提出了一种访问数据库的系统,图1为该系统的结构图。如图1所示,该系统包括:网络服务器102、读数据库服务器103、写数据库服务器104、一台以上的客户端101。如图1所示,客户端101与网络服务器102通过网络连接,该网络可为互联网,也可为其他的网络,如专网等等。网络服务器102分别与读数据库服务器103和写数据库服务器104相连。
本发明中,客户端101用于,向网络服务器102发送读数据库请求及写数据库请求;从网络服务器102获得返回数据。客户端101可用计算机、平板电脑、手机等任意可通过网络与网络服务器102建立通信连接的设备实现。
本发明中的网络服务器102是整个系统的工作核心,其响应客户端101的各种请求,并将返回数据发送到相应客户端,这里的返回数据来自读数据库服务器103或写数据库服务器104中所存储的数据库。基于以上考虑,网络服务器102用于,从读数据库服务器103获得读数据库请求所要求的数据作为返回数据提供给客户端101;根据写数据库请求,修改写数据库服务器104中的相应数据,并将修改结果作为返回数据提供给客户端101。可见,网络服务器102对读数据库服务器103和写数据库服务器104具有调度功能。
读数据库服务器103用于,存储数据库,并向网络服务器102提供其要求的数据;
写数据库服务器104用于,存储数据库,并保存网络服务器102对数据的修改结果;周期性将自身存储的数据库提供给读数据库服务器103,使二者存储的数据库保持同步。
本发明中,写数据库服务器104与读数据库服务器103进行数据库的同步的周期可预先设置,也可由网络服务器102根据具体访问情况来设置。例如,在客户端的访问量较小时,可将该周期设置地较长,以减少读数据库服务器103与写数据库服务器104之间的数据交互量;在客户端访问量较大时,则可将该周期设置地较短,以尽快实现二者的数据同步,防止因数据更新太慢而发生错误。
由此可见,本发明中,数据库保存在读数据库服务器和写数据库服务器,写数据库服务器周期性将其存储的数据库提供给读数据库服务器,使二者的数据库保持同步。网络服务器根据客户端发送的数据库操作请求类型(读数据库请求和写数据库请求)的不同,分别访问读数据库服务器和写数据库服务器,进行数据的读取和修改,并将返回数据提供给客户端,完成客户端对数据库的访问过程。这样,当巨量的数据库读、写请求发送到网络服务器时,读数据库服务器和写数据库服务器分别承担一部分访问,这降低了单台服务器的访问量,防止了巨量访问造成服务器发生瘫痪,同时也降低了对于读数据库服务器和写数据库服务器的配置要求,一定程度上降低了系统对服务器资源的要求以及系统成本。
在客户端的瞬间访问量特别大的情况,还可以增加读数据库服务器103以及写数据库服务器104的数量,即读数据库服务器103和写数据库服务器104的数量均超过1台,所有读数据库服务器103组成读数据库服务器集群,所有写数据库服务器104组成写数据库服务器集群。这种情况下:
网络服务器102还需要具有分配工作任务的功能,使各读数据库服务器和写数据库服务器都处于工作状态,尽可能提高响应速度。因此,网络服务器102还要用于,从读数据库服务器集群中选中一台读数据库服务器作为对应于读数据库请求的目标读数据库服务器,从目标读数据库服务器获得读数据库请求所要求的数据作为返回数据提供给客户端101;从写数据库服务器集群中选中一台写数据库服务器作为对应于写数据库请求的目标写数据库服务器,根据写数据库请求,修改目标写数据库服务器中的相应数据,并将修改结果作为返回数据提供给客户端101。
各读数据库服务器用于,存储数据库并与读数据库服务器集群中的其他读数据库服务器保持数据库的同步;向网络服务器102提供其要求的数据;
各写数据库服务器用于,存储数据库并与写数据库服务器集群中的其他写数据库服务器保持数据库的同步;保存网络服务器102对数据的修改结果;
由于读数据库服务器和写数据库服务器均组成了集群,因而在同一集群内部也需要保持数据库的同步,这样,每台读数据库服务器都要与读数据库服务器集群中的其他读数据库服务器保持数据库的同步,每台写数据库服务器都要与写数据库服务器集群中的其他写数据库服务器保持数据库的同步,该同步可以是周期性的,而且该周期可以设置地比较小,以尽可能保证同一集群内部各数据库的同一性。
另外,读数据库服务器与写数据库服务器也要保持数据库的同步,该同步可以集群为单位进行,即:写数据库服务器集群周期性将自身存储的数据库提供给读数据库服务器集群,使二者存储的数据库保持同步。以集群为单位进行读、写数据库服务器之间的数据库的同步,可减少两个集群之间的数据交互量,提高同步的速度。
本发明已将客户端发送的请求按照读数据库请求和写数据库请求的不同分为两类,网络服务器分别对读数据库服务器和写数据库服务器进行操作,从而及时响应以上两类请求,并降低每台服务器的工作量。在此基础上,网络服务器102还可以将数据量较小、而被访问量特别大的数据表存入自身的内存中,从而可以进一步减少对两类服务器的访问量,并进一步提高响应速度。基于该考虑,网络服务器102还用于,将数据库中数据条数不超过1000条的数据表保存到自身的内存中,构成内存数据表,并周期性将该内存数据表中的数据提供给读数据库服务器103,保持数据的同步;判断内存数据表是否包含读数据库请求所要求的数据,是则将该数据作为返回数据提供给客户端101,否则,从读数据库服务器103获得读数据库请求所要求的数据作为返回数据提供给客户端101;判断内存数据表是否包含写数据库请求所要求修改的数据,是则修改内存数据表中的相应数据,并将修改结果作为返回数据提供给客户端101,否则,根据写数据库请求,修改写数据库服务器104中的相应数据,并将修改结果作为返回数据提供给客户端101。
本发明中,查询数据库的访问可认为是读数据库操作,而删除数据库中的数据、更改数据库中的数据、向数据库中增加数据等可认为是写数据库操作(即上述的修改数据库中的数据的操作)。现有的对数据库的读或写操作,多用SQL语句来实现,如select_A是对数据A进行查询操作,delete_B则是对数据B进行删除操作,update_C和insert_D则分别是对数据C进行更改操作和向数据库中增加数据D操作。而SQL语言的编程特点是可以进行语句的合并,这就为本发明合并客户端发送的各种请求提供了依据。本发明通过合并客户端的请求,可以实现多个请求的一次性响应,这极大地提高了本发明的响应速度。
这里,网络服务器102还用于:按照合并规则,将2个以上的读数据库请求合并为合并读数据库请求,从读数据库服务器103一次性获得合并读数据库请求所要求的所有数据作为返回数据分别提供给相应客户端;按照合并规则,将2个以上的写数据库请求合并为合并写数据库请求,根据该合并写数据库请求,一次性修改写数据库服务器104中的所有相应数据,并将修改结果作为返回数据分别提供给相应客户端。
其中的合并规则包括:请求执行的操作的类型相同,则合并;和/或,请求执行的操作之间具有关联性,则合并。
该合并规则涉及操作的类型和操作之间的关联性两个概念。操作的类型的含义显而易见,即读数据库操作的类型和写数据库的类型,例如,2个读数据库请求均为查询数据的请求,即使二者所要查询的数据不同,但二者的类型是相同的,其他操作的类型(删除数据、增加数据、更改数据等)可依此类推。操作之间的关联性,指的是2项以上的操作具有逻辑、数量上的关联性,其源于数据库中的数据在逻辑、数量上之间具有关联性。例如在数据库中,E、F和G这三个数据具有E+F=G的关系,如果客户端提供的2个写数据库请求分别为:删除数据E、将数据G减少E,则这两个写数据库请求就存在上述的逻辑和数量上的关联性,二者可以一次性执行,这也能够防止因服务器的瘫痪而发生错误。其他的操作之间的关联性依此类推。
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
由于读或写数据库的操作多采用存储过程来实现,而存储过程是不能对读数据库服务器和写数据库服务器进行分辨的,更不能进一步对读数据库服务器集群中的各读数据库服务器以及写数据库服务器集群中的各写数据库服务器进行区分。为了使网络服务器中进行服务器调度的模块能够准确识别读数据库操作和写数据库操作,本发明在表示读数据库操作和写数据库操作的存储过程前面加上一定的前缀,以对二者加以区分。该前缀的形式可以为SP_XXX的形式,其中的“SP”表示该语句为读数据库操作或写数据库操作中的一种,以有别于其他种类的操作(如管理操作等),“XXX”表示读数据库操作或写数据库操作,该XXX可以为SEL(表示读数据库操作)和UPD(表示写数据库操作)中的一种。例如,在表示查询数据A(一种读数据库操作)的SQL语句“select_A”的前面加上前缀“SP_SEL”,组成“SP_SEL_select_A”,表示该操作是要执行读数据库操作,具体的用于操作的SQL语句可在剔除前缀之后得到,为“select_A”(表示查询数据A的操作);同样,在表示删除数据B的SQL语句“delete_B”的前面加上前缀“SP_UPD”组成语句“SP_UPD_delete_B”,表示该操作为写数据库操作,剔除前缀之后可得到相应的操作用SQL语句“delete_B”。其余的读数据库操作和写数据库操作的SQL语句前加前缀的方法与此类似,不再赘述。需要说明的是,前缀中的“SP”、“SEL”以及“UPD”的具体形式都可以用其他字母或字母组合来表示,也都在本发明的保护范围之内。
基于以上的系统架构,本发明可以提出多种访问数据库的系统的实施例。例如,本发明可以提出一种注册系统,该系统的结构与图1相同,其包括:网络服务器、读数据库服务器、写数据库服务器、一台以上的注册客户端;其中,注册客户端与网络服务器通过网络连接,网络服务器分别与读数据库服务器和写数据库服务器相连。
注册客户端用于,向网络服务器发送读数据库请求及写数据库请求;从网络服务器获得返回数据;
网络服务器用于,从读数据库服务器获得读数据库请求所要求的注册码作为返回数据提供给注册客户端;根据写数据库请求,修改写数据库服务器中的相应注册码,并将修改结果作为返回数据提供给注册客户端;
读数据库服务器用于,存储数据库,并向网络服务器提供其要求的注册码;
写数据库服务器用于,存储数据库,并保存网络服务器对注册码的修改结果;周期性将自身存储的数据库提供给读数据库服务器,使二者存储的数据库保持同步。
该注册系统可以应用于软件的网络认证等领域。例如,用户使用企业生产的一种或多种软件,就需要定期向该企业进行认证(如每年认证一次),以确定下个周期内是否还使用该软件,并在确定使用该软件之后进行使用费的缴费。由于软件的客户使用量通常都很大,因而通过网络来完成上述的认证工作就成了最为可行的选择。利用本发明提供的上述注册系统,各用户可以通过自己的注册客户端(如计算机、平板电脑、手机等设备)向网络服务器提交读数据库请求及写数据库请求,以确定下一阶段所要使用的软件,并进行相应的缴费,其中的注册码是用户使用相应软件的凭证,也是其缴费的依据,每个注册码与一套软件在下一阶段的使用权相对应,缴费之后获取了该注册码,用户就取得了相应软件在下一阶段的使用权。而用户获取的该注册码也要在数据库中进行保存,以备在用户丢失该注册码时通过网络查询(即写数据库操作)重新获得。
该注册系统中,网络服务器还可以将被频繁访问但数据量较小的数据表保存在自身的内存中,以进一步提高响应速度。因此,网络服务器用于,将数据库中注册码的条数不超过1000条的注册码表保存到自身的内存中,构成内存注册码表,并周期性将该内存注册码表中的注册码提供给读数据库服务器,保持数据的同步;判断内存注册码表是否包含读数据库请求所要求的注册码,是则将该注册码作为返回数据提供给客户端,否则,从读数据库服务器获得读数据库请求所要求的注册码作为返回数据提供给客户端;判断内存注册码表是否包含写数据库请求所要求修改的注册码,是则修改内存注册码表中的相应注册码,并将修改结果作为返回数据提供给客户端,否则,根据写数据库请求,修改写数据库服务器中的相应注册码,并将修改结果作为返回数据提供给客户端。
本发明还可以应用于网络订票领域,从而提出一种订票系统,该系统包括:网络服务器、读数据库服务器、写数据库服务器、一台以上的订票客户端;其中,订票客户端与网络服务器通过网络连接,网络服务器分别与读数据库服务器和写数据库服务器相连。
订票客户端用于,向网络服务器发送读数据库请求及写数据库请求;从网络服务器获得返回数据;
网络服务器用于,从读数据库服务器获得读数据库请求所要求的票务数据作为返回数据提供给订票客户端;根据写数据库请求,修改写数据库服务器中的相应票务数据,并将修改结果作为返回数据提供给订票客户端;
读数据库服务器用于,存储数据库,并向网络服务器提供其要求的票务数据;
写数据库服务器用于,存储数据库,并保存网络服务器对票务数据的修改结果;周期性将自身存储的数据库提供给读数据库服务器,使二者存储的数据库保持同步。
同样,网络服务器也可以将被频繁访问而数据量较小的数据表存在自身的内存中,以提高响应速度。这里的网络服务器还用于,将数据库中票务数据的条数不超过1000条的票务数据表保存到自身的内存中,构成内存票务数据表,并周期性将该内存票务数据表中的票务数据提供给读数据库服务器,保持数据的同步;判断内存票务数据表是否包含读数据库请求所要求的票务数据,是则将该票务数据作为返回数据提供给客户端,否则,从读数据库服务器获得读数据库请求所要求的票务数据作为返回数据提供给客户端;判断内存票务数据表是否包含写数据库请求所要求修改的票务数据,是则修改内存票务数据表中的相应票务数据,并将修改结果作为返回数据提供给客户端,否则,根据写数据库请求,修改写数据库服务器中的相应票务数据,并将修改结果作为返回数据提供给客户端。
另外,将本发明应用于网络购物领域,还可以提出一种网购系统,该系统包括:网络服务器、读数据库服务器、写数据库服务器、一台以上的网购客户端;其中,网购客户端与网络服务器通过网络连接,网络服务器分别与读数据库服务器和写数据库服务器相连。
网购客户端用于,向网络服务器发送读数据库请求及写数据库请求;从网络服务器获得返回数据;
网络服务器用于,从读数据库服务器获得读数据库请求所要求的商品数据作为返回数据提供给网购客户端;根据写数据库请求,修改写数据库服务器中的相应商品数据,并将修改结果作为返回数据提供给网购客户端;
读数据库服务器用于,存储数据库,并向网络服务器提供其要求的商品数据;
写数据库服务器用于,存储数据库,并保存网络服务器对商品数据的修改结果;周期性将自身存储的数据库提供给读数据库服务器,使二者存储的数据库保持同步。
此外,网络服务器还用于,将数据库中商品数据的条数不超过1000条的商品数据表保存到自身的内存中,构成内存商品数据表,并周期性将该内存商品数据表中的商品数据提供给读数据库服务器,保持数据的同步;判断内存商品数据表是否包含读数据库请求所要求的商品数据,是则将该商品数据作为返回数据提供给客户端,否则,从读数据库服务器获得读数据库请求所要求的商品数据作为返回数据提供给客户端;判断内存商品数据表是否包含写数据库请求所要求修改的商品数据,是则修改内存商品数据表中的相应商品数据,并将修改结果作为返回数据提供给客户端,否则,根据写数据库请求,修改写数据库服务器中的相应商品数据,并将修改结果作为返回数据提供给客户端。
可见,本发明的应用领域非常广泛,只要涉及客户端与网络侧的数据库之间的访问交互,都可以包含在本发明的保护范围之内。
本发明还提出了一种访问数据库的方法,该方法上述的访问数据库的系统。图2为该方法的流程图,如图2所示,该方法包括:
步骤201:各客户端向网络服务器发送读数据库请求或写数据库请求。
本步骤中,每个客户端所发送的读数据库请求或写数据库请求的数量可以仅为一个,也可以为多个;而在同一时刻,向网络服务器发送读数据库请求或写数据库请求的客户端的数量可以为一台,也可以为多台。
步骤202:网络服务器从读数据库服务器获得读数据库请求所要求的数据作为返回数据;网络服务器根据写数据库请求,修改写数据库服务器中的相应数据,并将修改结果作为返回数据。
本步骤中,网络服务器必然要对读数据库请求和写数据库请求进行甄别,从而判断所要访问的是读数据库服务器还是写数据库服务器。
读数据库请求指的是读取数据库中的数据的请求,查询数据即为一种常见的读数据库请求。写数据库请求指的是对数据库中的数据进行修改的请求,删除数据、增加数据以及更改数据是常见的三种写数据库请求。
本步骤中,网络数据库根据读数据库请求来访问读数据库服务器,从其存储的数据库中获得读数据库请求所要求的数据,将其作为返回数据提供给相应客户端,从而完成对该读数据库请求的响应。
网络数据库还根据写数据库请求来访问写数据库服务器,对其存储的数据库中的相应数据进行写数据库请求所要求的修改(如删除、增加、更改等)后,将修改结果作为返回数据提供给相应客户端,从而完成对该写数据库请求的响应。
步骤203:网络服务器将返回数据提供给相应的客户端。
由于本发明将读数据库服务器和写数据库服务器分开,分别执行读数据库的操作和写数据库的操作,因而网络服务器可以同时获得多个返回数据,进而将各返回数据提供给相应客户端。这就必然涉及网络服务器对客户端的标记,该标记工作可利用客户端编号来完成,本发明中,各客户端对应的客户端编号互不相同,从而防止返回数据的错误。
步骤204:写数据库服务器周期性将自身存储的数据库提供给读数据库服务器,使二者存储的数据库保持同步。
该步骤是读数据库服务器与写数据库服务器所存储的数据库的同步操作步骤。写数据库请求会引起数据库中数据的变化,如果不执行本步骤,随着时间的推移,读数据库服务器与写数据库服务器中的数据库会完全不相同,从而引起数据的读、写不一致,引发系统错误。
本步骤中的同步操作的周期可以预先设置,也可以由网络服务器根据情况设定。
在读数据库服务器和写数据库服务器的数量均超过1台的情况下,本发明将所有读数据库服务器组成读数据库服务器集群,将所有写数据库服务器组成写数据库服务器集群;则在步骤201之后,在步骤202之前,还可以包括步骤2012-1:网络服务器从读数据库服务器集群中选中一台读数据库服务器作为对应于读数据库请求的目标读数据库服务器;网络服务器从写数据库服务器集群中选中一台写数据库服务器作为对应于写数据库请求的目标写数据库服务器。
步骤202的方法为:网络服务器从目标读数据库服务器获得读数据库请求所要求的数据作为返回数据;网络服务器根据写数据库请求,修改目标写数据库服务器中的相应数据,并将修改结果作为返回数据;各读数据库服务器与读数据库服务器集群中的其他读数据库服务器保持数据库的同步;各写数据库服务器与写数据库服务器集群中的其他写数据库服务器保持数据库的同步。
步骤204的方法为:写数据库服务器集群周期性将自身存储的数据库提供给读数据库服务器集群,使二者存储的数据库保持同步。
如果读数据库服务器集群中的读数据库服务器的数量为M,写数据库服务器集群中的写数据库服务器的数量为N,M和N均为大于1的整数。则步骤2012-1中:
网络服务器从读数据库服务器集群中选中一台读数据库服务器作为对应于读数据库请求的目标读数据库服务器的方法为:网络服务器将读数据库服务器集群中序号为i%M的读数据库服务器作为对应于读数据库请求的目标读数据库服务器;i为读数据库请求的序号,i%M为求模运算;
网络服务器从写数据库服务器集群中选中一台写数据库服务器作为对应于写数据库请求的目标写数据库服务器的方法为:网络服务器将写数据库服务器集群中序号为j%N的写数据库服务器作为对应于写数据库请求的目标写数据库服务器;j为写数据库请求的序号,j%N为求模运算。
可见,在客户端发送的读数据库请求和写数据库请求的数量过大的情况下,网络服务器可利用求模方式来为读数据库服务器和写数据库服务器分配任务,均衡各服务器的工作量,尽可能提高响应速度,降低客户端的等待时间。求模运算的实例如下:如果i为101,M为10,则i%M的计算结果为1(即101除以10后得到的余数为1)。j%N的运算方法与此相同。
在实际应用中,上述的序号i和j可以均设为静态变量,以提高线程的安全性。
本发明中,对于数据库(读数据库服务器所存储的数据库)中数据条数不超过1000条的数据表,如果访问特别频繁,可将其保存到网络服务器的内存中,构成内存数据表;则在步骤201之后,在步骤202之前,还包括步骤2012-2:网络服务器判断内存数据表是否包含读数据库请求所要求的数据,是则将该数据作为返回数据提供给客户端;网络服务器判断内存数据表是否包含写数据库请求所要求修改的数据,是则修改内存数据表中的相应数据,并将修改结果作为返回数据提供给客户端;
步骤204还包括:网络服务器周期性将内存数据表中的数据提供给读数据库服务器,保持数据的同步。
此外,本发明还可以进行请求的合并,从而一次性完成多项请求,大幅提高本发明的响应速度。则在步骤201之后,在步骤202之前,还可以包括步骤2012-3:网络服务器按照合并规则,将2个以上的读数据库请求合并为合并读数据库请求,将2个以上的写数据库请求合并为合并写数据库请求。
步骤202的方法为:网络服务器从读数据库服务器一次性获得合并读数据库请求所要求的所有数据作为返回数据;网络服务器根据合并写数据库请求,一次性修改写数据库服务器中的所有相应数据,并将修改结果作为返回数据;
步骤203的方法为:网络服务器将返回数据分别提供给相应的客户端;
其中,合并规则包括:请求执行的操作的类型相同,则合并;和/或,请求执行的操作之间具有关联性,则合并。
由此可见,本发明具有以下优点:
(1)本发明中,数据库保存在读数据库服务器和写数据库服务器,写数据库服务器周期性将其存储的数据库提供给读数据库服务器,使二者的数据库保持同步。网络服务器根据客户端发送的数据库操作请求类型(读数据库请求和写数据库请求)的不同,分别访问读数据库服务器和写数据库服务器,进行数据的读取和修改,并将返回数据提供给客户端,完成客户端对数据库的访问过程。这样,当巨量的数据库读、写请求发送到网络服务器时,读数据库服务器和写数据库服务器分别承担一部分访问,这降低了单台服务器的访问量,防止了巨量访问造成服务器发生瘫痪,同时也降低了对于读数据库服务器和写数据库服务器的配置要求,一定程度上降低了系统对服务器资源的要求以及系统成本。
(2)本发明以集群为单位进行读、写数据库服务器之间的数据库的同步,可减少两个集群之间的数据交互量,提高同步的速度。
(3)本发明中,网络服务器将数据条数不超过1000条、而被访问量特别大的数据表存入自身的内存中,进一步减少了对两类服务器的访问量,并提高了本发明的响应速度。
(4)本发明通过合并客户端的请求,可以实现多个请求的一次性响应,这极大地提高了本发明的响应速度。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种访问数据库的系统,其特征在于,该系统包括:网络服务器、读数据库服务器、写数据库服务器、一台以上的客户端;其中,
所述客户端与所述网络服务器通过网络连接,所述网络服务器分别与所述读数据库服务器和所述写数据库服务器相连;
所述客户端用于,向所述网络服务器发送读数据库请求及写数据库请求;从所述网络服务器获得返回数据;
所述网络服务器用于,从所述读数据库服务器获得所述读数据库请求所要求的数据作为返回数据提供给所述客户端;根据所述写数据库请求,修改所述写数据库服务器中的相应数据,并将修改结果作为返回数据提供给所述客户端;
所述读数据库服务器用于,存储数据库,并向所述网络服务器提供其要求的数据;
所述写数据库服务器用于,存储数据库,并保存所述网络服务器对数据的所述修改结果;周期性将自身存储的所述数据库提供给所述读数据库服务器,使二者存储的数据库保持同步。
2.根据权利要求1所述的系统,其特征在于,所述读数据库服务器和写数据库服务器的数量均超过1台,所有读数据库服务器组成读数据库服务器集群,所有写数据库服务器组成写数据库服务器集群;则
所述网络服务器用于,从所述读数据库服务器集群中选中一台读数据库服务器作为对应于所述读数据库请求的目标读数据库服务器,从所述目标读数据库服务器获得所述读数据库请求所要求的数据作为返回数据提供给所述客户端;从所述写数据库服务器集群中选中一台写数据库服务器作为对应于所述写数据库请求的目标写数据库服务器,根据所述写数据库请求,修改所述目标写数据库服务器中的相应数据,并将修改结果作为返回数据提供给所述客户端;
各所述读数据库服务器用于,存储数据库并与所述读数据库服务器集群中的其他读数据库服务器保持数据库的同步;向所述网络服务器提供其要求的数据;
各所述写数据库服务器用于,存储数据库并与所述写数据库服务器集群中的其他写数据库服务器保持数据库的同步;保存所述网络服务器对数据的所述修改结果;
所述写数据库服务器集群周期性将自身存储的所述数据库提供给所述读数据库服务器集群,使二者存储的数据库保持同步。
3.根据权利要求1所述的系统,其特征在于,所述网络服务器还用于,将所述数据库中数据条数不超过1000条的数据表保存到自身的内存中,构成内存数据表,并周期性将该内存数据表中的数据提供给所述读数据库服务器,保持数据的同步;判断所述内存数据表是否包含所述读数据库请求所要求的数据,是则将该数据作为返回数据提供给所述客户端,否则,从所述读数据库服务器获得所述读数据库请求所要求的数据作为返回数据提供给所述客户端;判断所述内存数据表是否包含所述写数据库请求所要求修改的数据,是则修改所述内存数据表中的相应数据,并将修改结果作为返回数据提供给所述客户端,否则,根据所述写数据库请求,修改所述写数据库服务器中的相应数据,并将修改结果作为返回数据提供给所述客户端。
4.根据权利要求1所述的系统,其特征在于,所述网络服务器还用于:按照合并规则,将2个以上的读数据库请求合并为合并读数据库请求,从所述读数据库服务器一次性获得所述合并读数据库请求所要求的所有数据作为返回数据分别提供给相应客户端;按照所述合并规则,将2个以上的写数据库请求合并为合并写数据库请求,根据该合并写数据库请求,一次性修改所述写数据库服务器中的所有相应数据,并将修改结果作为返回数据分别提供给相应客户端;
其中,所述合并规则包括:
请求执行的操作的类型相同,则合并;
和/或,请求执行的操作之间具有关联性,则合并。
5.一种注册系统,其特征在于,该系统包括:网络服务器、读数据库服务器、写数据库服务器、一台以上的注册客户端;其中,
所述注册客户端与所述网络服务器通过网络连接,所述网络服务器分别与所述读数据库服务器和所述写数据库服务器相连;
所述注册客户端用于,向所述网络服务器发送读数据库请求及写数据库请求;从所述网络服务器获得返回数据;
所述网络服务器用于,从所述读数据库服务器获得所述读数据库请求所要求的注册码作为返回数据提供给所述注册客户端;根据所述写数据库请求,修改所述写数据库服务器中的相应注册码,并将修改结果作为返回数据提供给所述注册客户端;
所述读数据库服务器用于,存储数据库,并向所述网络服务器提供其要求的注册码;
所述写数据库服务器用于,存储数据库,并保存所述网络服务器对注册码的所述修改结果;周期性将自身存储的所述数据库提供给所述读数据库服务器,使二者存储的数据库保持同步。
6.根据权利要求5所述的系统,其特征在于,所述网络服务器还用于,将所述数据库中注册码的条数不超过1000条的注册码表保存到自身的内存中,构成内存注册码表,并周期性将该内存注册码表中的注册码提供给所述读数据库服务器,保持数据的同步;判断所述内存注册码表是否包含所述读数据库请求所要求的注册码,是则将该注册码作为返回数据提供给所述客户端,否则,从所述读数据库服务器获得所述读数据库请求所要求的注册码作为返回数据提供给所述客户端;判断所述内存注册码表是否包含所述写数据库请求所要求修改的注册码,是则修改所述内存注册码表中的相应注册码,并将修改结果作为返回数据提供给所述客户端,否则,根据所述写数据库请求,修改所述写数据库服务器中的相应注册码,并将修改结果作为返回数据提供给所述客户端。
7.一种订票系统,其特征在于,该系统包括:网络服务器、读数据库服务器、写数据库服务器、一台以上的订票客户端;其中,
所述订票客户端与所述网络服务器通过网络连接,所述网络服务器分别与所述读数据库服务器和所述写数据库服务器相连;
所述订票客户端用于,向所述网络服务器发送读数据库请求及写数据库请求;从所述网络服务器获得返回数据;
所述网络服务器用于,从所述读数据库服务器获得所述读数据库请求所要求的票务数据作为返回数据提供给所述订票客户端;根据所述写数据库请求,修改所述写数据库服务器中的相应票务数据,并将修改结果作为返回数据提供给所述订票客户端;
所述读数据库服务器用于,存储数据库,并向所述网络服务器提供其要求的票务数据;
所述写数据库服务器用于,存储数据库,并保存所述网络服务器对票务数据的所述修改结果;周期性将自身存储的所述数据库提供给所述读数据库服务器,使二者存储的数据库保持同步。
8.根据权利要求7所述的系统,其特征在于,所述网络服务器还用于,将所述数据库中票务数据的条数不超过1000条的票务数据表保存到自身的内存中,构成内存票务数据表,并周期性将该内存票务数据表中的票务数据提供给所述读数据库服务器,保持数据的同步;判断所述内存票务数据表是否包含所述读数据库请求所要求的票务数据,是则将该票务数据作为返回数据提供给所述客户端,否则,从所述读数据库服务器获得所述读数据库请求所要求的票务数据作为返回数据提供给所述客户端;判断所述内存票务数据表是否包含所述写数据库请求所要求修改的票务数据,是则修改所述内存票务数据表中的相应票务数据,并将修改结果作为返回数据提供给所述客户端,否则,根据所述写数据库请求,修改所述写数据库服务器中的相应票务数据,并将修改结果作为返回数据提供给所述客户端。
9.一种网购系统,其特征在于,该系统包括:网络服务器、读数据库服务器、写数据库服务器、一台以上的网购客户端;其中,
所述网购客户端与所述网络服务器通过网络连接,所述网络服务器分别与所述读数据库服务器和所述写数据库服务器相连;
所述网购客户端用于,向所述网络服务器发送读数据库请求及写数据库请求;从所述网络服务器获得返回数据;
所述网络服务器用于,从所述读数据库服务器获得所述读数据库请求所要求的商品数据作为返回数据提供给所述网购客户端;根据所述写数据库请求,修改所述写数据库服务器中的相应商品数据,并将修改结果作为返回数据提供给所述网购客户端;
所述读数据库服务器用于,存储数据库,并向所述网络服务器提供其要求的商品数据;
所述写数据库服务器用于,存储数据库,并保存所述网络服务器对商品数据的所述修改结果;周期性将自身存储的所述数据库提供给所述读数据库服务器,使二者存储的数据库保持同步。
10.根据权利要求9所述的系统,其特征在于,所述网络服务器还用于,将所述数据库中商品数据的条数不超过1000条的商品数据表保存到自身的内存中,构成内存商品数据表,并周期性将该内存商品数据表中的商品数据提供给所述读数据库服务器,保持数据的同步;判断所述内存商品数据表是否包含所述读数据库请求所要求的商品数据,是则将该商品数据作为返回数据提供给所述客户端,否则,从所述读数据库服务器获得所述读数据库请求所要求的商品数据作为返回数据提供给所述客户端;判断所述内存商品数据表是否包含所述写数据库请求所要求修改的商品数据,是则修改所述内存商品数据表中的相应商品数据,并将修改结果作为返回数据提供给所述客户端,否则,根据所述写数据库请求,修改所述写数据库服务器中的相应商品数据,并将修改结果作为返回数据提供给所述客户端。
11.一种访问数据库的方法,该方法基于权利要求1所述的系统;其特征在于,该方法包括:
步骤1:各客户端向网络服务器发送读数据库请求或写数据库请求;
步骤2:所述网络服务器从所述读数据库服务器获得所述读数据库请求所要求的数据作为返回数据;所述网络服务器根据所述写数据库请求,修改所述写数据库服务器中的相应数据,并将修改结果作为返回数据;
步骤3:所述网络服务器将所述返回数据提供给相应的客户端;
步骤4:所述写数据库服务器周期性将自身存储的数据库提供给所述读数据库服务器,使二者存储的数据库保持同步。
12.根据权利要求11所述的方法,其特征在于,所述读数据库服务器和写数据库服务器的数量均超过1台,所有读数据库服务器组成读数据库服务器集群,所有写数据库服务器组成写数据库服务器集群;则
在所述步骤1之后,在所述步骤2之前,还包括步骤12-1:所述网络服务器从所述读数据库服务器集群中选中一台读数据库服务器作为对应于所述读数据库请求的目标读数据库服务器;所述网络服务器从所述写数据库服务器集群中选中一台写数据库服务器作为对应于所述写数据库请求的目标写数据库服务器;
所述步骤2的方法为:所述网络服务器从所述目标读数据库服务器获得所述读数据库请求所要求的数据作为返回数据;所述网络服务器根据所述写数据库请求,修改所述目标写数据库服务器中的相应数据,并将修改结果作为返回数据;各所述读数据库服务器与所述读数据库服务器集群中的其他读数据库服务器保持数据库的同步;各所述写数据库服务器与所述写数据库服务器集群中的其他写数据库服务器保持数据库的同步;
所述步骤4的方法为:所述写数据库服务器集群周期性将自身存储的所述数据库提供给所述读数据库服务器集群,使二者存储的数据库保持同步。
13.根据权利要求12所述的方法,其特征在于,所述读数据库服务器集群中的读数据库服务器的数量为M,所述写数据库服务器集群中的写数据库服务器的数量为N,M和N均为大于1的整数;则所述步骤12-1中:
所述网络服务器从所述读数据库服务器集群中选中一台读数据库服务器作为对应于所述读数据库请求的目标读数据库服务器的方法为:所述网络服务器将所述读数据库服务器集群中序号为i%M的读数据库服务器作为对应于所述读数据库请求的目标读数据库服务器;i为所述读数据库请求的序号,i%M为求模运算;
所述网络服务器从所述写数据库服务器集群中选中一台写数据库服务器作为对应于所述写数据库请求的目标写数据库服务器的方法为:所述网络服务器将所述写数据库服务器集群中序号为j%N的写数据库服务器作为对应于所述写数据库请求的目标写数据库服务器;j为所述写数据库请求的序号,j%N为求模运算。
14.根据权利要求13所述的方法,其特征在于,i和j均为静态变量。
15.根据权利要求11所述的方法,其特征在于,所述数据库中数据条数不超过1000条的数据表保存到所述网络服务器的内存中,构成内存数据表;则
在所述步骤1之后,在所述步骤2之前,还包括步骤12-2:所述网络服务器判断所述内存数据表是否包含所述读数据库请求所要求的数据,是则将该数据作为返回数据提供给所述客户端;所述网络服务器判断所述内存数据表是否包含所述写数据库请求所要求修改的数据,是则修改所述内存数据表中的相应数据,并将修改结果作为返回数据提供给所述客户端;
所述步骤4还包括:所述网络服务器周期性将所述内存数据表中的数据提供给所述读数据库服务器,保持数据的同步。
16.根据权利要求11所述的方法,其特征在于,在所述步骤1之后,在所述步骤2之前,还包括步骤12-3:所述网络服务器按照合并规则,将2个以上的读数据库请求合并为合并读数据库请求,将2个以上的写数据库请求合并为合并写数据库请求;
所述步骤2的方法为:所述网络服务器从所述读数据库服务器一次性获得所述合并读数据库请求所要求的所有数据作为返回数据;所述网络服务器根据所述合并写数据库请求,一次性修改所述写数据库服务器中的所有相应数据,并将修改结果作为返回数据;
所述步骤3的方法为:所述网络服务器将所述返回数据分别提供给相应的客户端;
其中,所述合并规则包括:
请求执行的操作的类型相同,则合并;
和/或,请求执行的操作之间具有关联性,则合并。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210572366.7A CN103902548B (zh) | 2012-12-25 | 2012-12-25 | 一种访问数据库的系统和方法及注册、订票、网购系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210572366.7A CN103902548B (zh) | 2012-12-25 | 2012-12-25 | 一种访问数据库的系统和方法及注册、订票、网购系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103902548A true CN103902548A (zh) | 2014-07-02 |
CN103902548B CN103902548B (zh) | 2017-06-23 |
Family
ID=50993878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210572366.7A Active CN103902548B (zh) | 2012-12-25 | 2012-12-25 | 一种访问数据库的系统和方法及注册、订票、网购系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103902548B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677761A (zh) * | 2015-12-30 | 2016-06-15 | 国网信息通信产业集团有限公司 | 一种数据切分的方法及系统 |
CN105787006A (zh) * | 2016-02-22 | 2016-07-20 | 无锡中科富农物联科技有限公司 | 数据库服务器用负载均衡系统 |
CN105989153A (zh) * | 2015-03-02 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 数据库的交互方法及装置 |
CN106874341A (zh) * | 2016-12-23 | 2017-06-20 | 航天星图科技(北京)有限公司 | 一种数据库同步方法 |
CN107181636A (zh) * | 2016-03-10 | 2017-09-19 | 阿里巴巴集团控股有限公司 | 一种负载均衡系统中的健康检查方法及装置 |
CN108241551A (zh) * | 2016-12-23 | 2018-07-03 | 航天星图科技(北京)有限公司 | 一种冗余数据库系统 |
CN108427405A (zh) * | 2018-04-13 | 2018-08-21 | 深圳新动力教育科技有限公司 | 一种支持多用户操作的汽车实时诊断代理及其数据处理方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070100902A1 (en) * | 2005-10-27 | 2007-05-03 | Dinesh Sinha | Two way incremental dynamic application data synchronization |
CN101309139A (zh) * | 2007-05-15 | 2008-11-19 | 盛大计算机(上海)有限公司 | 通行证认证系统 |
CN101315628A (zh) * | 2007-06-01 | 2008-12-03 | 华为技术有限公司 | 内存数据库系统及实现内存数据库的方法和装置 |
CN101329685A (zh) * | 2008-07-30 | 2008-12-24 | 烽火通信科技股份有限公司 | 一种家庭网关上内存数据库的实现方法 |
CN102033912A (zh) * | 2010-11-25 | 2011-04-27 | 北京北纬点易信息技术有限公司 | 一种分布式数据库访问方法及系统 |
US20110196827A1 (en) * | 2010-02-09 | 2011-08-11 | Yonatan Zunger | Method and system for efficiently replicating data in non-relational databases |
-
2012
- 2012-12-25 CN CN201210572366.7A patent/CN103902548B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070100902A1 (en) * | 2005-10-27 | 2007-05-03 | Dinesh Sinha | Two way incremental dynamic application data synchronization |
CN101309139A (zh) * | 2007-05-15 | 2008-11-19 | 盛大计算机(上海)有限公司 | 通行证认证系统 |
CN101315628A (zh) * | 2007-06-01 | 2008-12-03 | 华为技术有限公司 | 内存数据库系统及实现内存数据库的方法和装置 |
CN101329685A (zh) * | 2008-07-30 | 2008-12-24 | 烽火通信科技股份有限公司 | 一种家庭网关上内存数据库的实现方法 |
US20110196827A1 (en) * | 2010-02-09 | 2011-08-11 | Yonatan Zunger | Method and system for efficiently replicating data in non-relational databases |
CN102033912A (zh) * | 2010-11-25 | 2011-04-27 | 北京北纬点易信息技术有限公司 | 一种分布式数据库访问方法及系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105989153A (zh) * | 2015-03-02 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 数据库的交互方法及装置 |
CN105677761A (zh) * | 2015-12-30 | 2016-06-15 | 国网信息通信产业集团有限公司 | 一种数据切分的方法及系统 |
CN105787006A (zh) * | 2016-02-22 | 2016-07-20 | 无锡中科富农物联科技有限公司 | 数据库服务器用负载均衡系统 |
CN107181636A (zh) * | 2016-03-10 | 2017-09-19 | 阿里巴巴集团控股有限公司 | 一种负载均衡系统中的健康检查方法及装置 |
CN106874341A (zh) * | 2016-12-23 | 2017-06-20 | 航天星图科技(北京)有限公司 | 一种数据库同步方法 |
CN108241551A (zh) * | 2016-12-23 | 2018-07-03 | 航天星图科技(北京)有限公司 | 一种冗余数据库系统 |
CN106874341B (zh) * | 2016-12-23 | 2022-04-05 | 中科星图股份有限公司 | 一种数据库同步方法 |
CN108427405A (zh) * | 2018-04-13 | 2018-08-21 | 深圳新动力教育科技有限公司 | 一种支持多用户操作的汽车实时诊断代理及其数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103902548B (zh) | 2017-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103902548A (zh) | 一种访问数据库的系统和方法及注册、订票、网购系统 | |
CN105074702A (zh) | 提供单租户和多租户环境的数据库系统 | |
CN105512200A (zh) | 一种分布式数据库处理的方法和设备 | |
US8886590B2 (en) | Master data management in a data warehouse/data mart | |
CN101360123B (zh) | 一种网络系统及其管理方法 | |
CN106255967A (zh) | 分布式存储系统中的命名空间管理 | |
CN107077389A (zh) | 用于在多租户应用服务器环境中使用全局运行时的系统和方法 | |
CN107077388A (zh) | 用于在多租户应用服务器环境中提供端到端生命周期的系统和方法 | |
CN108427684A (zh) | 数据查询方法、装置及计算设备 | |
CN105144159A (zh) | Hive表链接 | |
CN103020158A (zh) | 一种报表创建方法、装置和系统 | |
CN105989082A (zh) | 报表视图生成方法和装置 | |
CN109213598A (zh) | 一种资源分配方法、装置及计算机可读存储介质 | |
US20160034550A1 (en) | System and method for enterprise data management | |
CN104850627A (zh) | 进行分页展示的方法及装置 | |
CN102033938A (zh) | 基于二级映射的集群动态扩展方法 | |
Zhiliang et al. | Using XML to support information exchange in construction projects | |
CN105868421A (zh) | 一种数据管理方法及装置 | |
CN107533569A (zh) | 用于多维数据库环境中的沙箱支持的系统和方法 | |
CN109408590A (zh) | 分布式数据库的扩容方法、装置、设备及存储介质 | |
CN106708941B (zh) | 电网多任务在线协同编辑方法 | |
CN102158533B (zh) | 基于QoS的分布式web服务选择方法 | |
CN103458022A (zh) | 一种多人异地并行协同系统 | |
CN101901262A (zh) | 基于面向对象模型的企业建库和业务数据显示的方法 | |
CN109150964A (zh) | 一种可迁移的数据管理方法及服务迁移方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |