论文部分内容阅读
摘要:通过对集中式数据库和分布式数据库进行比较,指出集中式数据库在存储能力、访问速度等方面存在的问题;对分布式数据库中的数据复制和分片的概念、原则、方法进行了详细的论述;最后对数据复制和分片要解决的关键问题进行了分析。
关键词:集中式数据库;分布式数据库;数据复制;数据分片;数据透明性
中图分类号:TP311.133文献标识玛:B 文章编号:1009-3044(2008)26-1633-02
Analysis of data replication and fragmentation in Distributed Database
YAN Qiu-ling1, ZHU Jun-tao2
(1.College of Information Science and Technology, Henan University of Technology ,Zhengzhou 450001,China;2.Zhengzhou Railway vocational and Technical College, Zhengzhou 450052,China)
Abstract: This paper compares distributed database with centralized database, and anaysises the problems in the storage and access speed of centralized database. In this paper, we give the concept of data replication and fragmentation in distributed database ,as well as principles and methods. Finally, we analysis the key problems data replication and fragmentation solved.
Key words:centralized database; distributed database; data replication; data fragmentation; data transparency
1 引言
在集中式数据库中,将所有数据集中存储到一台计算机上,由主机上的数据库管理系统统一管理整个数据库,用户可从终端上发出数据操作命令,经主机上的数据库管理系统接收处理后,将结果数据返回给用户。随着企业规模越来越大,企业分布于物理位置不同的多个地方,尤其是一些跨国公司,在全球有很多的分公司。采用集中式数据库的体系结构,位于多个位置的站点要访问一个存放数据的主机,这样,对主机的要求[1]就很高:首先,当企业规模很大,数据量很大时,数据仅仅存放在一台计算机上,该计算机的存储空间就要求很高,通常是一个中型机或者小型机,而这样的配置通常费用会很高。其次,当多个计算机同时访问该主机时,会造成访问速度很慢,性能下降,这种速度有时甚至是难以忍受的。最后,过多的依赖于中间的主机节点,一旦该节点出现故障,会使整个系统处于崩溃状态。
2 分布式数据库的特点
基于上面的这些原因,集中式的结构不能适应当前的物理位置上分散的要求。分布式数据库是物理上分散而逻辑上集中的数据库系统。它有这样的一些优点:1)物理分布性 数据按照就近原则,存放在距离它最近的一个或者多个站点;2)逻辑整体性 虽然数据存放在各个不同的站点,但将各个站点的数据集合起来,仍然是集中式中的整个數据库中的数据;3)站点的自治性 相互的站点之间不存在主从关系,地位是平等的,任何一个站点出现问题,不影响其它站点,每个站点上的数据由本地的数据库管理系统来进行管理。
分布式数据库系统通过把分布在计算机网络的不同结点或场地,物理上属于多个数据子集,逻辑上属于同一系统之数据集合的海量数据实现数据应用,以实现比集中式数据库系统更好的性能、可扩充性、可用性和自治性。从数据意义上讲,数据分布即数据分片与分配的合理与否或者说合理性的高低,不仅影响着访问的局部性,即尽可能地把用户要求访问的数据就在本结点或本场地,而且也制约着数据查询及事务处理的效率。
要实现分布式系统,必须要对数据进行复制和分片[2]。所谓复制,就是将数据存放在多个站点上,这样,在一个站点出现故障时,可以通过访问存放在另外站点上的副本,仍然可以正常工作。分片就是系统把数据划分为几个片,各片存储在不同的分片上。在实际应用中,通常是将两者结合在一起,先对数据进行分片,然后将分片进行复制。
3 数据复制和分片
3.1 数据复制和分片的目的
将数据进行分片和复制后存放在多个站点上[3],当一个站点发生故障时,整个系统仍然可以正常工作,提高整个系统的可用性和可靠性。
3.2 数据分片的原则[4]
设全局关系R被划分为逻辑片段S={S1,S2,… ,Sn},则S满足:
1)完整性:所有的分片S1,S2,…,Sn应该可以组合成一个整体S;
2)不相交性:各个分片都应该是不相交的;
3)重构性:所有的分片应该可以重构成原来的关系R。
3.3分片的方法
通常有两种基本的方法:水平分片和垂直分片。
1)水平分片:一个表T被分成若干片:T1,T2,…,Tn,其中每个片包含T的一部分行并且T的每一行都会出现在一个片中。
2)垂直分片:一个表T被分成若干片: T1,T2,…,Tn,每片包含T的一部分列。每一列必须至少被一个片包含,并且每个片必须包含候选码的列。(值得注意的是,在垂直分片中,为了以后可以重构的需要,必须在每个分片中包括候选键的属性列[5]。)
4 数据分配
4.1 数据分配
所谓数据分配,就是将分片的数据放在多个站点,利用冗余[6]来达到系统的最大可用性和可靠性。将分片的副本放在多个站点,当本地系统要访问数据时,首先判断该数据是本地的数据还是其他站点的数据,如果是本地的数据,就直接可以在本地进行读取。这样就缩短了系统的响应时间。当要访问的数据的站点发生故障不可用时,系统可以直接访问其副本所在的站点,以此来达到系统的最大可用性。
4.2 数据分配的原则
1)处理局部性 将数据尽量放在本地站点及其相邻的站点,这样可以在一定程度上减少站点之间的通信代价。
2)各个站点负荷的平衡性 使各个站点的负荷(各个站点所负担的全局任务和局部任务)均匀化,提高各站点的本地和全局应用,尽量提高各站点的并行性。
5 数据透明性
数据透明性是指对于用户而言,并不需要知道数据的存储情况,分片情况以及位置情况。
数据透明性包括三个方面:
1)分片透明性(fragmentation transparency) 指的是用户或应用程序不用去考虑关系是如何分片以及具体的分片情况,就可以对全局关系进行操作;
2)复制透明性(replication transparency) 指的是用户并不需要知道数据的副本存放在哪个或哪几个站点;
3)位置透明性(location transparency)指的是用户或者应用程序不用去考虑逻辑片断存储在哪个具体的结点。
6 数据复制和分片产生的问题
分布式数据库中,进行数据复制和分片可以有效的提高物理分散站点之间访问的速度,提高系统的可用性。但是也产生了如何保持多个分布的一致性和副本更新的一致性[7],以及事务管理的问题。
1)保持多副本的一致性:保持多副本的一致性,也就是使得当对一个数据进行更新时,要保证其所有的副本的数据也得到更新,并且所有的副本的數据是一致的。进行数据的复制,提高了读操作的性能,在很大程度上保证了站点的可用性,但是却增加了更新时的开销,从而造成系统效率下降。
2)保持分布的一致性:数据被更新之后,使得数据的原有分片不再从逻辑上是一个整体。比如将全校学生按照系别进行分片,数学系的张三因为转系到计算机系,导致其系别属性值变为“计算机”,而他的信息因为分片的原因,仍然存放在“数学系”的分片中。导致“数学系”的分片从逻辑上不在是一个整体。
3)分布事务管理:由于数据是分布在不同站点的,对数据的更新操作也应该是分布的,这涉及到并发控制和恢复的问题。也就是保证对数据进行更新时,要把所有的数据都更新。一旦有一个副本没有更新,那么整个事务处理失败。
7 结束语
分布式数据库系统符合当今社会发展的趋势,为物理上分散,逻辑上集中的企业提供了很好的体系结构[8]。具有灵活的体系结构,可靠性高,可用性好,资源利用率高等优点。数据的复制和分片是进行分布式数据库设计的重要环节,直接影响分布式数据库的应用。然而,随着各个分片放在不同的站点上,产生了很多在集中式数据库情况下所没有的问题。直到目前为止,许多技术上的问题仍然没有有效的解决,需要我们投入更多的精力进行更多的研究。
参考文献:
[1] 田俊峰,王子贤,肖冰.分布式数据库服务器的可信性研究.[J].计算机工程与应用.2007,43(4):181-185.
[2] 杨晶,刘天时,马刚.分布式数据库数据分片与分配[J].现代电子技术.2006,29(18):119-121.
[3] 刘广钟,刘方鑫.分布式数据库系统中数据分布模型的研究与建立[J].小型微型计算系统,2001,22(1):7-10.
[4] 肖凌,刘继红.分布式数据库系统的研究与应用[J].计算机工程.2001,27(1):33-35.
[5] Silberschatz A, Korth H F, Sudarshan S.Database Concept.3rd ed[M]. 北京:机械工业出版社,2000.
[6] Hoffer J A,Prescott M B,著,袁方,罗文劼,李宁,译.现代数据库管理[M].7版.北京:电子工业出版社,2006.
[7] (美)Ponniah P,韩宏志.Database Design and Development: An Essential Guide for IT Professionals[M].北京:清华大学出版社,2005.
[8] 周龙骧.分布式数据库管理系统实现技术[M].北京:科学出版社,1999.
关键词:集中式数据库;分布式数据库;数据复制;数据分片;数据透明性
中图分类号:TP311.133文献标识玛:B 文章编号:1009-3044(2008)26-1633-02
Analysis of data replication and fragmentation in Distributed Database
YAN Qiu-ling1, ZHU Jun-tao2
(1.College of Information Science and Technology, Henan University of Technology ,Zhengzhou 450001,China;2.Zhengzhou Railway vocational and Technical College, Zhengzhou 450052,China)
Abstract: This paper compares distributed database with centralized database, and anaysises the problems in the storage and access speed of centralized database. In this paper, we give the concept of data replication and fragmentation in distributed database ,as well as principles and methods. Finally, we analysis the key problems data replication and fragmentation solved.
Key words:centralized database; distributed database; data replication; data fragmentation; data transparency
1 引言
在集中式数据库中,将所有数据集中存储到一台计算机上,由主机上的数据库管理系统统一管理整个数据库,用户可从终端上发出数据操作命令,经主机上的数据库管理系统接收处理后,将结果数据返回给用户。随着企业规模越来越大,企业分布于物理位置不同的多个地方,尤其是一些跨国公司,在全球有很多的分公司。采用集中式数据库的体系结构,位于多个位置的站点要访问一个存放数据的主机,这样,对主机的要求[1]就很高:首先,当企业规模很大,数据量很大时,数据仅仅存放在一台计算机上,该计算机的存储空间就要求很高,通常是一个中型机或者小型机,而这样的配置通常费用会很高。其次,当多个计算机同时访问该主机时,会造成访问速度很慢,性能下降,这种速度有时甚至是难以忍受的。最后,过多的依赖于中间的主机节点,一旦该节点出现故障,会使整个系统处于崩溃状态。
2 分布式数据库的特点
基于上面的这些原因,集中式的结构不能适应当前的物理位置上分散的要求。分布式数据库是物理上分散而逻辑上集中的数据库系统。它有这样的一些优点:1)物理分布性 数据按照就近原则,存放在距离它最近的一个或者多个站点;2)逻辑整体性 虽然数据存放在各个不同的站点,但将各个站点的数据集合起来,仍然是集中式中的整个數据库中的数据;3)站点的自治性 相互的站点之间不存在主从关系,地位是平等的,任何一个站点出现问题,不影响其它站点,每个站点上的数据由本地的数据库管理系统来进行管理。
分布式数据库系统通过把分布在计算机网络的不同结点或场地,物理上属于多个数据子集,逻辑上属于同一系统之数据集合的海量数据实现数据应用,以实现比集中式数据库系统更好的性能、可扩充性、可用性和自治性。从数据意义上讲,数据分布即数据分片与分配的合理与否或者说合理性的高低,不仅影响着访问的局部性,即尽可能地把用户要求访问的数据就在本结点或本场地,而且也制约着数据查询及事务处理的效率。
要实现分布式系统,必须要对数据进行复制和分片[2]。所谓复制,就是将数据存放在多个站点上,这样,在一个站点出现故障时,可以通过访问存放在另外站点上的副本,仍然可以正常工作。分片就是系统把数据划分为几个片,各片存储在不同的分片上。在实际应用中,通常是将两者结合在一起,先对数据进行分片,然后将分片进行复制。
3 数据复制和分片
3.1 数据复制和分片的目的
将数据进行分片和复制后存放在多个站点上[3],当一个站点发生故障时,整个系统仍然可以正常工作,提高整个系统的可用性和可靠性。
3.2 数据分片的原则[4]
设全局关系R被划分为逻辑片段S={S1,S2,… ,Sn},则S满足:
1)完整性:所有的分片S1,S2,…,Sn应该可以组合成一个整体S;
2)不相交性:各个分片都应该是不相交的;
3)重构性:所有的分片应该可以重构成原来的关系R。
3.3分片的方法
通常有两种基本的方法:水平分片和垂直分片。
1)水平分片:一个表T被分成若干片:T1,T2,…,Tn,其中每个片包含T的一部分行并且T的每一行都会出现在一个片中。
2)垂直分片:一个表T被分成若干片: T1,T2,…,Tn,每片包含T的一部分列。每一列必须至少被一个片包含,并且每个片必须包含候选码的列。(值得注意的是,在垂直分片中,为了以后可以重构的需要,必须在每个分片中包括候选键的属性列[5]。)
4 数据分配
4.1 数据分配
所谓数据分配,就是将分片的数据放在多个站点,利用冗余[6]来达到系统的最大可用性和可靠性。将分片的副本放在多个站点,当本地系统要访问数据时,首先判断该数据是本地的数据还是其他站点的数据,如果是本地的数据,就直接可以在本地进行读取。这样就缩短了系统的响应时间。当要访问的数据的站点发生故障不可用时,系统可以直接访问其副本所在的站点,以此来达到系统的最大可用性。
4.2 数据分配的原则
1)处理局部性 将数据尽量放在本地站点及其相邻的站点,这样可以在一定程度上减少站点之间的通信代价。
2)各个站点负荷的平衡性 使各个站点的负荷(各个站点所负担的全局任务和局部任务)均匀化,提高各站点的本地和全局应用,尽量提高各站点的并行性。
5 数据透明性
数据透明性是指对于用户而言,并不需要知道数据的存储情况,分片情况以及位置情况。
数据透明性包括三个方面:
1)分片透明性(fragmentation transparency) 指的是用户或应用程序不用去考虑关系是如何分片以及具体的分片情况,就可以对全局关系进行操作;
2)复制透明性(replication transparency) 指的是用户并不需要知道数据的副本存放在哪个或哪几个站点;
3)位置透明性(location transparency)指的是用户或者应用程序不用去考虑逻辑片断存储在哪个具体的结点。
6 数据复制和分片产生的问题
分布式数据库中,进行数据复制和分片可以有效的提高物理分散站点之间访问的速度,提高系统的可用性。但是也产生了如何保持多个分布的一致性和副本更新的一致性[7],以及事务管理的问题。
1)保持多副本的一致性:保持多副本的一致性,也就是使得当对一个数据进行更新时,要保证其所有的副本的数据也得到更新,并且所有的副本的數据是一致的。进行数据的复制,提高了读操作的性能,在很大程度上保证了站点的可用性,但是却增加了更新时的开销,从而造成系统效率下降。
2)保持分布的一致性:数据被更新之后,使得数据的原有分片不再从逻辑上是一个整体。比如将全校学生按照系别进行分片,数学系的张三因为转系到计算机系,导致其系别属性值变为“计算机”,而他的信息因为分片的原因,仍然存放在“数学系”的分片中。导致“数学系”的分片从逻辑上不在是一个整体。
3)分布事务管理:由于数据是分布在不同站点的,对数据的更新操作也应该是分布的,这涉及到并发控制和恢复的问题。也就是保证对数据进行更新时,要把所有的数据都更新。一旦有一个副本没有更新,那么整个事务处理失败。
7 结束语
分布式数据库系统符合当今社会发展的趋势,为物理上分散,逻辑上集中的企业提供了很好的体系结构[8]。具有灵活的体系结构,可靠性高,可用性好,资源利用率高等优点。数据的复制和分片是进行分布式数据库设计的重要环节,直接影响分布式数据库的应用。然而,随着各个分片放在不同的站点上,产生了很多在集中式数据库情况下所没有的问题。直到目前为止,许多技术上的问题仍然没有有效的解决,需要我们投入更多的精力进行更多的研究。
参考文献:
[1] 田俊峰,王子贤,肖冰.分布式数据库服务器的可信性研究.[J].计算机工程与应用.2007,43(4):181-185.
[2] 杨晶,刘天时,马刚.分布式数据库数据分片与分配[J].现代电子技术.2006,29(18):119-121.
[3] 刘广钟,刘方鑫.分布式数据库系统中数据分布模型的研究与建立[J].小型微型计算系统,2001,22(1):7-10.
[4] 肖凌,刘继红.分布式数据库系统的研究与应用[J].计算机工程.2001,27(1):33-35.
[5] Silberschatz A, Korth H F, Sudarshan S.Database Concept.3rd ed[M]. 北京:机械工业出版社,2000.
[6] Hoffer J A,Prescott M B,著,袁方,罗文劼,李宁,译.现代数据库管理[M].7版.北京:电子工业出版社,2006.
[7] (美)Ponniah P,韩宏志.Database Design and Development: An Essential Guide for IT Professionals[M].北京:清华大学出版社,2005.
[8] 周龙骧.分布式数据库管理系统实现技术[M].北京:科学出版社,1999.