Ir para o conteúdo
Curiosidades

SQL ou NoSQL? Qual escolher? Conheça algumas características!

imagem com a sigla SQL

SQL (Linguagem de consulta estruturada) é uma linguagem para trabalhar com bancos de dados relacionais. Os Bancos de Dados e SGBDs relacionais são usados pela maioria das pessoas que trabalham com bancos de dados. 

Com o passar do tempo, as quantidades de armazenamento e poder de processamento e os tipos de análise mudaram, no entanto, vimos diferentes tecnologias de banco de dados se tornarem mais adequadas para novos tipos de casos de uso. Esses bancos de dados são comumente chamados de NoSQL.

O NoSQL (“não apenas SQL”) é um banco de dados não relacional, o que significa que permite estruturas diferentes de um banco de dados SQL e mais flexibilidade para usar um formato que melhor se ajuste aos dados.

banner com a mensagem: invista em você com a pós-graduação EAD. Confira as ofertas e matricule-se.

SQL

Os bancos de dados SQL são usados no tratamento de dados estruturados ou que possuem relacionamentos entre suas variáveis e entidades.

Algumas características de bancos de dados relacionais:

Dados Estruturados 

Os dados são organizados de maneira relacional e tabular. Como todo o esquema é predefinido, a organização dos dados deve acontecer antes de iniciar o banco de dados.

Escalabilidade

Bancos de dados relacionais, em geral, podem ser dimensionados verticalmente, ou seja, quando for necessário aumentar a carga, é necessário aumentar os recursos para comportar a nova carga.

ACID 

Devem apresentar 4 propriedades conhecidas como ACID (Atomicity, Consistency, Isolation, Durability):

Atomicidade: Todas as transações devem ter sucesso ou falhar completamente. Em nenhum cenário pode haver tarefas parcialmente cumpridas.

Consistência: O banco de dados deve seguir regras que validem e evitem corrupção em cada etapa.

Isolamento: As transações simultâneas não podem afetar umas às outras.

Durabilidade: Mesmo se o sistema falhar, uma transação completa não pode ser revertida.

NoSQL

Os sistemas NoSQL trabalham com diferentes estruturas de dados. Eles permitem esquemas dinâmicos de dados não estruturados, tornando menos necessário o pré-planejamento dos dados. 

Algumas características:

Escalabilidade

A escalabilidade é horizontal, isso significa que, quando for necessário aumentar a carga, é necessário adicionar servidores ou nós adicionais.

Estrutura

Bancos de dados NoSQL não possuem uma estrutura definida.

Alguns tipos de estruturas mais comuns:

Documentos: usam documentos para armazenar dados como JSON (JavaScript Object Notation), XML, YAML e BSON. Um exemplo é o MongoDB.

Orientado a colunas: os dados são armazenados em células agrupadas em um número praticamente ilimitado de colunas em vez de linhas, podendo suportar, inclusive, subcolunas. Um exemplo é o Cassandra.

Chave-valores: usam uma matriz associativa, como dicionário ou mapa, como modelo de dados. Esse modelo representa os dados usando uma coleção de pares chave-valores. Um exemplo é o Redis.

Grafos: os dados são organizados na forma de grafos, usando vértices e arestas. Um exemplo é o Neo4j.

CAP

A teorema CAP (Consistency, Availability, Partition tolerance) diz que os sistemas de dados distribuídos podem garantir duas das três características abaixo:

Consistência: Cada solicitação recebe uma resposta mais recente ou um erro.

Disponibilidade: Cada solicitação tem uma resposta sem erro.

Partição tolerante a falhas: quaisquer atrasos ou perdas entre nós não fazem com que o sistema pare de funcionar.

SQL ou NoSQL

SQL

SQL é uma boa escolha ao trabalhar com dados relacionados. Um banco de dados relacional é mais robusto para preservar consistência e atomicidade em transações. Também é uma melhor escolha para o caso de os dados tiverem uma definição mais clara do esquema do banco de dados.

NoSQL

Quando os dados já não se encaixam em um modelo relacional, quando há uma grande quantidade de conjuntos de dados, ou com mudanças constantes, quando a disponibilidade de grande conjunto de dados é o requisito mais importante. Esses são alguns exemplos de quando utilizar NoSQL. O NoSQL é mais flexível e oferece alto desempenho.

Qual escolher?

A escolha de qual solução utilizar depende de vários fatores, como de cada conjunto de dados que se trabalha. Com a evolução dos sistemas e o aumento do volume de dados, é esperado que uma combinação de soluções sejam utilizadas, por exemplo, podemos deixar os dados que são estruturados salvos em um banco de dados SQL e as grandes consultas salvas no NoSQL.

Tanto SQL como NoSQL têm suas vantagens e desvantagens e a escolha de como utilizá-las vai impactar na resposta do sistema, então o ideal é buscar o melhor de cada ferramenta. Agora, aproveite para conhecer as opções de pós-graduação EAD em Tecnologia e ser um especialista na área desejada!

Autor: Jefferson Salomão Rodrigues

Engenheiro de Sistemas formado pela Universidade Federal de Minas Gerais (UFMG) e estudante de MBA em Machine Learning in Production na Universidade Federal de São Carlos (UFScar). Possui experiência nas áreas de programação em TI e Engenharia. Hoje, atua como desenvolvedor back-end Java na Platos e se prepara para ser DevOps.

Conheça nossas faculdades