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):
ORACLE | RIAK |
Instância | Cluster |
Tabela | Bucket |
Linha de Registro | chave-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):
ORACLE | MongoDB |
Instância | Instância |
Esquema | Banco de Dados |
Tabela | Coleção |
Linha de Registro | Documento |
Rowid (uma pseudocoluna identifica unicamente) | _id |
Junção | DBRef |
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/