计算机光盘软件与应用 工程技术 Computer CD Software and Applications 2011年第7期 浅谈分布式数据库中 数据分片与分配关系的比较 王保平 (中国石油塔里木油田分公司塔西南公司,喀什844804) 摘要:通过对集中式数据库和分布式数据库的比较,指出了数据分片与分配是设计分布式数据库重要环节,给出了 数据分片与分配的目的、原则以及方法,分析了数据分布的透明性,对分片与分配之间的关系予以简要说明,最后介绍了 在分布式数据库设计中分片与分配产生的问题。 关键词:分布式数据库;数据分片;数据分配;分布透明性 中图分类号:TP311.13 文献标识码:A 文章编号:1007—9599(2011)07—0040—03 Discussion on Comparison of Data Partitioning and Distribution Relationship in Distributed Database Wang Baoping ('rarim Southwest Company,Petro China Tarim Oilfield Company,Xinjiang 844804,China) Abstract:This paper compares dist ributed database with cent ralized database and indicates data of ragment and allocation isthe important aspect in designing dist ributed database.Then,it gives purpose principle and technique of data of ragment and allo2cation,explains the transparency of dist ributed data,and illuminates the rel ̄ion between data fragment and allocation simply.Finally it outlines some problems about data ̄agment and allocation in dist ributed database design. Keywords:Dist ributed atabase;dData fragment;Data allocation;Dist ributed transparency. 分布式数据库系统通过把分布在计算机网络的不同结点或场 地,物理上属于多个数据子集,逻辑上属于同一系统之数据集合 的海量数据实现数据应用,以实现比集中式数据库系统更好的性 能、可扩充性、可用性和自治性“ 。从数据意义上讲,数据分布 1.完整性t∈S,vSi∈S有t∈Si。 2.不可相交性Pt∈Si,6vSj有∈Sj,iCj。 3.重构型存在函数g,使得R=g(S1,s2,口,Sn) 。 (三)数据分片方法 1.分片。Ri=H(U)(O(A)(<R>))or o(A)(Ⅱ (U) (<R>)) 即数据分片与分配的合理与否或者说合理性的高低,不仅影响着 访问的局部性,即尽可能地把用户要求访问的数据就在本结点或 本场地,而且也制约着数据查询及事务处理的效率。 以关系数据库为例,在关系型分布式数据库系统(RDDB)中, 简单地说,数据分片是从逻辑上将全局关系划分为逻辑片断即子 关系,而数据分配就是再以一定的冗余度将子关系分配到多个结 点上,数据分布即数据分片与数据分配的总和。 单纯从数据分布的角度看,集中式数据库系统可以看作分布式 数据库系统的一个特例,是集中式还是分布式,最终的目的都是为 了使数据可以更好地服务于应用,而数据分片与分配就是达成此目 的的方法。数据分片是一种对关系的划分,在集中式数据库中可以 将所有的表视为一个总全局表的逻辑子表,而总全局表是这些子表 的并集,其属性包括这些子表的所有属性,元组包括这些子表的所 U为属性表;A为条件集合;R为关系名;u:{Ul,u2,口,Un}; A={Aland A2and口andAn)。 2.关联分片。Ri=H(U)(0(A)((R>)。o 0(A)(<S>))。 二、数据分配 (一)数据分配目的 通过一定的冗余片断在各结点上的分布,提高系统的可靠性, 缩短局部应用的响应时间,尽可能地提高数据的安全性,减少系 统的数据通信代价。 (二)数据分配准则 i.处理局部性。数据分配时应尽量提高数据的局部性,使应 用在本结点或相邻的节点处理,以尽可能的减少因为对其他节点 有元组,对应的在这个总全局表上元组的非空值呈块状区域分布。 数据分配则是将这些子表以不同的冗余度存放在一个或多个场地 在多副本,但也会出现表名不同,但表属性和属性值完全相同。 一数据访问而产生的通信代价。 2.数据可用性和可靠性。尽量提高数据只读应用的可靠性, 尽可能提高系统的可用性,使系统的管理和存储代价降低。 3.工作负荷分布均匀性。使各结点的负载(各结点所担负的 全局应用和局部应用的规模)均匀化,尽量提高系统的并行处理 能力,但这有可能降低处理的局部性,增加系统的通信开销。 一或节点,区别在于集中式数据库不存在数据复制的问题,不需要存 减少因数据检索和更新不同步造成的“脏数据”或“过时数据”。 数据分片 、(一)数据分片原则 实现对全局关系的逻辑划分,以用户需求为目标,尽可能的 提高系统的可用性,适应分布式的事务处理数据查询。 (二)数据分片原则 般情况下,上述的3个准则不可能同时满足,应该根据具体 的客户需求和系统的主要目标,以一个为主要,其他的可以作为 约束条件 。 (--)数据分配类型 ..——设全局关系R被分片为逻辑片断集合s={Sl,s2,口,sn), 则S满足: 40..—.— 计算机光盘软件与应用 2011年第7期 Computer CD Software and Applications 工程技术 1.集中式数据有划分。但是划分后的逻辑片断依然完全集中 全局概念模式不变,这样应用程序就不需要改写了,从而增强系 统的可用性,方便应用程序的开发。 (二)位置透明性 在一个结点,即有分片无分配,如同集中式数据库。 2.划分式。数据按应用需求和来源,分布在各个结点上,彼 此之间没有重复数据。 3.全重复式。每个结点都有一个全部数据的副本,可以完全 做到数据检索的局部访问,但更新代价太大。 位置透明性处于分片透明性的下一层次,也可以称为分配透 明性,指的是用户或者应用程序不用去考虑逻辑片断存储在哪个 具体的结点,当存储结点发生改变时,由于分片模式3/分配模式 的映像(映像3),不需要考虑应用程序中添加查找逻辑片断的 程序段,这样就减少了程序的规模和复杂性,以利于应用。 4.部分重复式。分片后的逻辑片断按用户需求和应用需要分 配,需要共享的片断通过数据复制产生副本放置到不同的结点, 私有的片断只放置需要的结点 表I中给出了不同的数据分配类型的比较 表l 敦基分配羹娶比较 (三)局部数据模型透明性 局部数据模型透明性指的是用户或者应用程序不需要了解局 部数据库使用的是何种数据模型,不同数据模型的转换和数据库 语言的转换由映像4完成,这就保证了分布式异构数据库系统的数 (四)数据分配方法 从用户需求和应用需要考虑,数据分配必须尽可能地强调局 部自治性,即必须尽可能地减少远程的检索操作,以降低网络通 信代价。 1.无副本分配。假设只考虑检索更新的代价,可以选择访问 最频繁的结点作为逻辑片断的存放地,一般可对各种分配方案进 行比较,以客户需求和应用需要为主要目标,选取最适宜的方案。 但是这种情况忽略了给定结点存放的逻辑片断或者关系之间存在 一定的关联,一种目标的达成有可能造成另外的开销剧增。 2.多副本分配。副本可以提高检索的局部性,但是却又增加 了更新的开销。多副本分配的一般原则是计算副本添加到给定结 点时,收益与开销之差,如大于零则放入,小于零则另选结点。 总之,由于客户需求和用户需要所导致的优化目标的不同, 数据分配的方法也不同,但大体思想和上文所述类似 。 三、数据分布透明・陛 在四层模式中,全局概念层是分布式数据库增加的部分,其 余则是集中式数据库原有的部分。 由上面的DDBS的模式结构图4个映像可以看出,分布透明性 包括分片透明性,位置透明性,局部数据模型透明性 。 (一)分片透明性 分片透明性是分布透明性的最高层次。其指的是用户或应用 程序不用去考虑关系是如何分片以及具体的分片情况,就可以对 全局关系进行操作。当系统由于用户需求或其他原因而使分片模 式发生了改变,此时由于全局概念模式分片模式的映像(映像2), ——41—— 据查询及事务处理的有效完成 。 由上面分布式数据库系统模式结构图的4层模式,对应的在 分布式数据库系统设计中有4级透明,具体评价如表2: 襄2 瑚 蛙遗_榭I}F债t c 透明性…………-- …系统任务…一… …一 程序任务 垒透明…… …………提供所有透明 … … …只对叠局关系 谴透明…c … 一 提供位置和禺部数据模型透明~ 需指定莲辑片断名 无透明 ……… …… 提供局部数据模型透明… 、… 需指定片断名和结点名 非l透日月 ……………… 不提供任何遘明……一… … - 需进行舁构转换 从表2可以看出,透明性越高越有利于应用程序的开发,因为 在编程的时候如果不考虑程序所调用的数据的来源与位置,做到 “随需所用”这样会极大的缩小程序的规模,提高程序的可用性; 但与此同时,这样会使系统负担大大增加,数据的查询和提取将 耗费系统绝大部分资源,使得系统的效率大为降低,因此数据的 透明性必须适宜,在进行数据分片与分布设计时与执行效率反复 权衡,求得平衡点 。 四、分片与分配关系 从分布式数据库模式结构图可以看出,在分布式数据库的设 计中分片与分配模式的设计是其中间环节,一个较优的、基本符 合用户需求和应用程序需要的分片与分配设计可以极大地提高系 统的可靠性和可用性。对一个关系或文件进行划分,不仅分布式 数据库有这种问题,在集中式数据库中有时为了提高数据库的性 能也会把一个关系进行分片。在分布式数据库设计中,分片 设计的目的就是为了分配设计,就是为了让数据访问具有较优的 局部性。数据如何分片,如何分配,必须对各种不同收益开销比 的方案进行权衡比较,最后根据客户需要和应用程序的需求确定 最终的较优方案。数据分片与数据分配虽然是两个不同的概念, 但是两者紧密相连,不能截然孤立,没有初步的分片设计就无法 进行分配设计,不经过各种分配方案的比较,也就无法确定分配 的方案。 一般情况下,分片与分配设计之间采用启发式的方法,首先 对应用进行分析评估,提出初步的可行的有利的分片方案,然后 根据用户或应用设定的目标再比较分配设计方案的收益开销比, 最后确定分片与分配设计方案。如果初步的分配设计方案不可取, 可调整分片设计方案,直到达到较优为止。 五、数据分片与分配产生的问题 分布式数据库的分片与分配使数据可以更好地进行局部应用 和全局应用,但是也产生了如何保持分布一致性和多副本一致性, 以及全局查询处理,分布事务管理的问题。 (一)保持多副本一致性 (下转第47页) 计算机光盘软件与应用 2011年第7期 Computer CD Software and hppl ications 注: 工程技术 其中FP为功能点,cT为外部输入数、外部输出数、外部查 询数、内部逻辑文件数、外部接口文件数的加权和,PCA为通过 l4个环境复杂性因子的修正系数。 可得功能点为: F = 【 母缀 ) =61§ £ f 置§=8210LO 0.65 ̄o.oi j 8S书 2薅≥ 6l5 0 8 :5473 若功能点与源代码行的转换率为醛 互S怒LO FP(该公 式可由经验模型导出),则估算的软件规模为: 该实例中,需要经验模型的积累,即通过已有项目的情况, 预测分析出本次项目的结果,如果缺乏平台工具的数据支持,这 方法的人工计算方法将较为艰难。平台工具可以通过填写问询 表格的可视化界面方式收集表格1与表格2的内容,并根据内部 已有的大量项目经验构建数学模型,并反馈结果,待项目结束后, 通过自动化分析工具对经验模型加以修正,通过大量经验积累, 减小误差,并使得方差趋于最小化。通过软件工程经济学与项目 管理中的各种模型,我们可以进行相互组合,模块复用,实现复 杂数据的计算。 参考文献: f1]GB/T 18234—2000.中华人民共和国国家标准一一信息技 出权系数秘 ,外部查询权系数 嚣,内部逻辑文件权系数焱 ,外 术CASE工具的评价与选择指南『s1 f2]GB—T一8567—2006.中华人民共和国国家标准一一计算机 一F 韶e藿’ e馥 l 5 软件文档编制规范 [3]介绍Microsoft O ̄ce(2007)Open XML文件格式 盯=∑ P A:。.6 : 。 茎 【z】.Microsoft Developer Network [4]崔启亮.软件国际化与本地化管理Ⅱ】.软件世界,2006,23 [5]赵玮散件工程经济学【M]_西安:西安电子科技大学出版社 f6]韩万江,姜立新.软件项目管理案例教程[M】.北京:机械工业 出版社 (上接第41页) 的大部分基本问题已得到解决,但迄今为止尚没有一个在市场 保持多副本一致性即如何解决读写矛盾问题。分布式数据库 上被人们完全接受的、完全的DDBMS产品 。分片与分配直接关 的数据分配通过多副本来实现,这在增强了数据访问局部性的同 系到数据的应用,设计建立分布式数据库的重要环节是处理好 时也造成了在数据更新时为了使不同结点的多个副本内容保持一 分片与分配设计,因此必须加强对相关领域的商用化设计的研 致,就必须增加开销,因而造成系统效率下降。 (二)保持分布一致性 数据更新后,关系的属性值发生变化,分片和关联分片 产生的逻辑片断可能出现数据的重新分布。 (三)全局查询处理 在全局查询中涉及全局关系,如果系统提供全透明,那么关 系是否分片,关系或逻辑片断在哪个结点,对用户是透明的,即 全局关系转化为逻辑片断,选择副本,全局查询转化为自查询都 由分布式数据库管理系统来完成。 (四)分布事务管理 究与实践。 参考文献: …郑振楣,于戈,郭敏.分布式数据库[i .北京:科学出版社,1998 【2][美】塞里.分布式数据库原理和系统【M1.关英春,译.北京:中 国水利电力出版社。1989 【3】刘广钟,刘方鑫,施小龙.分布式数据库系统中数据分布模型 的研究与建立田.小型微型计算系统,2001,22(1):710 【4】赵葆华,王于同.一种分布式查询处理的数据划分策略Ⅱ】.杭 州电子工业学院学报,1999,19(2) 【5]陈楠.分布式数据库系统数据分布策略分析Ⅱ】.计算机时 数据是分布在不同的结点,处理数据的事务也是分布的。这 代,1998,10 就涉及到并发控制和恢复技术。 【6】肖凌,刘继红.分布式数据库系统的研究与应用U1.计算机工 六、结束语 程,2001,27(1) 分布式数据库系统符合当今信息系统应用的要求,符合当 f7]周龙骧.分布式数据库管理系统实现技术【M】.北京:科学出 今企业组织的管理思想和管理方式。但由于分布式数据库系统 版社,1999 [8]冯祖洪.一种实用的分布式数据库访问系统们.现代电子技 并不是网络技术与集中式数据库系统的简单结合,他的实现有 一定难度,经过近2O年的努力,分布式数据库管理系统(DDBMS) 术,2005,28(24):7679 ..——47. ——