分布式数据库系统
分布式数据库系统
分布式数据库系统(Distributed Database System,DDBS),是指物理上分布、逻辑上集中的分布式数据库结构或物理上分布、逻辑上分布的分布式数据库结构。一个分布式数据库系统从逻辑上看如同集中式数据库系统一样,用户可在任何一个场地执行全局应用。
随着大数据技术的发展,以HadoopGreenplum为代表的非结构化大规模数据处理技术崛起,这些技术主要采用Shared-nothing架构,在分析领域率先实现了分布式的扩展。2010年后,谷歌spanner、Tidb采用Paxos算法RAFT等一致性协议来解决中间件方案的单点瓶颈问题,这为事务数据库的分布式化提供了新的理论依据。在中国,是金融行业率先使用分布式数据库系统,曾长期由Oracle数据库IBM等国外科技公司占据主导地位。随着华为腾讯阿里巴巴集团纷纷投入了自主研发数据库的业务布局,中国产品在国内市场替代率节节攀升。2021年,中国工信部印发《“十四五”信息化和工业化深度融合发展规划》,明确提出加速分布式数据库、混合事务分析处理数据库、共享内存数据库集群等产品研发和应用推广。2023年12月,相关报告显示,腾讯云华为云阿里云位居中国分布式关系型数据库市场份额Top3。
随着互联网在线业务的不断发展,信息技术向产业互联网延伸,开源理念不断深入,分布式数据库系统迎来了快速发展。结合云计算人工智能和硬件的发展,并随着时间的累计和海量应用的支持,分布式数据库系统品应用前景也越来越好。
发展历程
发展背景
20世纪80年代,伴随着关系数据库理论的诞生,IBMOracle数据库两家公司开始提供商业化的数据库产品,服务于各类大型企业。初期的数据库都是单机软件,跑在专有的硬件之上,比如IBM的大机、小型机,如果业务量或者数据量增加,只能进行垂直扩展,即采用增加CPU、存储的方式。这套体系的优点是非常稳定,缺点是开放性不够,与通用x86服务器体系之上的开发环境兼容性差,另外当业务量增长过快时,其扩展能力有限,而且这套系统的造价非常昂贵。
2000年以后,随着互联网在线业务的发展,业务系统访问的并发度呈指数级上升,海量数据计算和分析需求越来越普遍,传统单机系统在业务支撑、成本、开放性等方面均面临巨大挑战,数据库垂直扩展的模式也无法维系。互联网企业开始探索新的水平扩展的方案,最常见的就是应用系统通过分库分表进行解决。但是,这种解决方案的应用系统需要做大量改造,需要感知数据存储位置,增加了运维的复杂性,并因此出现了中间件的方式,如mycat等。这种方式虽实现了数据对应用的透明,但未解决数据库运维的痛点。
快速发展
随着大数据技术的发展,以HadoopGreenplum为代表的非结构化大规模数据处理技术崛起,这些技术主要采用Shared-nothing架构,在分析领域率先实现了分布式的扩展,分析的主要任务是数据的查询,其应对的挑战主要是海量数据的存储、计算,对于事务的要求较低。2010年后,谷歌spanner、Tidb采用Paxos算法RAFT等一致性协议来解决中间件方案的单点瓶颈问题,这为事务数据库的分布式化提供了新的理论依据。
在中国,是金融行业率先使用分布式数据库系统,长期由Oracle数据库IBM等国外科技公司占据主导地位,不仅导致软件服务费用高昂,而且在许多关键领域还存在信息安全的隐患。后随着,华为腾讯阿里巴巴集团纷纷投入了自主研发数据库的业务布局,中国产品在国内市场替代率节节攀升。以OceanBase为例,它是蚂蚁自主研发的分布式数据库,经历过阿里超大规模业务场景、支付宝金融级场景以及双11等战役的历练,并于2017年开始对外输出。目前该产品已在多家机构落地应用,包括中国工商银行中国移动山东公司中国移动通信集团福建有限公司、数字江西、中国石化中华联合财产保险公司、人保健康、浙商证券天津银行西安银行常熟银行东莞银行等。
2021年,中国工信部印发《“十四五”信息化和工业化深度融合发展规划》,明确提出加速分布式数据库、混合事务分析处理数据库、共享内存数据库集群等产品研发和应用推广,从政策层面点明了数据库的发展方向。2023年6月7日,继MetaERP之后,华为推出全新GaussDB数据库产品,是中国首个软硬协同全栈自主的数据库。同年12月,全球IT研究和咨询公司国际数据公司发布了《IDCMarketScape:中国分布式关系型数据库2023年厂商评估》的报告显示,蚂蚁OB、腾讯云华为云阿里云金篆信科有限责任公司入选榜首行列。其中,腾讯云、华为云、阿里云位居中国分布式关系型数据库市场份额Top3。
系统结构
体系结构
分布式数据库系统(Distributed Database System,DDBS)是在集中式数据库系统的基础上发展起来的,是数据库技术与计算机网络技术专业结合的产物 。分布式数据库系统是具有管理分布数据库功能的计算机系统,分布式数据库系统 (DDBS)是由分布式数据库管理系统和分布式数据库组成。而分布式数据管理系统 (简称DDBMS) 是建立、管理和雏护分布式数据库的一组软件。
概念定义
分布式数据管理系统 (DDBMS) 包括物理上分布、逻辑上集中的分布式结构和物理上分布、逻辑上分布的分布式数据库结构两种。分布式数据库是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中的每个结点具有独立处理的能力(称为场地自治),可以执行局部应用,同时,每个结点也能通过网络通信子系统执行全局应用。所谓局部应用即仅对本结点的数据库执行某些应用。所谓全局应用(或分布应用)是指对两个以上结点上的数据库执行某些应用,支持全局应用的系统才能称为分布式数据库系统。对用户来说,一个分布式数据库系统从逻辑上看如同集中式数据库系统一样,用户在任何一个场地执行全局应用。
名目辨析
分布式数据库系统(DDBS)是在集中式数据库系统的基础上发展起来的,是数据库技术与计算机网络技术专业结合的产物。分布式结构是相对于集中式结构而言的。从数据处理的角度来说,典型的集中式结构是数据集中存放和处理,用户通过远程终端或通过网络连接来共享集中存放的数据。分布式结构则是将数据及其处理分散在不同场地,各场地各自管理一部分数据,同时又通过网络系统相互连接。各场地的用户除可以访问和处理本地数据外,也可以访问和处理别的场地的数据。分布式数据库是典型的分布式结构,它包括对数据的分布存储和对事务的分布处理。
基本功能
分布式数据库系统系统功能主要体现于分布式数据库管理系统的基本功能上,如下:
参考资料:
主要特点
数据的独立性和分布的透明性
数据的独立性可以说是分布式数据库系统的核心和目标,而分布的透明性表现在用户在操作带有数据库的应用程序时,不必了解数据存储的具体物理位置,不必关心数据逻辑集中的区域,也不必验证本地系统支持哪些数据模型,分布透明的特点,在很大程度上增加了应用程序的可移植性。
集中和自治相结合
对于分布式数据库系统来说,数据共享分为两层:局部共享和全局共享,局部共享是相对于局部数据库而言的,存储在局部数据库中的一般是专门针对本地用户的常用数据;全局共享就是说在各个分布的数据库区域,也能够支持系统在全局上的应用,可以存储可供本网中其他位置的用户共享的数据,那么对于这两层数据共享的分类,就有相应的两种控制方式,即集中和自治,各个局部的数据库管理系统可以对本区域的数据库实施独立管理,称为自治;与此同时,为了协调各个局部数据库管理系统,为了宏观、整体地把握各局部数据库的运行情况等,系统还设置了集中控制的工作方式。
易于扩展性
由于单位、企业等的数据量越来越庞大,对于数据库服务器的需求也越来越多,如果服务器的应用程序支持水平方向的扩展,那么就可以通过多增加服务器来分担数据的处理任务。
安全性与防护措施
安全问题
分布式管理信息系统存在的安全问题同普通管理信息系统相仿,主要包括:物理安全、数据库安全、管理系统安全等。
中心系统安全问题
子系统数据都依附于中心系统基础数据,面临的问题主要有:第三方企图窃取数据包,并以此为蓝本创建新型数据库或间接获取子系统的相关安装程序,即将自已伪装成接收方;或者对数据包内部的重要数据进行恶意篡改,导致接收方读取困难。分发业务数据时面临着类似的安全问题,子系统向中心系统提供业务数据。在这个数据交换过程中,有可能出现下列问题:数据包来源不明、数据包发出者不承认自身操作、传输过程中有人恶意接入,以修改数据包敏感信息。
子系统安全问题
数据包来源伪造、数据包被植入恶意程序常常威胁到子系统的安全运行。不可信赖的子系统运行环境对分布式管理信息系统造成的安全威胁最大。子系统网络环境风险高、操作系统防御能力低,不法分子很容易破解防线,进行木马程序植入、数据窃取活动。
安全策略
身份验证
为了保障数据库的安全、防止数据库被不法分子攻击,在客户访问数据库时有必要对客户身份进行识别,而且客户利用数据库进行登陆、录入、修改、传输等操作时都要进行不同程度的身份验证。以网络身份认证协议为例,整个运行过程中,每个服务站点只有从密钥中心得到即时通信密钥,才能获得与目标站点时间的通信权限。
通信保密
数据在传输的过程中,客户与服务器之间完成一系列的身份验证才能实现数据的传输。在数据传输时,为了防止传输的数据被人窃听或者数据重复被发送导致系统繁忙,发送方和接收方需要一条专属接受渠道,完成对数据包的加密、传输、接收等工作。分布式数据系统容量较大,如果采用的加密算法非常复杂,会导致系统性能下降。
访问控制
在保障分布式数据库系统安全的过程中,有时需要控制系统用户的访问,具体的操作方式有自主访问授权控制和强制访问授权控制两种。前一种的控制方式由管理员直接设立一个控制访问的表,在表中定义了用户访问的权限,规定用户的哪些操作是被允许的,哪些操作是严禁的。后者给系统用户和数据对象设定明确的安全等级,用户的操作是否被禁止有用户操作项目的安全等级来决定。在某些数据库管理系统中,系统为了防止用户的访问超越自已的权限而禁止用户直接访问数据库。用户如果需要访问数据库,必须填写访问申请,当用户的访问申请经过相关的审核后,再由系统为用户指定一个代替用户完成相应的用户操作,并将查询结果反馈给用户。
库文加密
随着信息技术的发展,非法入侵也越来越多,许多不法分子非常擅长利用数据库系统的安全漏洞,想方设法绕过数据库的安全网,窃取数据库的数据。为了防止非法入侵,对库文进行加密处理是常用的方法。具体操作方法是在分布式数据库外层设置一个具备加密解密能力的加密层。
密码机制和密码管理
以上提到的集中加强分布式数据库系统安全的措施中都利用了加密和解密算法。系统在应用算法时应根据算法不同的功能,在操作中按要求选择适合的算法。在分布式数据库中用到的公钥和私钥管理也要规范,以确保公钥和私钥只能由制定的人知晓。
防范恶意代码入侵
因为程序恶意代码而产生的安全问题层出不穷,除了以上措施外,还应注意加强对程序编译人员的教育和管理,加强他们的守法意识。使用单位要加强软件测试和代码检查工作;做好工作人员的技术培训工作防患未然。
相关评价
随着互联网在线业务的不断发展,信息技术向产业互联网延伸,开源理念不断深入,分布式数据库系统迎来了发展的春天。结合云计算人工智能和硬件的发展情况,相信随着时间的累计和海量应用的支持,分布式数据库系统品应用前景一定会越来越好。(中国信通院 评)
目录
概述
发展历程
发展背景
快速发展
系统结构
体系结构
概念定义
名目辨析
基本功能
主要特点
数据的独立性和分布的透明性
集中和自治相结合
易于扩展性
安全性与防护措施
安全问题
中心系统安全问题
子系统安全问题
安全策略
身份验证
通信保密
访问控制
库文加密
密码机制和密码管理
防范恶意代码入侵
相关评价
参考资料