DEV Community

Carolina Cunha
Carolina Cunha

Posted on

NoSQL x SQL

Bancos de dados SQL (relacionais)

  • Dados são armazenados em tabelas.
  • Como é necessário que os dados sejam armazenados em tabelas, eles precisam ser estruturados (ter formatos e tipos fixo).
  • Cada registro da tabela possui um identificador único para acesso ao dado;
  • Principais vantagens:
    • Garante o padrão ACID nas transações (Atomicidade, Consistência, Isolamento e Durabilidade);
    • Não permite dados duplicados;
    • Normalização (os dados estarão em uma forma onde as anomalias serão reduzidas ou inexistentes);
    • "Fácil" para recuperar os dados.
  • Principais desvantagens:
    • Não é escalável;
    • O esquema de dados é rígido e mudanças nesses esquema são custosas.

Bancos de dados NoSQL

  • Os dados podem ser utilizados de diversas formas, com esquemas não rígidos.
  • Tipos de dados que podem ser armazenados em bancos NoSQL:
    • Documentos: formato JSON;
    • Chave-valor;
    • Grafos;
    • Wide-column: tabelas onde as linhas e colunas não são iguais. Como se fosse um banco chave-valor multidimensional.
    • Tabela fornecida pelo site do MongoDB com cada as propriedades de cada tipo de banco de dados: Tabela com comparativo de estruturas de dados NoSQL

Quando usar um banco de dados NoSQL

  • Como eles tem vários tipos, o uso em cada situação precisa ser estudada qual é a necessidade;
  • Para aplicações onde o esquema do dado pode variar bancos NoSQL são boas opções;
  • Outro bom uso é para aplicações que podem precisar ser escaladas de forma rápida;
  • Aplicações de big data também podem se beneficiar desse tipo de banco;
  • Também aplicações que precisem apresentar alta performance no gerenciamento dos dados.

Top comments (0)