Para atenderem requisitos de flexibilidade, disponibilidade e desempenho das aplicações que lidam com grande volume de dados, novos modelos de armazenamento foram criados e denominados NoSQL. Uma abreviação de Not only SQL (“Não somente SQL”), pois essa abordagem abdica da integridade ACID para oferecer maior desempenho e escalabilidade às soluções de Big Data.
Uma solução é considerada escalável se for capaz de manter desempenho desejável mesmo com adição de novos usuários, funcionalidades e dados. Nos modelos de dados relacionais, esse desempenho é conseguido com adição de recursos computacionais aos servidores de banco. Uma escalabilidade vertical.
No processamento de dados em Big Data usa-se computação paralela, onde um conjunto de máquinas independentes (cluster) dividem a carga de trabalho em tarefas menores. Executando de forma distribuída uma quantidade de dados que apenas uma delas seria incapaz de processar. Uma escalabilidade horizontal.

A escalabilidade horizontal oferece inúmeras vantagens à execução de aplicações de Big Data, tais como: permitir que o desempenho da aplicação seja aperfeiçoado de acordo com a demanda, redução de custos para fazer um upgrade da infraestrutura, e por fim, oferece a possibilidade de escalabilidade ilimitada, principalmente em ambientes de computação em nuvem. (MARQUESONE, 2016)
O NoSQL propõe tecnologias complementares, e não substitutivas, ao modelo relacional de acordo com características de cada negócio e arquitetura.
Existem diversas implementações de bancos não relacionais, apresentando vantagens e desvantagens ao consultar e recuperar registros, com performance e escalabilidade variáveis. Eles são classificados de acordo com a estrutura de armazenamento dos dados. Segundo Paniz (2016), os principais tipos são:
● Chave-valor: todos os registros fazem parte da mesma coleção de elementos e a coisa que todos eles têm em comum é uma chave única;
● Colunar: todos os registros fazem parte da mesma tabela, mas cada um deles pode ter colunas diferentes;
●Documento: cada registro fica armazenado em uma coleção específica, mas mesmo dentro de uma coleção, não existe um esquema fixo para os registros;
● Grafo: os registros são nós em um grafo interligados por relacionamentos.
Não existe modelo único adequado para todos os cenários de aplicações, visto que cada solução requer necessidades específicas. Um e-commerce que precisa recomendar produtos em tempo-real para seus clientes tem requisitos diferentes de uma aplicação que armazena dados genéticos para analisá-los.

Inclusive numa mesma aplicação, serviços distintos podem utilizar bancos de dados específicos, garantindo um bom funcionamento e performance. Conforme Marquesone (2016, p.62), a tendência é que empresas adotem soluções híbridas com diferentes modelos de bancos de dados, relacionais e NoSQL.
Referências
MARQUESONE, Rosangela. Big Data: Técnicas e Tecnologias para extração de valor dos dados. Editora Casa do Código, 220p, São Paulo, 2016. Disponível em: <http://www.casadocodigo.com.br/products/livro-big-data>.
PANIZ, David. NoSQL: como armazenar os dados de uma aplicação moderna. Editora Casa do Código, São Paulo, 2016. Disponível em: <https://www.casadocodigo.com.br/products/livro-nosql>.