NoSQL
NoSQL são diferentes sistemas de armazenamento que vieram para suprir necessidades em demandas onde os bancos de dados tradicionais (relacionais) são ineficazes. Muitas dessas bases apresentam características muito interessantes como alto desempenho, escalabilidade, replicação, suporte à dados estruturados e sub colunas.
Os atuais bancos de dados relacionais são muito restritos a isso, sendo necessária a distribuição vertical de servidores, ou seja, quanto mais dados, mais memória e mais disco um servidor precisa. O NoSQL tem uma grande facilidade na distribuição horizontal, ou seja, mais dados, mais servidores, não necessariamente de alta performance. Um grande utilizador desse conceito é o Google, que usa computadores de pequeno e médio porte para a distribuição dos dados; essa forma de utilização é muito mais eficiente e econômica. Além disso, os bancos de dados NoSQL são muito tolerantes a erros.
No caso dos bancos NoSQL, toda a informação necessária estará agrupada no mesmo registro, ou seja, em vez de você ter o relacionamento entre várias tabelas para formar uma informação, ela estará em sua totalidade no mesmo registro.
Mas qual a diferença entre bancos de dados relacionais e NoSQL?
Banco de dados Relacionais
O que é: baseia-se em que todos os dados estão guardados em tabelas, pelo conceito de entidade e relacionamento. Os dados são separados de forma única, tentando diminuir ao máximo a redundância, pois a informação é criada pelo conjunto dos dados, onde são as relações entre as tabelas que fazem esse serviço.
Características: tabelas, schema definido, hierarquia, redundância mínima, entidade e relacionamento, formas normais, transações ACID (Atomicidade, Consistência, Isolamento, Durabilidade).
Necessidades: sistemas locais, financeiros, corporativos; segurança da informação; consistência dos dados.
Cases: SAP, OpenERP, Previdência Social, Caixa, Itaú, Salesforce, Vale.
Banco de Dados NoSQL
O que é: uma solução alternativa para os bancos de dados relacionais, possuem uma alta escalabilidade e desempenho
Características: registros, schema-free, tolerância à falha, escalabilidade, clusterização, mapreduce, sharding.
Necessidades: sistemas em nuvem, análises sociais, alta escalabilidade, performance na consulta/escrita, replicação.
Cases:Twitter,Facebook, Digg, Amazon, LinkedlN, Google, Yahoo, The New York Times, Bit.ly.
Alguns exemplos de quando usar NoSQL
- Logging/ArquivamentoInsight em computação social.
- Integração de feed de dados externos.
- Sistemas de processamento de pedidos Front-end.
- Serviço de gerenciamento de conteúdo empresarial.
- Estatísticas/análises em tempo real


