CouchDB 简介

CouchDB是由Apache软件基础开发的开源NoSQL数据库,它是用Erlang编程语言编写的。

有两种类型的数据库:

  • 关系数据库管理系统(遵循SQL)
  • NoSQL

CRDBMS:关系数据库管理系统

RDBMS是基于E.F. Codd引入的关系模型。它是SQL的基础,大多数数据库系统遵循RDBMS。 一些常见的数据库是:Oracle,MySQL,MS SQL Server,IBM DB2和Microsoft Access等。

NoSQL数据库

NoSQL数据库是其他类型的数据库(非关系数据库),它提供了一种存储和检索RDBMS中使用的表格形式以外的数据的机制。

NoSQL数据库是无模式的,一致的,支持轻松的复制,具有简单的API,可以处理大量的数据。

NoSQL数据库的主要目标是:

  • 简约设计
  • 很好的水平扩展能力
  • 更好地控制可用性

NoSQL数据库比RDBMS更快,因为它与关系数据库相比使用不同的数据结构。 NoSQL数据库可以存储结构化和非结构化数据,如音频文件,视频文件,文档等。

NoSQL数据库可以根据其数据存储性质分为三种类型:

  • 键-值存储
  • 列存储
  • 文件存储 CouchDB 简介 - 图1

键-值存储

这些数据库将数据存储在键值对中。 这些数据库不具有任何模式,每个数据值都包含索引的键和该键的值。

键-值存储数据库的一些流行产品有:Cassandra,DynamoDB,BerkeleyDB,Riak等。

列存储

这些数据库用于在单元格中存储数据。 这些单元格分组在数据列中,这些列进一步分组到列族中。这些列族可以包含任意数量的列。

一些常见的列存储数据库是:BigTable,HBase和HyperTable等。

文件存储

这些文件存储数据库遵循键值存储的基本思想,“文档”中包含复杂数据,每个文档都分配有唯一的键,用于检索文档。

这些数据库用于存储,检索和管理面向文档的信息,也称为半结构化数据。

一些常见的文件存储数据库是:CouchDBMongoDb等。

CouchDB是什么?

CouchDB是一个开源的NoSQL数据库,专注于易用性。 它由Apache开发,完全兼容web。 CouchDB使用JSON来存储数据,使用JavaScript作为查询语言来转换文档,使用MapReduce和HTTP作为API。

CouchDB是2005年发布的多主应用程序,在2008年成为一个apache项目。

为什么使用CouchDB?

Apache CouchDB是最新的数据库之一。 CouchDB具有无模式的文档模型,更适合常见应用。可支持非常大数据量查询。

使用CouchDB的主要原因是什么?

  • CouchDB易于使用。 有一个单词可以描述CouchDB - “Relax”。 它也是组成CouchDB官方标志一个单词。
  • CouchDB具有基于HTTP的REST API,使数据库的通信非常简单。
  • CouchDB具有易于理解和使用的HTTP资源和方法(GET,PUT,DELETE)的简单结构。
  • 在CouchDB中,数据存储在基于灵活文档的结构中,因此不必担心数据的结构。
  • CouchDB为用户提供了强大的数据映射,可以对信息进行查询,组合和过滤。
  • CouchDB提供易于使用的复制功能,使用复制功能来共享和同步数据库和计算机之间的数据。

CouchDB数据模型

  • 数据库是CouchDB中最外层的数据结构/容器。
  • 每个数据库都是独立文件的集合。
  • 每个文档负责维护自己的数据和自包含的模式。
  • 文档元数据包含修订信息,这样可以合并数据库断开连接时存在的差异数据信息。
  • CouchDB实现多版本并发控制,以避免在写入期间锁定数据库字段。

CouchDB架构:

CouchDB 简介 - 图2