Banco de dados orientados a documentos
Bom, neste artigo vou apresentar um banco de dados orientado a documentos usando CouchDB, um dos mais populares do ramo, e vou passar uma dica introdutória de comandos básicos e um poco de teoria.
Introdução ao CouchDB
O termo "Couch" é um acrônimo para Cluster of Unreliable Commodity Hardware (Conjunto de Hardware Commodity Não-Confiáveis), refletindo o objetivo do banco de dados ser extremamente escalável, oferecendo alta disponibilidade e confiabilidade, mesmo quando executando em um hardware que é tipicamente suscetível a falhas.
Da mesma forma que os SGBDRs oferecem o SQL como interface de consulta, o CouchDB oferece uma interface de consultas adaptada aos seus princípios arquiteturais baseados na Web, através do Representational State Transfer (REST), que é utilizado como forma de inserir, atualizar, extrair e remover dados do CouchDB.
Popularmente o público rotula-o como NoSQL, esse tipo de banco de dados, assim como "MongoDB". Muitos dizem que é errado, pois usa SQL, mas este rótulo acabou colando.
Quanto ao termo ACID no CouchDB, todo o layout de arquivos e sistema de commit está baseado nestes princípios, o que resulta na garantia de um estado sempre consistente do arquivo de banco de dados. A atualização de documentos são serializadas e os leitores de banco nunca são bloqueados ou nunca têm de esperar por escritores ou outros leitores.
A leitura de documentos pode ser realizada por diversos clientes sem ser bloqueada ou interrompida por atualizações concorrentes. Esta característica se deve pela utilização de um modelo baseado no algoritmo MVCC, onde cada cliente vê um retrato consistente do banco de dados do começo até o final da operação de leitura. (Apache CouchDB, Technical Overview, 2008)
CouchDB
Em suma, CouchDB é um banco de dados orientado a documentos, feito com Erlang em conta de sua lendária programação multitarefa e desempenho, diferente de bancos relacionais que estamos acostumados ver como MySQL, SQLite e PostgreSQL.Da mesma forma que os SGBDRs oferecem o SQL como interface de consulta, o CouchDB oferece uma interface de consultas adaptada aos seus princípios arquiteturais baseados na Web, através do Representational State Transfer (REST), que é utilizado como forma de inserir, atualizar, extrair e remover dados do CouchDB.

Popularmente o público rotula-o como NoSQL, esse tipo de banco de dados, assim como "MongoDB". Muitos dizem que é errado, pois usa SQL, mas este rótulo acabou colando.
Quanto ao termo ACID no CouchDB, todo o layout de arquivos e sistema de commit está baseado nestes princípios, o que resulta na garantia de um estado sempre consistente do arquivo de banco de dados. A atualização de documentos são serializadas e os leitores de banco nunca são bloqueados ou nunca têm de esperar por escritores ou outros leitores.
A leitura de documentos pode ser realizada por diversos clientes sem ser bloqueada ou interrompida por atualizações concorrentes. Esta característica se deve pela utilização de um modelo baseado no algoritmo MVCC, onde cada cliente vê um retrato consistente do banco de dados do começo até o final da operação de leitura. (Apache CouchDB, Technical Overview, 2008)
abraço