• 1.摘要
  • 2.简介
  • 3.特性
  • 3.1.应用场景
  • 3.2.特色
  • 4.实现
  • 5.结构
  • 6.ACID
  • 7.View Server
  • 7.1.View Model
  • 7.2.JavaScript
  • 8.参考资料

couchdb

       CouchDB是用Erlang开发的面向文档的数据库系统,CouchDB一种半结构化面向文档的分布式,高容错的数据库系统,其提供RESTFul HTTP/JSON接口,所以它一直倍受用户的青睐。

简介

CouchDB是用Erlang开发的面向文档的数据库系统,最近刚刚发布了1.0版本。CouchDB不是一个传统的关系数据库,而是面向文档的数据库,其数据存储方式有点类似lucene的index文件格式,CouchDB最大的意义在于它是一个面向web应用的新一代存储系统,事实上,CouchDB的口号就是:下一代的Web应用存储系统。

特性

RESTFul API:HTTP GET/PUT/POST/DELETE + JSON

基于文档存储,数据之间没有关系范式要求

每个数据库对应单个个文件(以JSON保存),Hot backup

MVCC(Multi-Version-Concurrency-Control),读写均不锁定数据库

用户自定义View

内建备份机制

支持附件

使用Erlang开发(更多的特性)

应用场景

在我们的生活中,有很多document,比如信件,账单,笔记等,他们只是简单的信息,没有关系的需求,我们可能仅仅需要存储这些数据。这样的情况下,CouchDB应该是很好的选择。当然其他使用关系型数据库的环境,也可以使用CouchDB来解决。

特色

在某些偶尔连接网络的应用中,我们可以用CouchDB暂存数据,随后进行同步。也可以在Cloud环境中,作为分布式的数据存储。CouchDB提供给予HTTP的API,这样所有的常见语言都可以使用CouchDB。

使用CouchDB,意味着我们不需要在像使用RMDBS一样,在设计应用前首先设计负责数据Table。我们的开发更加快速,灵活。

实现

在CouchDB中,Database表示一个数据库,每个Database对应一个”Storage”(后缀为.couch)以及多个View Index(用来存储View结果支持query)。

Database Storage中可以存储任意的Document,用户可以在Database中自定义View,方便对数据进行查询, View 默认使用JavaScript进行定义,定义好的相关函数保存在design document 中,而View对应的具体数据是保存在View Index文件中。我们可以通过HTTP API请求Database,Document,View,可以进行简单的Query,以及其他各种系统相关的信息。