Bancos relacionais x Bancos não relacionais: quando usar cada um?

DesenvolvimentoNegóciosProdutoSoftwareTecnologia

Quando o assunto é bancos de dados, sejam eles relacionais e não relacionais, devemos ter em mente que ambos têm a mesma função, porém, cada um da sua forma. 

Não pense que um é melhor que o outro só pelo seu tipo. A verdade é que devemos analisar a situação e saber quando usar os bancos relacionais e os não relacionais. 

Para ajudar a gente a entender melhor sobre o assunto, hoje o João Pedro, Desenvolvedor aqui na nata.house, assume a autoria do nosso Blog. 

Continue a leitura e confira! 

Banco de Dados Relacional

A grande característica de um Banco de Dados Relacional é o fato dele possuir o que chamamos de chaves. 

Uma chave é um identificador único que pode ser atribuído a uma coluna de uma tabela do banco. 

Dois exemplos de chaves mais usadas são: 

1 – As “chaves primárias”: que são os identificadores únicos da própria tabela 

2 – As !chaves estrangeiras”: que são referências as chaves primárias de outras tabelas.

No exemplo acima vemos que a tabela Employees possui uma chave primária EmployeedId, enquanto a tabela Sales possui uma chave estrangeira, referenciando a chave primária da tabela Employees também chamada EmployeedId.

Estas chaves criam dependências para manter a integridade dos dados, como:

  • Uma chave estrangeira é obrigatória a estar referenciada a uma chave primária caso ela seja obrigatória.
  • Quando um registro é deletado, todos registros de outras tabelas que tenham uma referência a sua chave primária, devem ser deletadas também em caso de cascade.
  • Quando uma chave primária é alterada, todas as tabelas que possuem sua referência também precisam ser alteradas.

A forma de consultar informações de um Banco de Dados Relacional é através de uma linguagem de consulta estruturada, ****mais conhecida como SQL.

Banco de dados não relacional

Os Banco de Dados não Relacionais, também chamados de Banco de Dados NoSQL, não possuem chaves, tabelas e nem colunas. 

Ao invés disso, o Banco de Dados não Relacional usa um modelo de armazenamento otimizado para o tipo de dado que está sendo armazenado.

Existem quatro tipo de tipos não relacionais que são:

1 – Key value

Este tipo é o mais comum e simples, como o nome indica ele simplesmente possui uma coleção de pares chave-valor em um objeto.

2 – Document

Este tipo, utiliza uma string para denominar uma base de dados no formato JSON (que também pode ser encodada em outros formatos). Os documentos não precisam manter a estrutura idêntica, gerando um ganho em flexibilidade.

3 – Wide-column

Este tipo é semelhante ao banco de dados relacional. Ele armazena seus dados em colunas flexíveis que podem ser compartilhadas em múltiplos servidores e bancos de dados.

4 – Graph

Este tipo é o mais complexo dentro dos quatro citados. Ele é projetado para armazenar de forma eficiente as relações entre as entidades. 

Para fazer consultas em um banco de dados NoSQL do tipo graph, você pode usar um conceito chamado OGM, que pode ser implementado usando diversas linguagens de programação, como JavaScript, .NET, PHP e JAVA.

Comparações

Os dois bancos possuem diversas semelhanças e diferenças. Vamos fazer 5 comparações entre os dois tipos de bancos de dados abordados para podermos tirar conclusões de usos:

Escalabilidade

Existem duas formas de escalar sua aplicação, a primeira é horizontalmente e a segunda verticalmente. 

A principal característica de escalar horizontalmente é que a escala horizontal adiciona mais recursos de máquina à sua infraestrutura de máquina existente, como adicionar novas máquinas ao servidor do sistema. 

O dimensionamento vertical adiciona potência à infraestrutura de sua máquina existente, aumentando a potência como CPU, RAM e etc.

Os Bancos de Dados Relacionais, normalmente, são armazenados em um único servidor (com exceções como o CockroachDB), fazendo com que sua escalabilidade seja somente vertical.

Já os Banco de Dados não Relacionais são designados a serem distribuídos, gerando facilidade em escalar horizontalmente.

Estrutura de dados


Os Bancos de Dados Relacionais são os melhores para manipular dados estruturados porque são modelados em formato de tabela.

Os Banco de Dados não Relacionais são os melhores para manipular dados não estruturados, que possuem diferentes estruturas para a mesma informação.

Flexibilidade


Bancos de Dados Relacionais se adaptam mal a mudanças nas entidades, enquanto o Banco de Dados não Relacionais consegue manipular com facilidade mudanças em entidades, pois não precisa seguir uma estrutura pré-definida.

Consultas avançadas

Os Bancos de Dados Relacionais têm vantagens em consultas avançadas, graças às SQL queries, alguns Bancos de Dados não Relacionais também possuem capacidade de realizar consultas. 

Porém, em algumas situações, parte da tratativa dos dados deverá ser implementada no código da aplicação, ao invés do próprio banco.

Quantidade de dados

Bancos de Dados não Relacionais têm a capacidade de armazenar quantidades gigantescas de dados, que fariam um Banco de Dados Relacional parar de funcionar ou ficar super lento.

Performance

Pelo fato dos Bancos de Dados não Relacionais focarem em usar um conjunto muito pequeno de funcionalidades de banco de dados, eles processam dados mais rápidos em relação aos Bancos de Dados Relacionais .

Por que um banco não relacional?

Banco de Dados não Relacional se torna a melhor opção para armazenar dados não estruturados, não relacionados e de gigantesca escala.

O maior motivo de usar um Banco de Dados não Relacional é poder manipular dados não estruturados com flexibilidade e com maior garantia na performance.

Banco de Dados não Relacionais se tornam uma melhor opção para lidar com dados não estruturados como sistemas de logs, sistema de mensageria e é uma ótima opção para armazenar dados de jogos online.

Por que um banco relacional?

Banco de Dados Relacional,embora não seja a melhor opção para quantidades gigantes de dados, ainda sim não deixa de ser uma boa opção na maioria dos casos. Porém, isso pode gerar complexidade para a empresa que for manter a aplicação.

O maior motivo de usar um Banco de Dados relacional é poder manipular dados estruturados através da incrível linguagem SQL.

Banco de Dados Relacionais se tornam a melhor opção para lidar com dados estruturados como sistema que manipula documentos ou contratos, como por exemplo, sistema de folha de pagamentos ou sistema de passagens aéreas.

Bibliografia

https://www.keboola.com/blog/relational-vs-non-relational-database-when-to-use-one-instead-of-the-other

https://www.logianalytics.com/relational-vs-non-relational-databases

https://www.pluralsight.com/blog/software-development/relational-vs-non-relational-databases

https://www.imaginarycloud.com/blog/sql-vs-nosql

__

Aqui na nata.house estamos sempre de olho nas tendências do mercado e buscamos nos atualizar e conhecer novas possibilidades. 

Isso, associado a nossa expertise, qualidade e excelência, faz com que possamos fazer entregas que ajudam os negócios dos nossos clientes a ir muito além. 

Fale com um dos nossos especialistas! 

Receba conteúdos sobre inovação digital, novas tecnologias, design e desenvolvimento.

Entre em contato

Telefones

+55 31 98426-5166

+55 31 4042-1001

Endereço

R. Paraíba, 330, sala 1006

Belo Horizonte - MG - Brasil