Vantagens


Ao se fazer uma analogia, define-se bancos de dados SQL como transmissão automática e bancos de dados NoSQL como transmissão manual. Desta forma, NoSQL permite mais desempenho do sistema , eliminando uma série de verificações de integridade feitas por bancos de dados relacionais da camada do banco de dados.


Quando comparado com bancos de dados relacionais, bancos de dados NoSQL são mais “escaláveis” e proporcionam um desempenho superior. Seu modelo de dados aborda várias questões que o modelo relacional não é projetado para lidar, como é o caso de grandes volumes de dados estruturados, semiestruturados e não estruturados; programação orientada a objetos que é fácil de usar e flexível e arquitetura scale-out, que é eficiente e de baixo-custo.


Scaling Elastic: A nova geração de bancos de dados NoSQL são projetados para expandir de forma transparente e horizontalmente para tirar proveito dos novos nós. Para NoSQL, os servidores podem ser adicionados ou removidos a partir da camada de dados sem tempo de inatividade do aplicativo.


Capacidade de manipulação de Bigger Data: Capacidade dos banco de dados relacioais tem vindo a crescer devido ao aumento no volume de dados, mas as limitações de volumes de dados que pode ser controlado por um único banco de dado relacional são intoleráveis para algumas empresas.


Manutenção de servidores NoSQL é mais barata: Os bancos de dados NoSQL requerem menos gestão. Características como reparo automático, fácil distribuição de dados, e modelos de dados mais simples fazem a administração e a necessidade de tuning menos frequente.


Nenhum modelo de esquema ou dados fixos: Os dados podem ser inseridos num banco de dados NoSQL sem definir previamente um esquema de banco rígido. Assim, o modelo de formato ou de dados que está sendo inserido pode ser alterado a qualquer momento, sem interrupção do aplicativo. Isso proporciona imensa aplicação e flexibilidade de negócios, uma vez que no SQL normal uma mudança, mesmo que seja pequena, é muito trabalhosa.

Desvantagens


Ao se fazer uma analogia, define-se bancos de dados SQL como transmissão automática e bancos de dados NoSQL como transmissão manual. Desta forma, depois de mudar para NoSQL , você se torna responsável por uma grande quantidade de trabalho que o sistema se encarrega de automaticamente em um sistema de banco de dados relacional .


NoSQL não têm interfaces padrão para executar consultas complexas, e as próprias consultas em NoSQL não são tão poderosos como linguagem de consulta SQL. Alternativas e soluções ainda estão em estágios iniciais e pré -produção e muitos recursos importantes ainda estão para ser implementados no NoSQL.


O suporte do sistema NoSQL é fornecido por pequenas empresas start -up , sem o alcance global , recursos ou credibilidade da Oracle, Microsoft ou IBM , nomes clássicos associados ao SQL.


Em NoSQL, mesmo uma consulta simples exige conhecimento significativo de programação. Ainda não tem uma padronização e é considerado não intuitivo para programar.


Ferramentas de BI (Business Intelligence) comumente utilizadas não fornecem conectividade para NoSQL . Elas são as responsáveis pela interface que o usuário final terá com as informações armazenadas na estrutura de BI, que normalmente estará armazenada no Data Warehouse. Ou seja, ela é a vitrine que o analista de negócios ou gestor terá com o BI, por isso a grande importância da ferramenta dentro da solução como um todo.

Exemplos


A seguir são citados alguns bancos NoSQL e suas devidas características.


Redis ----> Adota o modelo chave-valor, utiliza a memória para alocação de dados e é ideal para utilização de Cache


MongoDB ----> Implementa o modelo baseado em documentos, tem foco no tratamento de grandes volumes de dados e é ideal para grande parte das aplicações web.


Neo4j ----> É uma das ferramentas NoSQL mais maduras, tem o modelo baseado em grafos e seus principais casos de uso estão relacionados a motores de recomendação, análise de rotas geográficas e redes sociais.


Cassandra ----> É uma implementação open source do modelo de dados do BigTable com a arquitetura distribuída do Dynamo.


CouchDB ----> Usa JSON para documentos, JavaScript para MapReduce e regula HTTP por um API


GemFire ----> Plataforma que permite scalabilityde forma dinâmica e alta performance.


Mnesia ----> Sistema de gerenciamento de banco de dados distribuído que apresenta propriedades soft em tempo real.

Conclusão


SQL e NoSQL têm sido grandes invenções ao longo do tempo na área de gestão de dados e foram usados para manter o armazenamento e recuperação de dados otimizada. Ainda é difícil criticar um e ir completamente com a outra opção. Ambas as tecnologias são os melhores no que fazem e um desenvolvedor deve estudar o problema antes para depois utilizá-los de maneira adequada. Dependendo das situações e necessidades de negócios. Apesar dos bancos de dados NoSQL estarem se tornando parte importante da paisagem de banco de dados , as empresas ainda devem proceder com cautela e estar ciente sobre as limitações associadas a ele.

Referência


[1] O que é NoSQL¿ Disponível em <http://www.devmedia.com.br/o-que-e-nosql-java-magazine-87/19015>. Acesso em: 15 fev. 2015


[2] NoSQL vs SQL – Which is a Better Option? Disponível em <https://blog.udemy.com/nosql-vs-sql-2/>. Acesso em: 15 fev. 2015


[3] Uderstanding NoSQL. Disponível em < https://spring.io/understanding/NoSQL>. Acesso em: 15 fev. 2015


[4] NoSQL databases explained. Disponível em <http://www.mongodb.com/nosql-explained>. Acesso em: 15 fev. 2015

Data WareHouse

ETL