CouchDB是由Apache軟件基礎(chǔ)開發(fā)的開源NoSQL數(shù)據(jù)庫,它是用Erlang編程語言編寫的。
有兩種類型的數(shù)據(jù)庫:
RDBMS是基于E.F. Codd引入的關(guān)系模型。它是SQL的基礎(chǔ),大多數(shù)數(shù)據(jù)庫系統(tǒng)遵循RDBMS。 一些常見的數(shù)據(jù)庫是:Oracle,MySQL,MS SQL Server,IBM DB2和Microsoft Access等。
NoSQL數(shù)據(jù)庫是其他類型的數(shù)據(jù)庫(非關(guān)系數(shù)據(jù)庫),它提供了一種存儲和檢索RDBMS中使用的表格形式以外的數(shù)據(jù)的機制。
NoSQL數(shù)據(jù)庫是無模式的,一致的,支持輕松的復(fù)制,具有簡單的API,可以處理大量的數(shù)據(jù)。
NoSQL數(shù)據(jù)庫的主要目標是:
NoSQL數(shù)據(jù)庫比RDBMS更快,因為它與關(guān)系數(shù)據(jù)庫相比使用不同的數(shù)據(jù)結(jié)構(gòu)。 NoSQL數(shù)據(jù)庫可以存儲結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù),如音頻文件,視頻文件,文檔等。
NoSQL數(shù)據(jù)庫可以根據(jù)其數(shù)據(jù)存儲性質(zhì)分為三種類型:

這些數(shù)據(jù)庫將數(shù)據(jù)存儲在鍵值對中。 這些數(shù)據(jù)庫不具有任何模式,每個數(shù)據(jù)值都包含索引的鍵和該鍵的值。
鍵-值存儲數(shù)據(jù)庫的一些流行產(chǎn)品有:Cassandra,DynamoDB,BerkeleyDB,Riak等。
這些數(shù)據(jù)庫用于在單元格中存儲數(shù)據(jù)。 這些單元格分組在數(shù)據(jù)列中,這些列進一步分組到列族中。這些列族可以包含任意數(shù)量的列。
一些常見的列存儲數(shù)據(jù)庫是:BigTable,HBase和HyperTable等。
這些文件存儲數(shù)據(jù)庫遵循鍵值存儲的基本思想,“文檔”中包含復(fù)雜數(shù)據(jù),每個文檔都分配有唯一的鍵,用于檢索文檔。
這些數(shù)據(jù)庫用于存儲,檢索和管理面向文檔的信息,也稱為半結(jié)構(gòu)化數(shù)據(jù)。
一些常見的文件存儲數(shù)據(jù)庫是:CouchDB,MongoDb等。
CouchDB是一個開源的NoSQL數(shù)據(jù)庫,專注于易用性。 它由Apache開發(fā),完全兼容web。 CouchDB使用JSON來存儲數(shù)據(jù),使用JavaScript作為查詢語言來轉(zhuǎn)換文檔,使用MapReduce和HTTP作為API。
CouchDB是2005年發(fā)布的多主應(yīng)用程序,在2008年成為一個apache項目。