O que é Banco de Dados NoSQL?
NoSQL significa “Not Only SQL”, e refere-se a uma classe de sistemas de gerenciamento de banco de dados que não usam a linguagem padrão SQL (Structured Query Language). Estes sistemas são tipicamente utilizados para aplicações que envolvem o armazenamento e processamento de grandes quantidades de dados não estruturados, tais como páginas web, imagens, arquivos de vídeo, mensagens de e-mail ou arquivos de log.

O NoSQL surgiu com o aumento de grandes dados porque as empresas precisavam de uma maneira de armazenar e processar grandes quantidades de dados não estruturados sem serem limitadas por sua infra-estrutura existente ou interfaces de programação de aplicações (APIs).
A principal diferença entre estes dois tipos de bancos de dados é que os bancos de dados bancários transacionais são projetados para lidar com dados estruturados em um formato tabular enquanto os bancos de dados NoSQL são projetados para lidar com dados não estruturados armazenados em uma variedade de formatos tais como JSON (JavaScript Object Notation), XML (Extensible Markup Language), etc.
Além disso, os bancos de dados NoSQL podem funcionar mais rapidamente do que os bancos de dados bancários transacionais; no entanto, não são tão confiáveis porque não possuem conformidade ACID (Atomicidade, Consistência, Isolamento e Durabilidade). De maneira simplificada, podemos dizer que este conjunto de propriedades garantem confiabilidade nas transações a fim de garantir a integridade do dado.
Já os bancos NoSQL seguem o padrão BASE (Basically Available, Soft-State e Eventually Consistent). Resumindo: Uma aplicação
funciona basicamente todo o tempo, não tem de ser consistente todo o tempo (Estado Leve) e o sistema torna-se consistente no momento devido (Eventualmente Consistente).
Para ajudar a entender melhor, segundo o Teorema do CAP, explicado pelo Dr. Eric Brewer, é impossível que o armazenamento de dados distribuído consiga fornecer simultaneamente mais de duas das três garantias seguintes:
- Consistência: cuja característica é depois da atualização de um dado, todos os usuários que tem acesso a esse dado, possam acessá-lo em tempo real;
- Disponibilidade: manter o sistema ativo durante o maior período de tempo;
- Tolerância ao Particionamento: é a capacidade do sistema continuar operando mesmo depois de uma falha
Quais exemplos de Bancos NoSQL usados no mercado?
Trago alguns exemplos e suas principais características:
Modelo Documento: neste modelo os dados são “documentos”, sendo um banco altamente flexível e especialmente eficiente para tratar dados não estruturados.
Exemplo de mercado: MongoDB
Modelo Chave Valor: formado por conjunto de chaves e valores como tabelas hash, sendo bem flexível e própria para armazenamento de big data.
Exemplo de mercado: REDIS e MemcacheD
Modelo Colunas: faz seu armazenamento em linhas particulares de tabela, exatamente oposto aos bancos relacionais.
Exemplo de mercado: Hbase e Cassandra
Modelo Grafos: seus dados são dispostos no formato de arcos conectados por arestas tendo destauqe pela performance nas pesquisas mais complexas.
Exemplo de mercado: Neo4j

Esses são os principais exemplos de bancos de dados NoSQL e seu uso pode se diferenciar de acordo com as necessidades de cada negócio. Portanto, o mais indicado é buscar o auxílio de um time capacitado em soluções armazenamento de banco de dados.
0 comentários