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

É 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 (1357 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica 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.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*