CouchDB
维基百科,自由的 encyclopedia
Apache CouchDB是一个开源数据库,专注于易用性和成为"完全拥抱web的数据库"[2]。它是一个使用JSON作为存储格式,JavaScript作为查询语言,MapReduce和HTTP作为API的面向文档的NoSQL数据库。其中一个显著的功能就是多主复制。CouchDB的第一个版本发布在2005年,在2008年成为了Apache的项目。
Quick Facts 原作者, 开发者 ...
CouchDB's Futon管理界面,用户数据库 | |
原作者 | Damien Katz, Jan Lehnardt, Noah Slater, Christopher Lenz, J. Chris Anderson, Paul Davis, Adam Kocoloski, Jason Davies, Benoît Chesneau, Filipe Manana, Robert Newson |
---|---|
开发者 | Apache软件基金会 |
首次发布 | 2005 |
当前版本 | 3.3.3[1](2023年12月4日,3个月前) |
源代码库 | |
编程语言 | Erlang |
操作系统 | 跨平台 |
类型 | 面向文档的数据库 |
许可协议 | Apache许可证 |
网站 | couchdb |
Close
不同于关系型数据库,CouchDB没有将数据和关系存储在表格里。替代的,每个数据库是一个独立的文档集合。每一个文档维护其自己独立的数据和自包涵的schema。一个应用程序可能会访问多个数据库,比如其中一个位于用户的手机上,另一个位于在远程的服务器上。文档的元数据包含版本信息,让其能够合并可能因为数据库链接丢失导致的任何差异。
CouchDB实现了一个多版本并发控制(MVCC)形式,用来避免在数据库写操作的时候对文件进行加锁。冲突留给应用程序去解决。解决一个冲突的通用操作的是首先合并数据到其中一个文档,然后删除旧的数据[3]。
其他功能包括文档级别的ACID语义和最终一致性,MapReduce,复制(Replication)。它还支持通过一个做Futon的内置web应用程序来进行数据库管理。