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)

Billboard image

Try REST API Generation for Snowflake

DevOps for Private APIs. Automate the building, securing, and documenting of internal/private REST APIs with built-in enterprise security on bare-metal, VMs, or containers.

  • Auto-generated live APIs mapped from Snowflake database schema
  • Interactive Swagger API documentation
  • Scripting engine to customize your API
  • Built-in role-based access control

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay