Desenvolvimento de uma interface WEB com PHP para gerenciamento de banco de dados CouchDB

O artigo traz um estudo de uma abordagem prática para a implementação de um protótipo de interface web com PHP para gerenciamento da base de dados CouchDB.

[ Hits: 38.650 ]

Por: kassiano em 28/09/2010


Apache CouchDB



CouchDB foi criado em meados de 2005 por Damien Katz, escrito originalmente em C++ e traduzido para Erlang em 2008. Este combina um modelo intuitivo de armazenagem em documentos com um poderoso sistema de pesquisa acessível via RESTful e HTTP/JSON Api.

Lennon (apud OLIVEIRA, 2009, p.19) observa que o termo "Couch" é um acrônimo para "Cluster of Unreliable Commodity Hardware" (Conjunto de Hardware 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".

O couchDB combina um modelo intuitivo de armazenagem em documentos com um poderoso sistema de pesquisa acessível via RESTful e (HTTP/JSON Api), dentre suas funcionalidades está a replicação bidirecional com detecção de falhas e resolução de conflitos; sua base de dados é baseada em princípios MapReduce e em vez de armazenar dados em linhas e colunas, o CouchDB gerencia uma coleção de documentos, os chamados "JSON documents".

Este ainda utiliza um modelo de views baseado em JavaScript para a geração de agregações e filtros, provendo resultados de consultas a partir destes documentos semi-estruturados. Ao invés de armazenar dados em linhas e colunas, o CouchDB gerencia uma coleção de documentos, os chamados "JSON documents". O mesmo usa um método de visualização (Design Documents) com funções definidas que agregam dados e filtros para serem computados em paralelo.

Dentre suas funcionalidades estão à replicação bidirecional com detecção de falhas e resolução de conflitos. Essa base de dados é baseada em princípios de redução de código o chamado MapReduce.

Características Apache CouchDB

Para Anderson (2009), as principais características do CouchDB são:
  • (i) atomicidade;
  • consistência;
  • isolamento;
  • durabilidade;
  • confiabilidade;
  • tolerante a falhas;
  • suporte a replicação.

Interface de administração Futon

Após uma analise da interface existente para o gerenciamento do banco de dados CouchDB versão 0.10, chegou-se a conclusão sobre algumas desvantagens apresentadas pela mesma.
  • Parte de configurações não funciona muito bem, trava e algumas configurações simplesmente não funcionam na interface é necessário editar arquivos no servidor;
  • Controle de usuários é precário, você somente pode adicionar usuários para administradores ou criar usuários com acesso à visualização;
  • Gerenciador não funciona no Windows;
  • Gerenciador não pode controlar mais que um banco, ou seja, cada servidor deve ter sua interface para controle;
  • Todos os bancos criados são visualizados juntos, não a controle por usuários mesmo que administradores.

Vendo estas deficiências, se torna válido o estudo de uma nova interface que venha a contribuir com o banco de dados CouchDB em desempenho, agilidade e segurança.

Página anterior     Próxima página

Páginas do artigo
   1. Início
   2. Introdução
   3. Modelo orientado a documento
   4. Apache CouchDB
   5. Desenvolvimento do protótipo
   6. Implementação do protótipo
   7. Conclusões / Referências
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Banco de dados Livre X Proprietário

Banco de dados orientados a documentos

Instalando Interbase 2007 Developer em Linux OpenSuSE 10.2

Como instalar Microsoft SQL SERVER no openSUSE Linux

SQLite 3 - Convertendo tabelas do LibreOffice em Banco de Dados

  
Comentários
[1] Comentário enviado por dastyler em 28/09/2010 - 22:37h

Muito bom o artigo e bem esclarecedor, apesar do CouchDb nao ser novidade.
Mas vejo que a tecnologia (que vem sendo usada por muitos rubistas há algum tempo), vem ganhando mais adeptos no mundo PHP.
eu pretendo me aprofundar mais na tecnologia assim que finalizar alguns projetos que estao em andamento e em fase final, projetos estes que ainda rodam sob bancos relacionais.

Parabéns!!

[]'s


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts