数据库可以分为集中式数据库和分布式数据。集中式系统管理单一数据库,而分布式系统管理多个系统上的多个数据库。分布式系统组件可以根据组件系统的自治性分为两类:联邦的和非联邦的。
集中式数据库
集中式数据库将所有数据存放在一个地方的一套系统中,所有用户连接到这套系统进行数据访问。对某些访问受限的数据来说,集中化可能是理想的,但对于需要大范围、广泛使用的数据来说,集中式数据库可能存在风险。例如,如果集中式数据库不可用,就没有其他途径能访问到数据。
分布式数据库
分布式数据库通过扫描大量节点来快速获取数据,主流的分布式数据库技术史基于普通的商业硬件服务器来实现的。它被设计成可横向扩展,即从一台到成千上万台服务器,而每台服务器提供本地的计算和存储能力,高效能力不是单一硬件,而是依靠数据库管理软件在服务器间复制数据来实现,因而可以让整个计算机集群提供高效的服务。在数据库管理软件的设计之初,就要考虑如何监测和处理故障。任何一台给定的计算机都可能会发生故障,但整个系统不太可能丧失服务能力。
一个分布式数据库通过采用MapReduce模型进一步提升性能。在MapReduce模型中,数据请求会被分成需要小的工作模块,每个工作模块都可以在集群内任一节点上执行一次或重复执行。另外,数据位于各个计算节点上,通过集群提供高贷款的聚合数据访问能力,文件系统和应用