Um Resumo dos Modelos de Bancos de Dados NoSQL

Modelos de Bancos de Dados NoSQL

No artigo anterior apresentamos o conceito de bancos de dados não-relacionais, ou NoSQL, mostrando algumas características, aplicações e nomeando exemplos de tecnologias atuais que empregam essa filosofia.

Vamos agora resumir os principais modelos de armazenamento não-relacionais, com suas principais características e exemplos de sistemas de gerenciamento de bancos de dados para cada um deles.

Banco de Dados Orientado a Documentos

Também conhecidos como Sistemas de Bancos de Dados Armazém de Documentos, são sistemas cuja principal característica é a organização de dados livre de esquemas.

Neste tipo de banco de dados, os registros não precisam ter uma estrutura uniforme. Assim, registros distintos podem ter coleções de atributos diferentes. Além disso, os tipos de dados nas colunas individuais podem ser diferentes para cada registro, o que não ocorre em bancos relacionais.

Também é possível armazenar mais de um valor em uma mesma coluna, como um array de valores (vetor). Em um banco relacional isso representaria um atributo multivalorado, o qual seria eliminado no processo de normalização.
Finalmente, os registros podem ter uma estrutura aninhada, o que também é eliminado na normalização em um banco relacional.

Exemplos

  • Amazon DynamoDB
  • CouchDB
  • Microsoft Azure Cosmos DB
  • MongoDB
  • RavenDB

O MongoDB é atualmente o mais utilizado dos bancos orientados a documento.

Banco de Dados Orientado a Coluna

Neste tipo de sistema de gerenciamento, os dados são armazenados em registros com a habilidade de manter um número elevado de colunas dinâmicas. Os nomes das colunas e das chaves dos registros não são fixos, e um registro pode ter literalmente bilhões de colunas. Por conta disso, um banco orientado a coluna é similar a um sistema chave/valor de duas dimensões.

Este tipo de banco não usa esquema fixo, assim como os bancos orientados a documento, mas com uma imolememtação distinta.

Exemplos

  • Cassandra
  • Google Cloud Bigtable
  • HBase
  • Microsoft Azure Cosmos DB

Banco de Dados Chave/Valor

Sistemas de Gerenciamento de Bancos de dados no modelo Chave/Valor são bastante simples. Esse tipo de sistema armazena apenas pares de chaves com valores associados, e permitem obter os valores quando uma consulta é realizada a uma chave.
Por conta de sua simplicidade, não são empregados em aplicações mais complexas. Uma de suas principais aplicações são os sistemas de armazenamento embarcados.
Com o emprego de extensões é possível transicionar para bancos orientados a documento ou colunares.

Exemplos

  • Amazon DynamoDB
  • Hazelcast
  • Memchached
  • Redis

Banco de Dados do tipo Grafo

Sistemas de Bancos de Dados Orientados a Grafo representam dados em estruturas de grafo como nós e edges, relacionamentos entre os nós. Permitem calcular propriedades específicas do grafo, como a quantidade de saltos (passos) necessários para ir de um nó a outro.

Exemplos

  • Amazon Neptune
  • ArangoDB
  • Microsoft Azure Cosmos DB
  • Neo4j
  • OrientDB
  • Virtuoso

Motor de Busca

Um motor de busca é um banco de dados NoSQL cuja função é permitir a pesquisa de conteúdo de dados. Esse tipo de sistema possui características bem peculiares, como o suporte à busca com o emprego de expressões complexas, busca de texto completo, ranqueamento e agrupamento de resultados, busca geoespacial e pesquisa distribuída, além de serem altamente otimizados para responder à alta demanda de pesquisas que podem receber.

Exemplos

  • Elasticsearch
  • MarkLogic
  • Microsoft Azure Search
  • Solr
  • Splunk

Conclusão

A escolha do modelo de banco de dados NoSQL adequado depende das necessidades específicas de cada aplicação. Cada modelo tem suas vantagens e desvantagens, e a escolha certa depende de uma série de fatores, como escalabilidade, desempenho, consistência, flexibilidade e custo.

Embora os bancos de dados relacionais ainda sejam amplamente utilizados, os bancos de dados NoSQL estão ganhando popularidade, especialmente em aplicações web e móveis que exigem alta escalabilidade e flexibilidade.

Ao entender as diferenças entre os modelos de bancos de dados NoSQL, os desenvolvedores podem tomar decisões informadas sobre qual modelo usar em seus projetos. Cada modelo tem suas próprias vantagens e desvantagens, mas todos oferecem uma alternativa interessante para os bancos de dados relacionais tradicionais.

Em resumo, escolher o modelo de banco de dados NoSQL certo pode ajudar a garantir que um projeto atenda às necessidades específicas de escalabilidade, desempenho, consistência e flexibilidade, permitindo que os desenvolvedores criem aplicativos robustos e confiáveis.

É isso! Neste artigo apresentamos sucintamente os principais modelos de bancos de dados não-relacionais em uso atualmente, com exemplos das principais tecnologias existentes para cada um deles.

A partir dos próximos artigos dessa série, vamos explorar mais a fundo cada modelo, em alguns casos com explicações de como instalar os sistemas e de como criar e gerenciar bancos de dados NoSQL.

Até mais!

 

Sobre Fábio dos Reis (1223 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

Escreva um comentário

Seu e-mail não será divulgado


*