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数据库可以根据其数据存储性质分为三种类型:
- 键-值存储
- 列存储
- 文件存储
键-值存储
这些数据库将数据存储在键值对中。 这些数据库不具有任何模式,每个数据值都包含索引的键和该键的值。
键-值存储数据库的一些流行产品有:Cassandra,DynamoDB,BerkeleyDB,Riak等。
列存储
这些数据库用于在单元格中存储数据。 这些单元格分组在数据列中,这些列进一步分组到列族中。这些列族可以包含任意数量的列。
一些常见的列存储数据库是:BigTable,HBase和HyperTable等。
文件存储
这些文件存储数据库遵循键值存储的基本思想,“文档”中包含复杂数据,每个文档都分配有唯一的键,用于检索文档。
这些数据库用于存储,检索和管理面向文档的信息,也称为半结构化数据。
一些常见的文件存储数据库是:CouchDB,MongoDb等。
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架构: