NoSQL

Introdução

Principais diferenças gerais

Estas diferenças devem ser levadas em consideração na escolha da tecnologia a ser utilizada.

SQL NoSQL
Escalabilidade Vertical Escalabilidade Horizontal
  • Aumento da capacidade para único recurso
  • Processador, Memória e Disco Rígido
  • Há opções horizontais, mas são réplicas apenas para leitura.
  • Nativamente já são horizontais
  • Particionamento dados usando sharding entre os nós (mais conhecido)
  • Maior desempenho, aperfeiçoamento de acordo com a demanda
  • Escalabilidade infinita conforme o ambiente (principalmente cloud)
  • Schemas Schemas
  • Estrutura rígida e previamente montada: Modelagem de dados com diversas definições e gerações de scripts para criação das estruturas.
  • Maior organização e consistência dos dados
  • Linguagem de consulta padronizada
  • Ausência completa ou quase de regras de schemas
  • Menos garantia de consistência
  • Ausência de linguagens de consulta
  • Performance Performance
  • Dependem diretamente do sistema de disco
  • Dependem do tamanho do cluster e latência da rede
  • Com Transações Sem Transações (Exceto MongoDB)
  • Atomicidade: A transação é executada por completo ou não. Caso haja algum erro é feito um rollback da transação
  • Consistência: Quando uma transação for concluída a base de dados vai estar em conformidade com os schemas pré-definidos
  • Isolamento: Uma transação nunca vai interferir em outra transação
  • Durabilidade: Uma vez que uma transação for concluída, os seus dados jamais serão permitidos
  • Abrem mão das transações em prol da alta disponibilidade e desempenho
  • Basically Available: Prioridade na disponibilização de dados
  • Soft-State: Não precisa ser consistente o tempo todo
  • Eventually Consistent: Vão ser consistentes em um momento indeterminado
  • Características e Vantagens