O que é CouchDB?
O Apache CouchDB é um banco de dados de documento NoSQL de software livre que armazena dados em formatos baseados em JSON.
Plano de fundo azul e preto
O que é CouchDB?

O Apache CouchDB (link externo à ibm.com) é um banco de dados de documentos NoSQL de software livre que coleta e armazena dados em formatos de documento baseados em JSON. Ao contrário dos bancos de dados relacionais, o CouchDB usa um modelo de dados sem esquema, que simplifica a gestão de registros em vários dispositivos de computação, telefones móveis e navegadores da Web.

O CouchDB foi introduzido em 2005 e mais tarde tornou-se um projeto da Apache Software Foundation (link externo à ibm.com) em 2008. Como é um projeto de software livre, o CouchDB tem o suporte de uma comunidade ativa de desenvolvedores que melhoram o software de maneira contínua, com foco na facilidade de uso e na aceitação da Web.

Por que usar CouchDB?

Para a maioria das empresas, decidir qual fornecedor usar ao escolher a tecnologia de gerenciamento de dados pode ser um desafio. O software proprietário não só impõe certas restrições de licenciamento em relação ao uso da tecnologia, como também existem questões de continuidade de negócios ao transferir todos os seus dados corporativos para um sistema de gerenciamento de banco de dados (DBMS) de "tamanho único", sem visibilidade de sua estrutura interno.

O CouchDB é diferente. Ao contrário de um software proprietário, que pode deixar a empresa dependente do fornecedor, o CouchDB é um software livre, sem custo e pode ser integrado facilmente com sua infraestrutura de gerenciamento de dados atual. Por ter mais controle sobre o software, você também tem mais flexibilidade ao adaptá-lo às necessidades específicas de sua empresa. Seja pela necessidade de um armazenamento de documento de propósito geral, capacitação de sincronização de dados eficiente ou adoção de um mindset "Off-line first", o CouchDB dá às empresas a flexibilidade necessária para criar infraestruturas duráveis, confiáveis e escaláveis.

Este vídeo explica mais sobre o CouchDB e como ele funciona:

Recursos importantes do CouchDB

A motivação por trás do desenvolvimento CouchDB pode ser definido com uma palavra: relaxar. O CouchDB vem com um conjunto de recursos criados para reduzir o esforço de execução de um sistema resiliente distribuído. Aqui estão alguns recursos importantes do CouchDB e como diferem de outros bancos de dados NoSQL.

Replicação. Um dos principais recursos do CouchDB é a replicação bidirecional, que permite a sincronização de dados entre diversos servidores e dispositivos por meio da replicação bidirecional. Essa replicação permite que as empresas maximizem a disponibilidade dos sistemas, reduzam os tempos de recuperação de dados, localizem geograficamente os dados mais próximos aos usuários finais e simplifiquem os processos backup.

No CouchDB, não há distinção se os dados estão hospedados em um servidor ou em vários. Em vez disso, o CouchDB identifica alterações de documento à medida que ocorrem, a partir de qualquer origem e assegura que todas as cópias de banco de dados estejam sincronizadas com as informações mais atuais. Isso permite que diversas réplicas de banco de dados sejam autocontidas e gerenciadas, sem deixar de hospedar informação precisas e em tempo real em diversos ambientes de computação.

Visualizações. O CouchDB usa visualizações como a ferramenta principal para executar consultas e criar relatórios a partir de arquivos de documento armazenados. As visualizações permitem filtrar documentos em busca de informações relevantes para um determinado processo de banco de dados. Essas informações podem então ser mapeadas de acordo com as suas preferências e extraídas em uma ordem específica.

A melhor parte do CouchDB é a liberdade sobre como as informações são apresentadas. Como as exibições do CouchDB são construídas de forma dinâmica e não afetam diretamente nenhum armazenamento de documentos básico, não existe limitação de quantas visualizações diferentes dos mesmos dados podem ser executadas. Essas visualizações são criadas dentro de documentos de design especial e podem ser replicadas em diversas instâncias de banco de dados, como dados armazenados comuns.

Outro grande recurso do CouchDB é a disponibilidade do Apache MapReduce para criar índices poderosos, que podem localizar documentos facilmente com base em qualquer valor que resida neles. Você poderá então usar esses índices para estabelecer relacionamentos entre documentos e fazer diversos cálculos com base nessas conexões.

API HTTP. O CouchDB usa uma API REST para acessar o banco de dados de qualquer lugar, com a flexibilidade total das operações CRUD (create, read, update, delete). Este meio simples e efetivo para conectividade do banco de dados torna o CouchDB flexível, rápido e poderoso para uso, mantendo-se altamente acessível.

Desenvolvido para uso off-line. Quando estiver ajustando a escala da usabilidade e acessibilidade do seu banco de dados, ser capaz de construir aplicativos que funcionem tão bem off-line quanto on-line, é essencial. O CouchDB permite que os aplicativos armazenem dados coletados em dispositivos móveis e navegadores e, em seguida, sincronizem esses dados assim que estiverem on-line novamente.

Armazenamento de documentos eficiente. No CouchDB, os documentos são as unidades principais de dados em JSON, compostos por vários campos e anexos para fácil armazenamento. Não há limite para o tamanho do texto ou número de elementos em cada documento; além disso, os dados podem ser acessados e atualizados a partir de diversas origens de banco de dados e em clusters de servidores distribuídos globalmente.

Compatibilidade. O CouchDB é extremamente acessível e oferece diversos benefícios de compatibilidade quando integrado à sua infraestrutura atual. O CouchDB foi criado em Erlang (um sistema de tempo de execução e linguagem de programação de propósito geral, simultânea e de garbage collection), que faz dele confiável e fácil de trabalhar para desenvolvedores.

Devido às suas capacidades de software livre, o CouchDB é extremamente flexível e pode ser instalado e executado em vários sistemas operacionais e ferramentas de virtualização. Também é compatível com PouchDB, um banco de dados leve, projetado para execução no navegador de dispositivos móveis.

Benefícios do CouchDB

O CouchDB oferece benefícios tanto para usuários quanto para desenvolvedores.

EscalabilidadeO design arquitetônico do CouchDB o torna extremamente adaptável ao particionar bancos de dados e ajustar a escala dos dados em múltiplos nós. O CouchDB oferece suporte a particionamento e replicação horizontais para criar uma solução de fácil gerenciamento, para balancear cargas de leitura e de gravação durante a implementação do banco de dados.

O CouchDB possui um mecanismo de armazenamento seguro e durável, criado para infraestruturas multicloud e para múltiplos bancos de dados. Como um banco de dados NoSQL, o CouchDB é extremamente customizável e abre o caminho para desenvolvimento de aplicativos previsíveis e com foco em desempenho, não importa qual seja o volume de seus dados ou número de usuários.

Sem bloqueios de leitura. Na maioria dos bancos de dados relacionais, em que os dados são armazenado em tabelas, caso exista a necessidade de atualizar ou modificar uma tabela, a linha dos dados que serão alterados é bloqueada para outros usuários até que a solicitação de mudança seja processada. Isso pode criar problemas de acessibilidade para clientes e gargalos gerais em seus processos de gerenciamento de dados.

O CouchDB usa MVCC (Multi-Version Concurrency Control) para gerenciar o acesso simultâneo a bancos de dados. Isso significa que independentemente das cargas atuais do banco de dados, o CouchDB pode ser executado em velocidade máxima e sem restrições para seus usuários. Um vez que os documentos no CouchDB possuem controle de versão e são anexados em tempo real, as solicitações de leitura do banco de dados sempre verão capturas instantâneas atualizadas do banco de dados, não importa quem acessou o documento primeiro.

Desenvolvimento de software livre. Devido ao grande apoio e suporte na comunidade de software livre, o CouchDB mantém uma base forte e confiável para gerenciamento de bancos de dados corporativos. Desenvolvido ao longo de vários anos como uma solução sem esquema, o CouchDB oferece uma flexibilidade incomparável que não pode ser encontrada na maioria das soluções proprietárias de banco de dados.

Soluções relacionadas
IBM Cloudant

Descubra a camada de dados para aplicativos de larga escala, resilientes e disponíveis globalmente, baseados no software livre Apache CouchDB.

Conheça o IBM Cloudant
Recursos Análise de banco de dados: CouchDB

Conheça os pontos fortes e fracos do CouchDB, o futuro do projeto e muito mais nesta entrevista com dois especialistas em banco de dados.

O que é NoSQL?

NoSQL é uma abordagem de design de banco de dados que possibilita armazenamento e consulta de dados fora das estruturas tradicionais encontradas em banco de dados relacionais.

O que é armazenamento em cloud?

Uma introdução aos aspectos importantes do armazenamento em cloud, incluindo como ele funciona, seus benefícios e os diferentes tipos disponíveis.

Dê o próximo passo

Baseado no Apache CouchDB, IBM Cloudant é um banco de dados totalmente gerenciado e distribuído, otimizado para cargas de trabalho pesadas e aplicativos em rápido crescimento para Web e dispositivos móveis. Disponível como serviço IBM Cloud com SLA de 99,99%, o Cloudant oferece escala elástica de rendimento e armazenamento; seus protocolos de API e replicação são compatíveis com Apache CouchDB para oferecer arquiteturas multicloud híbridas.

Conheça e teste o IBM Cloudant