1. Início
  2. Desenvolvimiento de software
  3. Banco de dados NoSQL, SQL e NewSQL: diferenças e vantagens

Banco de dados NoSQL, SQL e NewSQL: diferenças e vantagens

Banco de dados nosql

Oi! Eu sou o Goku! Estamos aqui mais uma vez para falar sobre um assunto bem comum hoje e que provavelmente você já se perguntou: Banco de dados NoSQL, SQL e NewSQL, qual devo usar?

Vamos tentar esclarecer alguns conceitos e, com isso, vocês poderão ter maior autonomia e certeza para a fazer escolha certa. Vamos lá!

Vale lembrar que eles são como as Jóias do infinito, todos tem seus pontos fortes e fracos, porém a situação, motivo e causa que lhes dirá qual a melhor opção para qual momento.

Afinal, o que é Banco de dados SQL?

SQL é a sigla para “Structured Query Language”, que significa, traduzindo para o português, “Linguagem de Consulta Estruturada”. Trata-se de uma linguagem de consulta a banco de dados relacionais.

Com o SQL você pode executar vários comandos para criar, alterar, gerenciar, consultar, etc no seu banco de dados.

Costumamos dizer que bancos SQL seguem uma modelagem relacional, pois estes se baseiam no fato de que todos seus dados sejam guardados em tabelas.

>>Leitura Recomendada:
Os principais serviços da arquitetura AWS!

O que é banco de dados NoSQL?

NoSQL (Not Only SQL) é o termo utilizado para banco de dados não relacionais de alto desempenho onde, geralmente, o SQL não é utilizado como linguagem de consulta.

O NoSQL foi criado para ter uma performance melhor e uma escalabilidade mais horizontal para suprir necessidades onde os bancos relacionais não são eficazes.

No geral, temos 5 tipos de bancos de dados NoSQL:

Documento

Os dados são armazenados como documentos. Os documentos podem ser descritos como dados no formato de chave-valor, como por exemplo, o padrão JSON.

Um exemplo de banco de dados neste formato é o MongoDB.

Colunas

Os dados são armazenados em linhas particulares de tabela no disco, podendo suportar várias linhas e colunas, além de permitir sub-colunas.

Um banco de dados dessa família, por exemplo, é o Cassandra.

Grafos

Os dados são armazenados na forma de grafos (vértices e arestas).

O Neo4j é um banco que utiliza grafos.

Chave-valor

Essa família de bancos NoSQL é a que aguenta a maior carga de dados, pois o conceito dela é que um determinado valor seja acessado através de uma chave identificadora única.

Um exemplo é o banco de dados Riak.

>>Leitura Recomendada:
DataWarehouse
: Conceitos Fundamentais e Arquiteturas

SQL vs NoSQL

imagem explicando bancos de dados sql

O conceito de modelo relacional (SQL) se baseia no fato de que todos os dados sejam guardados em tabelas.

Ao modelo não-relacional (NoSQL) se aplica o conceito de schema: uma chave de valor é que é utilizada para recuperar valores, conjunto de colunas ou documentos.

Quais são as diferenças?

imagem comparando SQL e NoSQL

O SQL enfrenta certa dificuldade em conciliar a demanda por escalabilidade. Por outro lado, quanto à escalabilidade do NoSQL, devemos levar em consideração a modelagem do sistema. Afinal, do que adianta termos um sistema super simples e querermos utilizar o NoSQL apenas pela escalabilidade? Todo o ganho de performance seria perdido quando rodássemos a aplicação.

Um ponto forte do SQL é a consistência das informações, enquanto o NoSQL garante o último valor atualizado, desde que nenhuma atualização seja realizada até o momento da consulta.

Em relação à segurança, ambos estão suscetíveis a ataques. Portanto, é essencial avaliar cuidadosamente as características de cada tipo de banco de dados para escolher a melhor opção conforme as necessidades específicas do sistema e da aplicação.

>>Leitura Recomendada:
[Guia] Qual a
melhor linguagem para ciência de dados?

NewSQL: o melhor dos dois mundos?

Os bancos de dados NewSQL buscam promover a mesma melhoria de desempenho e escalabilidade dos sistemas NoSQL, sem abrir mão dos benefícios dos bancos de dados tradicionais da linguagem SQL, nem das propriedades ACID. Mike Stonebreaker, fundador do VoltDB (um dos bancos de dados desse novo modelo), destacou a vantagem dos bancos de dados NewSQL por proporcionarem consultas em tempo real, além de oferecerem maior capacidade de processamento.

Segundo Mike, há um custo grande em não usar SQL, pois exige trabalho excessivo dos desenvolvedores para compensar sua ausência. Diferente dos SGBD tradicionais, que eram considerados soluções para qualquer tipo de aplicação, os NewSQL utilizam uma estratégia diferente, onde cada novo sistema desenvolvido visa atender a uma necessidade específica do mercado. Além disso, eles fazem isso de forma separada, terminando com o antigo conceito de ter um único sistema que sirva para qualquer tipo de aplicação, fazendo com que os bancos de dados sejam especialistas para um propósito.

Essa abordagem impede que um número absurdo de funções e comportamentos desnecessários para uma determinada aplicação seja gerado. Portanto, os bancos de dados NewSQL se destacam ao proporcionar eficiência e especialização, atendendo de maneira mais precisa às demandas específicas do mercado.

STONEBRAKER e CATTEL (2011) definem cinco características de um SGBD NewSQL:

  • Linguagem SQL como meio de interação entre o SGBD e a aplicação;
  • Suporte para transações ACID;
  • Controle de concorrência não bloqueante, para que as leituras e escritas não causem conflitos entre si;
  • Arquitetura que forneça um maior desempenho por nó de processamento;
  • Arquitetura escalável, com memória distribuída e com capacidade de funcionar em um aglomerado com um grande número de nós.

>>Leitura Recomendada:
Leia nosso artigo sobre os
melhores softwares para big data

Vantagens e desvantagens: Banco de dados NoSQL, SQL e NewSQL

Na tabela a seguir temos um comparativo das características dos bancos de dados relacionais (RDBMS), NoSQL, e NewSQL, com suas capacidades e pontos fortes.

Característica RDBMS NoSQL NewSQL
Cumprimento ACID (dados, integridade de transações) Sim Não Sim
OLAP / OLTP Sim Não Sim
A análise dos dados (agregados, transformar, etc.) Sim Não Sim
Rigidez do esquema (mapeamento rigoroso da modelo) Sim Não Talvez
Flexibilidade formato de dados Não Sim Talvez
A computação distribuída Sim Sim Sim
Escala para cima (vertical) / Dimensionar (horizontal) Sim Sim Sim
Desempenho com crescimento de dados Rápido Rápido Muito Rápido
Sobrecarga de desempenho Enorme Moderado Mínimo
Popularidade / Suporte comunidade Enorme Crescente Crescendo lentamente

A partir dessa tabela, podemos observar que o NewSQL é um aprimoramento do RDBMS, pois utiliza o melhor dos dois mundos. Ele manteve totalmente as características dos bancos de dados padrões, ao mesmo tempo em que implementa as inovações do NoSQL.

Os itens marcados com “Talvez” dependem do banco NewSQL que estamos utilizando. Como vimos, cada banco tem um propósito específico. Além disso, existem alguns bancos NoSQL especialistas com o poder do NewSQL, como é o caso do MariaDB, desenvolvido pelo criador do MySQL.

Os melhores bancos de dados

Vou listar aqui algum dos bancos de dados NoSQL e SQL que eu considero que valem a pena serem mencionados.

Banco de dados NoSQL

Aerospike

É um banco de dados NoSQL que se destaca pela velocidade de memória, sendo preferido por empresas de anúncios de alta escala e por aquelas que requerem tempos de resposta em milissegundos. Aerospike está expandindo para novas categorias, incluindo jogos, e-commerce e segurança, onde a baixa latência é crucial.

Apache Cassandra

Suas principais vantagens incluem a modelagem de dados NoSQL e escalabilidade linear flexível em hardware commodity devido ao uso de clusters.

Amazon DynamoDB

Desenvolvido pela Amazon para fortalecer seu próprio negócio de e-commerce em rápido crescimento, tornando seus serviços altamente escaláveis. Inspirou projetos como Cassandra, Riak e outros no espaço NoSQL.

MongoDB

É o banco de dados NoSQL mais popular, com mais de sete milhões de downloads e centenas de milhares de implementações. Sua popularidade decorre da facilidade de desenvolvimento e da flexibilidade no gerenciamento de dados, sendo amplamente utilizado em aplicações web e móveis, especialmente em redes sociais.

HBase

É o banco de dados que roda em cima do HDFS (Hadoop Distributed File System – sistema de arquivos distribuído projetado para rodar em hardware commodity), por isso dá aos usuários a capacidade única de trabalhar diretamente com os dados armazenados no Hadoop.

As características incluem grande escalabilidade.

Banco de dados NewSQL

MemSQL

Como o próprio nome sugere, ele opera em memória. É um sistema de banco de dados de alta escala devido à sua combinação de desempenho e compatibilidade com o SQL transacional e ACID na memória, adicionando uma interface relacional em uma camada de dados in-memory.

VoltDB

Projetado por vários pesquisadores de sistema de banco de dados bem conhecidos, esse banco oferece a velocidade e a alta escalabilidade dos bancos de dados NoSQL, mas com garantias ACID, e sua latência em milissegundo e integração com Hadoop.

SQLFire

Servidor de banco de dados NewSQL da VMware, desenvolvido para escalar em plataformas nas nuvens e tomar as vantagens de infraestrutura virtualizadas.

MariaDB

Foi desenvolvido pelo criador do MySQL e é totalmente compatível com o MySQL. Também pode interagir com os bancos de dados NoSQL, como Cassandra e LevelDB.

>>Leitura Recomendada:
Quando e como
implementar Big Data?

NoSQL, NewSQL e sua relação com Big Data

As aplicações Big Data originaram-se com a chegada da Web 2.0, evoluindo com grande velocidade, e tem como proposta dar ao usuário informações úteis de forma rápida ou permitindo que a empresa tome boas decisões no nível de negócios.

Com a utilização dessas aplicações por gigantes da internet, como Google, Facebook e Youtube, o conceito de BigData se tornou ainda mais popular, sendo considerada pela equipe da Gartner umas das tecnologias que terão maior importância na modernização da gestão da informação, com fortes impactos na infraestrutura da informação e governança das empresas.

Segundo a Gartner, o Big Data suporta soluções de processamento para uma variedade de dados novos e já existentes, trazendo benefícios reais para os negócios. Ainda assim, o processamento do volume e variedade de dados continuam sendo soluções técnicas, a menos que sejam parte das metas de negócio.

O aspecto essencial do Big Data é proporcionar benefícios através das suas análises, e não apenas processar dados tecnicamente.

Hoje, geramos dados de várias maneiras, criando uma enorme massa para análise. Isso causa problemas com bancos de dados relacionais, que não conseguem processar tanta informação com alta disponibilidade, otimização e escalabilidade.

Com isso surge a necessidade de sistemas de bancos de dados mais eficientes, motivando a utilização dos bancos de dados NoSQL e NewSQL.

A velocidade da disponibilização das informações é essencial para a tomada de decisões, já que uma informação tardia não tem utilidade, por isso os cinco “Vs” do Big Data (Volume, Velocidade, Variedade, Veracidade e Valor).

A necessidade de sistemas de bancos de dados mais eficientes para essas tarefas motivou a utilização do NoSQL e do NewSQL.

Conclusão

Então Geeks e Geekas, como visto, dependendo da situação devemos usar o golpe ideal.

Neste ponto, com essas incríveis instruções, a responsabilidade da escolha fica com vocês.

Espero que tenham gostado, marquem aquelas cinco estrelas e, com isso — sei que não é muita coisa —, voltarei a dar o ar de minha graça por aqui.

Agradeço desde já e lembrem-se “Nós somos o Groot!”. Abraço cambada, fui!

Crie um perfil na GeekHunter e receba propostas alinhadas ao seu perfil. São mais de 1000 vagas abertas, inclusive para profissionais que trabalham com banco de dados, como Vagas Transact-SQL, Vagas com foco em SQL e Vagas para Desenvolvedores MySQL.

Quer conhecer a plataforma líder em recrutamento tech?

A solução mais completa para recrutar os melhores talentos tech.

Precisa de ajuda para recrutar talentos?

Conheça o Serviço de Recrutamento da Geekhunter

Leituras Recomendadas

Quer receber conteúdos incríveis como esses?

Assine nossa newsletter para ficar por dentro de todas as novidades do universo de TI e carreiras tech.