CouchDB 教程
CouchDB 是一个开源的面向文档的数据库管理系统,可以通过 RESTful JavaScript Object Notation (JSON) API 访问。“Couch” 是 “Cluster Of Unreliable Commodity Hardware” 的首字母缩写,它反映了 CouchDB 的目标具有高度可伸缩性,提供了高可用性和高可靠性,即使运行在容易出现故障的硬件上也是如此。
CouchDB 是由 Apache 软件基金会开发的开源 NoSQL 数据库,用 Erlang 语言编写。
数据库有两种类型: RDBMS(遵循SQL) 和 NoSQL。
1. RDBMS 关系数据库管理系统
RDBMS 基于 E.F. Codd 引入的关系模型。它是SQL的基础,大多数数据库系统都遵循RDBMS。这些数据库是: Oracle,MySQL,MS SQL Server,IBM DB2和Microsoft Access等。
在RDBMS中,数据存储在表等数据库对象中。表是相关数据条目的集合,并且包含列和行。它仅存储结构化数据。
2. NoSQL 数据库
NoSQL数据库是其他类型的数据库,除了在表1中使用的表格格式外,它还提供了一种存储和检索数据的机制。 RDBMS。
NoSQL数据库是无架构的,一致的,支持简单的复制,具有简单的API并可以处理大量数据。
NoSQL数据库的主要目标是:
- 设计的简单性。
- 水平缩放。
- 对可用性进行更严格的控制。
NoSQL数据库比RDBMS更快,因为与关系数据库相比,它使用不同的数据结构。 NoSQL数据库既可以存储结构化数据也可以存储非结构化数据,例如音频文件,视频文件,文档等。
NoSQL数据库可以根据其数据存储性质分为三种类型:
- 键值存储
- 列存储
- 文档存储
2.1 键值存储
这些数据库旨在将数据存储为键值对。这些数据库没有任何架构,每个数据值都包含一个索引键和该键的值。
键值存储数据库的流行示例有: Cassandra,DynamoDB,BerkeleyDB,Riak等。
2.2 列存储
这些数据库用于在单元格中存储数据。这些单元格被分组在数据列中,并且这些列进一步被分组为列族。这些列族可以包含任意数量的列。
列存储数据库的流行示例是: BigTable,HBase和HyperTable等。
2.3 文档存储
这些数据库遵循键值存储的基本思想,其中"文档"包含复杂数据,并且每个文档都分配有唯一的键,用于检索文档。
这些数据库用于存储,检索和管理面向文档的信息,也称为半结构化数据。
文档存储数据库的流行示例是: CouchDB,MongoDb等。
3. 什么是CouchDB
CouchDB是开源NoSQL数据库,其重点是易用性。它是由Apache开发的。它与Web完全兼容。 CouchDB使用JSON存储数据,使用JavaScript作为其查询语言来转换文档,使用MapReduce和使用HTTP作为API。
CouchDB是2005年发布的多主应用程序,它在2008年成为apache项目。
4. 为什么使用CouchDB
Apache CouchDB是最新的数据库之一。 CouchDB具有无模式的文档模型,该模型更适合于普通应用程序。查询数据非常强大。
使用CouchDB的主要原因是什么?
CouchDB易于使用。有一个词来描述CouchDB"放松"。这也是CouchDB官方徽标的代名词。
" Apache CouchDB已启动。请放松。"
CouchDB具有基于HTTP的REST API,这使得与数据库的通信非常容易。
CouchDB具有易于理解和使用的HTTP资源和方法(GET,PUT,DELETE)的简单结构。
在CouchDB中,数据存储在基于文档的灵活结构中,因此无需担心数据的结构。
CouchDB为用户提供了强大的数据映射功能,该功能允许查询,组合和过滤信息。
CouchDB提供易于使用的复制,您可以使用该复制在数据库和计算机之间复制,共享和同步数据。
5. CouchDB数据模型
数据库是CouchDB中最外面的数据结构/容器。
每个数据库都是独立文档的集合。
每个文档都负责维护自己的数据和独立的架构。
文档元数据包含修订信息,这使得可以合并断开数据库连接时发生的差异。
CouchDB实现了多版本并发控制,以避免在写入过程中需要锁定数据库字段。
CouchDB体系结构:
MongoDB与CouchDB 很相似,他们都是NoSQL数据库,都采用文档型存储,数据存储格式都是JSON型的,而且都使用JavaScript进行操作,支持 Map/Reduce。但是其实二者有着 ...