Os bancos de dados NoSQL, também chamados de não relacionais, ou não totalmente relacionais, tem como principal função armazenar dados não estruturados, foco em armazenar grandes quantidades de dados.
Existem 4 categorias principais dentro dos bancos de dados NoSQL:
- Graph databases
- Document databases
- Key-values database
- Column family stores
Definição de NoSQL : “NOSQL DEFINITION:Next Generation Databases mostly addressing some of the points: being non-relational, distributed, open-source and horizontally scalable.”
Graph databases
Essa categoria NoSQL, geralmente é aderente a cenários de rede social online, onde os nós representam as entidades e os laços representam as interconexões entre eles.
Desta forma, é possível atravessar o grafo seguindo as relações. Esta categoria tem sido utilizada para lidar com problemas relacionados a sistemas de recomendação e listas de controle de acesso, fazendo uso e sua capacidade de lidar com dados altamente interligados.
O principal banco de dados NoSQL nesse requisito é o Neo4J.
Document databases
Também conhecido como banco de dados orientado a documento permite o armazenamento de milhões de documentos.
Exemplo: Detalhes de um empregado junto com o currículo dele, logo após é possível pesquisar sobre potenciais candidatos a uma vaga, usando um campo específico, como conhecimento em uma tecnologia.
Banco de dados XML são uma subclasse dos banco de dados NoSQL orientado a documentos.
O principal representante dessa categoria é o MongoDB
Key-value database
Os dados são armazenados no formato key-value (chave-valor) e os valores (dados) são identificados pelas chaves. É possível armazenar bilhões de registros de forma eficiente e o processo de escrita é muito rápido, uma estrutura de dados mais comumente conhecida hoje como um dictionary ou hash table.
Os dictionaries contém uma coleção de objetos, ou registros, que, por sua vez, têm muitos campos diferentes dentro deles, cada um contendo dados. Esses registros são armazenados e recuperados usando uma chave que identifica exclusivamente o registro e é usada para localizar rapidamente os dados no banco de dados.
O principal representante dessa categoria é Amazon Dynamodb:
Column Family Store
Também chamados de banco de dados orientados a coluna, os dados são organizados em grupos de colunas e tanto o armazenamento, quanto as pesquisas de dados são baseados em chaves.
Os bancos de dados de armazenamento de colunas usam um conceito chamado keyspace. Um keyspace é como um schema no modelo relacional. O espaço de chaves contém todas as famílias de colunas (como tabelas no modelo relacional), que contém linhas, que contêm colunas.
HBase e Hypertable são os exemplos mais comuns desta categoria.
Agora os principais exemplos em cada um dos principaistipos de banco de dados NoSQL.




*Cassandra é considerado um banco de dados híbrido
Para uma lista completa com todos os banco de dados NoSQL e suas categorias, acessem: http://nosql-database.org/ (Hoje com mais de 225 bancos de dados NoSQL).
Como o NoSQL oferece funcionalidades nativas para cada uma dessas categorias, ele se torna uma alternativa eficiente para armazenamento e consulta para a maioria dos dados não-relacionais, uma excelente opção quando se trata de Big Data.
Benefícios ao usar os bancos NoSQL:
- Representação de dados sem schema
- Tempo de desenvolvimento
- Velocidade
- Escalabilidade