CouchDB2
Nome do Banco de Dados
CouchDBNomes dos Alunos
- Adalton de Sena Almeida Filho - 12542435
- Bernardo Rodrigues Tameirão Santos - 12733212
- Daniel Henrique Lelis de Almeida - 12543822
- Gabriel dos Santos Brito - 10284250
- Felipi Yuri Santos - 11917292
- Igor Cardozo Martins - 10387515
- Rodrigo de Freitas Lima - 12547510
- Victor Lucas de Almeida Fernandes - 12675399
- Vinicius Carneiro Macedo - 11915752
- Yuri Fernandes Pereira - 13730127
Principais Funcionalidades
Replicação: Provém a forma mais simples de replicação, e não há outra base de dados tão simples de replicar.
Armazenamento de Documentos: É uma base de dados NoSQL que segue armazenamento de documentos, em que cada campo é unicamente nomeado e contém valores de vários tipos de dados, como texto, números, booleanos e listas.
Propriedades ACID: O layout de arquivos do CouchDB segue todas as características das propriedades ACID, que são atomicidade, consistência, isolamento e durabilidade.
Segurança: Também fornece segurança no nível do banco de dados e as permissões são divididas em leitores e administradores, onde os leitores podem fazer a leitura e a gravação no banco de dados.
Map/Reduce: O principal motivo da popularidade do CouchDB é um sistema de mapear / reduzir.
Authentication: o CouchDB facilita a manutenção da autenticação aberta por meio de um cookie de sessão, como um aplicativo da web.
Built for Offline: o CouchDB pode replicar para dispositivos como smartphones que têm um recurso para ficar offline e lidar com a sincronização de dados para você quando o dispositivo estiver online novamente.
Eventual Consistency: o CouchDB garante consistência eventual para fornecer disponibilidade e tolerância de partição.
HTTP API: Todos os itens têm um URI (Identificador de Recurso Único) exclusivo que é exposto via HTTP. Ele usa os métodos HTTP como POST, GET, PUT e DELETE para as quatro operações básicas CRUD (Criar, Ler, Atualizar, Excluir) em todos os recursos.
O CouchDB implementa CA, CP ou AP? Por quê?
O CouchDB possui uma abordagem diferente do Teorema CAP se comparado com os demais bancos de dados, que escolhem dois entre os três atributos: Consistência, Disponibilidade e Tolerância ao Particionamento. O CouchDB funciona no modo AP (Availability e Partition Tolerance), pois é projetado para atender a aplicações com prioridade para Disponibilidade e Tolerância ao Particionamento. Contudo, o CouchDB também usa “Eventual Consistency”: os clientes podem escrever em algum nó da base de dados, e é garantido que esta informação será eventualmente propagada para o resto da base de dados. Desse modo, o CouchDB também busca atender ao atributo da Consistência.
Vantagens
- HTTP API é usado para facilitar a comunicação.
- Ele é usado para armazenar qualquer tipo de dados.
- Reduce/Map permite otimizar a combinação de dados.
- A estrutura do CouchDB é muito simples
- Indexação e recuperação rápidas.
Desvantagens
- O CouchDB ocupa um grande espaço para sobrecarga, o que é uma grande desvantagem em comparação com outros bancos de dados.
- As consultas arbitrárias são caras.
- Há um pouco de sobrecarga de espaço extra com o CouchDB em comparação com a maioria das alternativas.
- Visualizações temporárias em grandes conjuntos de dados são muito lentas.
- Não suporta transações
- A replicação de grandes bancos de dados pode falhar.
Nichos de Aplicação
- Aplicativos Web em tempo real: permite armazenar e sincronizar dados entre clientes e servidores em tempo real.
- Sistemas de Gerenciamento de Conteúdo (CMS): usado para armazenar e indexar informações relacionadas ao conteúdo, como blogs, notícias e documentos.
- Aplicativos móveis com sincronização offline/online: os dados podem ser armazenados localmente nos dispositivos móveis e sincronizados com o servidor quando houver conectividade.
- Internet das Coisas (IoT): adequado para armazenar grandes volumes de dados gerados por dispositivos IoT, como dados sensoriais e métricas.
- Sistemas de gerenciamento de documentos flexíveis: permite armazenar e recuperar documentos com diferentes esquemas sem a necessidade de migrações complexas.
- Aplicativos colaborativos em tempo real: suporta aplicativos onde vários usuários podem trabalhar simultaneamente nos mesmos dados.
Referências
https://www.javatpoint.com/features-of-couchdb
https://www.geeksforgeeks.org/introduction-to-apache-couchdb/