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ù)庫),它提供了一種存儲(chǔ)和檢索RDBMS中使用的表格形式以外的數(shù)據(jù)的機(jī)制。
NoSQL數(shù)據(jù)庫是無模式的,一致的,支持輕松的復(fù)制,具有簡單的API,可以處理大量的數(shù)據(jù)。
NoSQL數(shù)據(jù)庫的主要目標(biāo)是:
NoSQL數(shù)據(jù)庫比RDBMS更快,因?yàn)樗c關(guān)系數(shù)據(jù)庫相比使用不同的數(shù)據(jù)結(jié)構(gòu)。 NoSQL數(shù)據(jù)庫可以存儲(chǔ)結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù),如音頻文件,視頻文件,文檔等。
NoSQL數(shù)據(jù)庫可以根據(jù)其數(shù)據(jù)存儲(chǔ)性質(zhì)分為三種類型:
這些數(shù)據(jù)庫將數(shù)據(jù)存儲(chǔ)在鍵值對(duì)中。 這些數(shù)據(jù)庫不具有任何模式,每個(gè)數(shù)據(jù)值都包含索引的鍵和該鍵的值。
鍵-值存儲(chǔ)數(shù)據(jù)庫的一些流行產(chǎn)品有:Cassandra,DynamoDB,BerkeleyDB,Riak等。
這些數(shù)據(jù)庫用于在單元格中存儲(chǔ)數(shù)據(jù)。 這些單元格分組在數(shù)據(jù)列中,這些列進(jìn)一步分組到列族中。這些列族可以包含任意數(shù)量的列。
一些常見的列存儲(chǔ)數(shù)據(jù)庫是:BigTable,HBase和HyperTable等。
這些文件存儲(chǔ)數(shù)據(jù)庫遵循鍵值存儲(chǔ)的基本思想,“文檔”中包含復(fù)雜數(shù)據(jù),每個(gè)文檔都分配有唯一的鍵,用于檢索文檔。
這些數(shù)據(jù)庫用于存儲(chǔ),檢索和管理面向文檔的信息,也稱為半結(jié)構(gòu)化數(shù)據(jù)。
一些常見的文件存儲(chǔ)數(shù)據(jù)庫是:CouchDB,MongoDb等。
CouchDB是一個(gè)開源的NoSQL數(shù)據(jù)庫,專注于易用性。 它由Apache開發(fā),完全兼容web。 CouchDB使用JSON來存儲(chǔ)數(shù)據(jù),使用JavaScript作為查詢語言來轉(zhuǎn)換文檔,使用MapReduce和HTTP作為API。
CouchDB是2005年發(fā)布的多主應(yīng)用程序,在2008年成為一個(gè)apache項(xiàng)目。