Banner Hospedagem de Sites
26/04/2020

Banco Dados noSQL Chave-valor x Documentos

Quando se fala sobre banco de dados não relacional (noSQL), dois modelos não podem ficar sem ser citados, os fundamentados em Chave-valor e Documentos, por isso a importância de uma discussão sobre Banco Dados noSQL Chave-valor x Documento.

Chave-valor

Por outro lado, um banco de dados fundamentado nos conceitos chave-valor corresponde a uma tabela hash simples, assim todos os acessos são feitos por meio de uma chave principal (chave primária).

Enfim, para entender, pense em uma tabela PRODUTO de um SGBDR (Sistema Gerenciador de Banco de Dados Relacional), com as colunas:

  • cod_produto
  • nome_produto

Por certo, sendo a coluna cod_produto a chave e as colunas nome_produto, preco_produto armazenamento de valores.

Terminologias

Comparando as terminologias de um SGBDR (ORACLE) x um banco de dados não relacional de chave-valor (Riak):

ORACLERIAK
InstânciaCluster
TabelaBucket
Linha de Registrochave-valor
Rowid (uma pseudocoluna identifica unicamente)Chave

Alguns banco de dados que implementa esse modelo são:

  • Riak,
  • Berkley DB,
  • Redis,
  • Entre outros.

Características

Diferentemente dos SGBDR a consistência deste modelo é aplicada apenas às ações executadas em uma única chave, ou seja, a inclusão, alteração e exclusão são executadas com base na chave-valor definida, a única chave de acesso.

Ou seja, normalmente as operações são consistidas em sua concorrência da seguinte forma, a última que chega prevalece sobre as anteriores, ficando a mais recente atualização, quando se pensa em alterações.

Não há um controle específico de transações, cada banco de dados que implementa esse modelo pode tratar de maneira diferente. Alguns bloqueios o registro, até que aconteça a gravação para ter certo controle de transação.

Portanto, a aplicação desse modelo deve ser bem pensada quando analisadas pelo prisma de consultas aos registros, pois a forma aplicada de consulta é sempre pela chave, assim pesquisas que não sejam pela chave são custosas e dependendo da estrutura impraticáveis.

Por consequência, na questão da estrutura dos dados, os mesmos na parte do valor podem ser do tipo texto, XML, JSON, entre outros. Mas, isso vai depender do banco de dados que será implementado.

Aplicabilidade

Só para exemplificar, é importante destacar as aplicabilidades para esse modelo, onde são mais adequadas as aplicações chave-valor, que podem ser:

  • Perfil de usuários e suas preferências.
  • Dados de carrinho de compra.
  • Armazenamento de dados de sessões de sistemas.

Por certo, não são adequados para aplicação em projetos que necessitem de:

  • Relacionamentos entre os dados.
  • Transações de múltiplas operações.
  • Consulta por dados (valor).
  • Operações de chaves compostas.

Só para ilustrar, aqui foi apresentada uma visão sintetizada sobre um banco de dados noSQL Chave-valor.

Documentos

Bem como, o próprio nome indica, os bancos de dados fundamentados em Documentos, utilizam-se de documentos para expressar seus dados.

Enfim, armazenam e recuperam documentos que podem ser implementados utilizando de linguagens de marcação, com XML, JSON, entre outras. Lembrando que, estes documentos são representações de estruturas de dados.

Contudo os documentos têm que ser semelhantes entre si, mas não necessariamente iguais.

Terminologias

Comparando as terminologias de um SGBDR (ORACLE) x um banco de dados não relacional de documentos (MongoDB):

ORACLEMongoDB
InstânciaInstância
EsquemaBanco de Dados
TabelaColeção
Linha de RegistroDocumento
Rowid (uma pseudocoluna identifica unicamente)_id
JunçãoDBRef

Alguns bancos de dados que implementa esse modelo são:

  • MongoDB,
  • CouchDB,
  • Lotus Notes,
  • Entre outros.

Características

Em virtude de questões relacionadas a controle de transação os NoSQL que são implementados em documentos trabalham de forma atômica, ou seja, trabalham em nível de um único documento, onde a gravação pode ser bem sucedida ou não.

Por consequência, os dados são armazenados em documentos, ou seja, orientados a documentos, ao invés das tradicionais tabelas.

O documento não tem uma estrutura fechada, pode-se adicionar ou eliminar atributos (campos), dessa forma não é obrigatório que todos os documentos apresentem a mesma hierárqua de atributos.

Diferentemente dos SGBDRs possibilita guardar listas ou matrizes em sua estrutura hierárquica de atributos.

Utiliza-se da linguagem de marcação JSON para a definição dos documentos, isso facilita a implementação dos dados dentro dos documentos.

Assim, apresenta vários driver podendo ser implementado em diversa linguagens de programação: Python; PHP; Java; C++; C#, entre outras.

Aplicabilidade

Só para exemplificar, é importante destacar as aplicabilidades para esse modelo, onde são mais adequadas as aplicações documentos, que podem ser:

  • Registros de evento (Logs).
  • Sistemas de Gerenciamento de Conteúdo (CMS).
  • Aplicação em comércio eletrônico.

Por certo, não são adequados para aplicação em projetos que necessitem de:

  • Relacionamentos entre os dados.
  • Transações de múltiplas operações.
  • Consulta em estruturas agregadas.

Só para ilustrar, aqui foi apresentada uma visão sintetizada sobre um banco de dados noSQL Documentos.

Conclusão

Por fim, este artigo sobre Banco Dados noSQL Chave-valor x Documentos, traz uma visão sintetizada sobre duas estruturas implementadas em banco de dados NoSQL, com fins ilustrativos para que o leitor possa ter o primeiro contato com essas duas linhas.

Dessa forma, veja mais artigos relacionados à banco de dados, clicando aqui.

Fontes:

  • https://www.mongodb.com/
  • https://riak.com/
Share

Luis Alexandre da Silva

Professor e Consultor de tecnologia em desenvolvimento de sistemas.Possui mestrado em Ciência da Computação pela UNESP (2016), especialização em Gestão Integrada de Pessoas e Sistemas de Informação pela FIB (2008) e graduação em Análise de Sistemas pela Universidade do Sagrado Coração (1997).Por fim, tem experiência em Gerenciamento de Projetos, Linguagens de Programação e Banco de Dados. Atuando principalmente nos seguintes temas: ensino, gerenciamento de projetos, ITIL, Desenvolvimento WEB e processos BPO.

Você pode querer ver também...

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *