分布式数据库(distributed data base)概念
分布式数据库定义为一群分布在计算机网络上、逻辑上相互关联的数据库。
分布式数据库是数据库技术与网络技术相结合的产物,在数据库领域已形成一个分支。分布式数据库的研究始于20世纪70年代中期。
分布式数据库系统的分类
- 同构同质型DDBS:各个场地都采用同一类型的数据模型(譬如都是关系型),并且是同一型号的DBMS。
- 同构异质型DDBS:各个场地采用同一类型的数据模型,但是DBMS的型号不同,譬如DB2、ORACLE、SYBASE、SQL Server等。
- 异构型DDBS:各个场地的数据模型的型号不同,甚至类型也不同。随着计算机网络技术的发展,异种机联网问题已经得到较好的解决,此时依靠异构型DDBS就能存取全网中各种异构局部库中的数据。
DDBS的基本特点
- 物理分布性:数据不是存储在一个场地上,而是存储在计算机网络的多个场地上。
- 逻辑整体性:数据物理分布在各个场地,但逻辑上是一个整体,它们被所有用户(全局用户)共享,并由一个DDBMS统一管理。
- 场地自治性:各场地上的数据由本地的DBMS管理,具有自治处理能力,完成本场地的应用(局部应用)。
- 场地之间协作性:各场地虽然具有高度的自治性,但是又相互协作构成一个整体。
分布式数据库结构模式图
分布式数据的设计
分布式数据的设计要遵循CAP定理,即:一个分布式系统不可能同时满足 一致性( Consistency ) 、可用性 ( Availability ) 、分区容 忍 性 ( Partition tolerance ) 这三个基本需求,最 多只能同时满足其中的两项, 分区容错性 是不能放弃的,因此架构师通常是在可用性和一致性之间权衡。
分布式数据库分片
分片设计过程
分片过程是将全局数据进行逻辑划分和实际物理分配过程。全局数据由分片成各个片段数据,各个片段分配到不同的场地(服务器)上。
全局数据库----->片段数据库-------->物理数据库
分片原则
1、完备性:所有全局数据都要映射到某个片段上。
2、可重构性:所有片段必须可以重新构成全局数据。
3、不相交性:划分的个片段所包含的数据无交集。
分片方式
- 水平分片:是对于单表数据进行拆分.拆分标准也不再基于业务逻辑,而是将字段根据某种规则将数据分散到不同的表或库中.每个分片只存储一部分数据.常见的是根据主键分片.如:奇数放0库,偶数放1库.
- 垂直分片:将数据按照业务进行拆分的方式,又称为纵向拆分,核心是专库专用.即多表进行归类存储.将原来在同一个库中的不同表,按照业务的不同存储在不同库中,来减少单库的访问压力.
- 混合分片:既有水平分片,又有垂直分片
- 导出水平分片:分片属性不是该关系表中的属性