Essa nova geração de Banco de Dados agrega algumas características como sendo não-relacional, distribuído, código aberto e escalado horizontalmente.
O NoSQL surgiu da necessidade de uma performance superior e de uma alta escalabilidade. 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.
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 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.
A intenção original foram os bancos de dados na escala de webs. Esse movimento começou em 2009 e cresceu rapidamente desde então. É o modelo de banco de dados utilizado por sites como twitter, facebook e google.
Mas não confuda, não quer substituir SQL.
Cinco necessidades do mercado que não são atendidas perfeitamente pelos produtos de banco de dados e fornecedores disponíveis no mercado, são eles:
-escalabilidade
-performance
-consistência eventual ou relaxada
-agilidade
-complexidade
Principais tipos disponíveis:
1)Orientado a documentos
modelo de dados é uma coleção de documentos que contém um par chave, valor.
2)Armazenamento por chave-valor
Modelo de dados é uma coleção global de pares de chave-valor. Gerencia bem o tamanho, processa uma quantidade constante de pequenas leituras e escritas
3)Clones de big table
Modelo de dados é uma família de colunas. Modelo tabular onde cada linha pode ter suas proprias colunas. Gerencia bem o tamanho, processa uma grande quantidade de carga via fluxos. Alta disponibilidade. Usada pelo google
4) Orientado a Grafos
Modelo de dados nós e relacionamentos, ambos manipulam par de chave-valor. é rapido.