Você está na página 1de 9

O que é SQL?

SQL é uma linguagem padrão para trabalhar com bancos de dados


relacionais. Ela é uma linguagem declarativa e que não necessita de
profundos conhecimentos de programação para que alguém possa começar a
escrever queries, as consultas e pedidps, que trazem resultados de acordo
com o que você está buscando. SQL significa Standard Query Language,
literalmente a linguagem padrão para realizar queries.
A linguagem SQL é utilizada de maneira relativamente parecida entre os
principais bancos de dados relacionais do mercado: Oracle, MySQL, MariaDB,
PostgreSQL, Microsoft SQL Server, entre muitos outros. Cada um tem suas
características, sendo o MySQL e o PostgreSQL extremamente populares por
possuírem versões gratuitas e de código aberto.
É também uma linguagem que muitos profissionais acabam precisando
aprender: seja quem usa Excel de forma pesada e acaba migrando as
informações para um banco de dados, seja um cientista de dados que usa
Python para agregar os dados das diferentes fontes de informações.

História
O termo NoSQL foi primeiramente utilizado em 1998 como o nome de um banco de dados
relacional de código aberto que não possuía uma interface SQL. Seu autor, Carlo Strozzi,
alega que o movimento NoSQL "é completamente distinto do modelo relacional e portanto
deveria ser mais apropriadamente chamado "NoREL" ou algo que produzisse o mesmo
efeito".[6]
O termo NoSQL foi re-introduzido no início de 2009 por um funcionário do Rackspace, Eric
Evans, quando Johan Oskarsson da Last.fm queria organizar um evento para discutir
bancos de dados open source distribuídos.[7] O nome — uma tentativa de descrever o
surgimento de um número crescente de banco de dados não relacionais, que não tinham a
preocupação de fornecer garantias ACID — faz referência ao esquema de atribuição de
nomes dos bancos de dados relacionais mais populares do mercado: MySQL, MS
SQL, PostgreSQL etc.
Outros termos equivalentes para esta categoria de bancos é NF², N1NF (non first normal
form), nested relational, dimensional, multivalue, free-form, schemaless e document
database.
Os bancos de dados que estão sob estes rótulos não podem exigir esquemas de tabela
fixa e, geralmente, não suportam instruções e operações de junção SQL.
Tendências em arquiteturas de computadores, como a computação na nuvem e a
necessidade crescente de prover serviços escaláveis, estão pressionando bancos de
dados numa direção onde eles necessitam oferecer escalabilidade horizontal. Bancos de
dados NoSQL armazenam os dados com técnicas que visam atender a esse requisito. Há
alguns exemplos proeminentes de softwares de código fechado que atendem estes
requisitos, sendo alguns deles o BigTable, do Google, IBM Cloudant e o DynamoDB,
da Amazon. E alguns exemplos de software open-source como Apache
Cassandra (originalmente desenvolvido para o Facebook), Apache HBase, LinkedIn's e
vários outros.
É importante entender que o intuito não é eliminar bancos de dados relacionais, mas
oferecer uma alternativa. Pois, durante muito tempo o modelo relacional foi usado como
"bala de prata" para todos os problemas de persistência

O que são bancos de dados NoSQL?


Como dito anteriormente, os bancos de dados NoSQL são bancos de dados que não
são relacionais.

A sigla “NoSQL” é frisada para destacar a situação de que podem processar grandes
dados não estruturados e realizar modificações constantes de variadas formas de um
banco de dados relacional. 

As tecnologias baseadas em NoSQL surgiram desde os anos 60, mas já passaram por
diversas transformações até os dias atuais.

Os bancos de dados NoSQL evoluíram para ajudar os desenvolvedores a criar


rapidamente sistemas de banco de dados para armazenar novas informações e facilitar
a pesquisa, integração e análise.

Para que serve o NoSQL?


NoSQL (Not Only SQL) é um termo usado para bancos de dados não relacionais de alto
desempenho, onde o SQL geralmente não é usado como linguagem de consulta. 

O NoSQL foi criado para ter melhor desempenho e maior escalabilidade horizontal
para a ineficácia dos bancos de dados relacionais.

Como funciona um banco de dados NoSQL (não relacional)?


O gerenciamento de dados dos bancos NoSQL se baseia em diferentes modelos para
tal atividade.

Esse modelo de banco de dados é automatizado e otimizado para servir aplicativos que
obrigam a utilização de modelos de Big Data.

Em bancos de dados relacionais, os registros de livros geralmente são mascarados (ou


“normalizados”) e armazenados em tabelas separadas, e os relacionamentos são
definidos por restrições de chave primária e chave estrangeira.

O modelo relacional foi projetado para permitir que os bancos de dados imponham a
integridade referencial entre as tabelas no banco de dados, normalizando para reduzir
a redundância e geralmente sejam otimizados para armazenamento.

Em bancos de dados NoSQL, os registros de livros geralmente são armazenados como


documentos JSON.
Por que você deve usar um banco de dados NoSQL?
Os bancos de dados NoSQL são ideais para muitos aplicativos modernos, como
dispositivos móveis, web e jogos, que exigem um banco de dados flexível, escalável, de
alto desempenho e poderoso para fornecer uma ótima experiência ao usuário.

 Flexibilidade: Os bancos de dados NoSQL geralmente fornecem esquemas


flexíveis para um desenvolvimento iterativo mais rápido;

 Um modelo de dados flexível torna os bancos de dados NoSQL ideais para


dados semiestruturados e não estruturados;

 Escalabilidade: os bancos de dados NoSQL geralmente são projetados para


escalar usando clusters de hardware distribuídos, em vez de adicionar
servidores caros e poderosos;

 Alguns provedores lidam com essas operações nos bastidores como serviços
totalmente gerenciados;

 Alto desempenho dos bancos de dados NoSQL: são otimizados para modelos e
padrões de acesso de dados de modelos, resultando em desempenho superior
ao desempenho de funções semelhantes com bancos de dados relacionais;

 Poderoso: os bancos de dados NoSQL podem fornecer tipos e dados de dados


criados especificamente para seus respectivos modelos de dados.

NoSQL: tipos de bancos de dados

Modelo Colunas
No modelo de coluna, o banco de dados é armazenado em uma linha específica da
tabela. Esse padrão é exatamente o oposto dos bancos de dados relacionais, que
armazenam conjuntos de dados em uma linha.

Modelo Grafos
Armazenar dados em forma de gráfico. Ou seja, os dados aqui são organizados na
forma de arcos conectados por arestas. Também podemos defini-lo como um conjunto
de linhas conectadas por vértices.

Diante de buscas complexas, os modelos gráficos são vantajosos, por exemplo, espera-
se que a latência e o desempenho sejam inferiores aos modelos de valor-chave.

Modelo Chave-Valor
Em modelos de chave-valor, o banco será formado por várias chaves, que são
acompanhadas de valores.
A estrutura desse modelo chave-valor é bastante flexível, adequada e padronizada
para armazenamento de Big Data. Notavelmente, este formato é altamente utilizável. 

Modelo Documento
Neste modelo, os dados são em formatos de documentos. Este modelo é muito flexível
e não necessita de colunas pré-montadas.

Esse modelo é particularmente eficaz para trabalhar com dados não estruturados, pois
uma única coleção pode conter muitos grupos de documentos em diferentes formatos.

Qual o melhor banco NoSQL?


Os bancos de dados NoSQL referem-se a muitas tecnologias diferentes que não são de
natureza relacional.

Nas próximas linhas, apresentamos alguns dos modelos mais conhecidos.

MongoDB
O modelo MongoDB é o líder de mercado em bancos de dados NoSQL.

Ele também tem alguns recursos de produção sofisticados e modernos. São eles:
replicação, indexação, balanceamento de carga.

O mais importante, e talvez a razão pela qual é líder de mercado, é que o MongoDB é
de código aberto, o que contribuiu muito para a evolução de sua tecnologia.

Amazon DynamoDB
Mais um ótimo produto da AWS (Amazon Web Services). Os bancos de dados do
DynamoDB são totalmente baseados em nuvem para um desempenho confiável em
escala.

Vale ressaltar que a Amazon confirma que a latência é consistente e mantida abaixo de
10ms. 

Além disso, possui valiosos recursos de segurança baseados em cache de memória,


backup e recuperação de dados.

O DynamoDB também pode trabalhar com vários mestres.

O banco de dados é amplamente usado, assim como o MongoDB, para criar


armazenamento de dados, jogos, tecnologia de anúncios e aplicativos da Web sem
servidor.
Cassandra
Muita gente não sabe, mas o Cassandra foi desenvolvido no Facebook. Hoje, o
Cassandra, assim como o HBase, é mantido pela Apache Foundation.

Isso até faz sentido dada a quantidade de dados que as redes sociais geram a cada
milissegundo.

Mas, afinal, por que o Cassandra é tão popular no processamento de big data?

Na verdade, o Cassandra é muito otimizado para clusters, especialmente porque


funciona sem um mestre. O fato de ter um mecanismo distribuído também otimiza
bastante a operação do cluster.

Outra vantagem do Cassandra é o conceito de orientação de coluna, que faz com que
certas consultas tenham latência muito menor.

Redis
Redis é um modelo de armazenamento de dados de código aberto e lançado em 2009.
Os dados são armazenados na memória Redis na forma de valor-chave, que é rápido e
flexível. 

Este é o banco de dados NoSQL do tipo chave-valor mais conhecido.

Como os dois primeiros, o Redis tem latência muito baixa. Redis também é fácil de usar
e muito rápido.

HBase
O HBase é um banco de dados distribuído orientado a colunas de código aberto.
Atualmente, Spotify e Facebook são algumas das grandes empresas que utilizam esse
modelo de armazenamento.

O HBase é formatado a partir do BigTable do Google e também escrito em Java. É por


isso que se integra facilmente com o MapReduce.

Para quem não sabe, MapReduce é uma ferramenta do framework Apache Hadoop,
uma das principais plataformas para processamento de big data.

Como parte do projeto Apache, diretamente relacionado à ciência de dados, o HBase é


outro modelo de armazenamento muito conhecido.

Um de seus pontos fortes é que ele fornece pesquisas de dados rápidas e responsivas.
Converta terabytes em milissegundos.
NoSQL vs SQL
Por décadas, o modelo de dados dominante para o desenvolvimento de aplicativos
tem sido aquele usado por bancos de dados relacionais como Oracle, DB2, SQL Server,
MySQL e PostgreSQL. 

Em meados dos anos 2000 que outros modelos de dados começaram a ser adotados e
tiveram usos mais importantes. 

Para distinguir e categorizar essas novas categorias de bancos de dados e modelos de


dados, foi criado o termo “NoSQL”. 

O termo “NoSQL” é frequentemente usado de forma intercambiável com “não


relacional”.

Embora existam muitos tipos de bancos de dados NoSQL com diferentes recursos, nas
próximas linhas mostramos algumas das diferenças entre os bancos de dados SQL e
NoSQL.

Banco de dados relacionais 


Os bancos de dados relacionais são projetados para aplicativos de processamento de
transações online (OLTP) transacionais e fortemente consistentes e são adequados
para processamento analítico online (OLAP).

O modelo relacional normaliza os dados em tabelas que consistem em linhas e


colunas. Um esquema define estritamente tabelas, colunas, índices, relacionamentos
entre tabelas e outros elementos do banco de dados. 

O banco de dados impõe integridade referencial em relacionamentos entre tabelas.

Os bancos de dados relacionais oferecem propriedades de atomicidade, consistência,


isolamento e durabilidade (ACID):

 A atomicidade requer que a transação seja executada completamente ou não


seja executada;
 A consistência requer que, quando uma transação for confirmada, os dados
devem estar em conformidade com o esquema do banco de dados;
 O isolamento requer que transações simultâneas sejam executadas
separadamente umas das outras;
 A durabilidade requer a capacidade de recuperação de uma falha do sistema ou
falha de energia inesperada até o último estado conhecido.

O desempenho geralmente depende do subsistema do disco. A otimização de


consultas, índices e estruturas de tabelas é necessária para obter o máximo
desempenho.
Os bancos de dados relacionais geralmente aumentam quando recursos de
computação de hardware são adicionados ou quando réplicas são adicionadas para
cargas de trabalho somente leitura.

As solicitações para armazenar e recuperar dados são comunicadas por meio de


consultas que suportam a Linguagem de Consulta Estruturada (SQL). 

Essas consultas são analisadas e executadas por bancos de dados relacionais.

Bancos de dados não relacionados

Os bancos de dados NoSQL são projetados para uma variedade de padrões de acesso a
dados, incluindo aplicativos de baixa latência. Os bancos de dados de pesquisa NoSQL
são projetados para analisar dados semiestruturados.

Os bancos de dados NoSQL fornecem vários modelos de dados, como valor-chave,


documento e gráfico, otimizados para desempenho e escala.

Os bancos de dados NoSQL normalmente trocam algumas das propriedades ACID dos
bancos de dados relacionais por um modelo de dados escalável horizontalmente mais
flexível. 

Isso torna os bancos de dados NoSQL uma excelente opção para casos de uso de baixa
latência e alta taxa de transferência que precisam ser dimensionados além dos limites
de uma única instância.

O desempenho geralmente é uma função do tamanho do cluster do hardware


subjacente, da latência da rede e dos aplicativos de chamada.

Os bancos de dados NoSQL geralmente são particionáveis porque os padrões de


acesso podem ser dimensionados para aumentar a taxa de transferência usando uma
arquitetura distribuída, fornecendo desempenho consistente em escala quase
ilimitada.

As APIs baseadas em objetos permitem que os desenvolvedores de aplicativos


armazenem e restaurem facilmente estruturas de dados. 

As chaves de partição permitem que os aplicativos pesquisem pares de valores-chave,


conjuntos de colunas ou documentos semiestruturados contendo objetos e
propriedades de aplicativos serializados.
Conclusão
Portanto, os bancos de dados NoSQL são muito úteis ao lidar com grandes quantidades
de dados. 

Se estamos falando de uma pequena empresa que não se aprofunda na análise e


processamento de dados, um banco de dados relacional funciona muito bem.

No entanto, os bancos de dados NoSQL não devem substituir os bancos de dados


relacionais. Portanto, a escolha depende de vários fatores, como o tipo de dados que
você está analisando, a quantidade de dados que você tem e a rapidez com que
precisa deles. 

Por exemplo, para aplicativos como análise de comportamento do usuário, bancos de


dados relacionais são os melhores.

Por outro lado, para aplicativos que exigem muita mineração de texto ou
processamento de imagens para mídias sociais, dados textuais ou geográficos, os
dados do tipo NoSQL do banco de dados funcionam melhor.

Assim, podemos dizer que tanto o SQL quanto o NoSQL têm seus prós e contras, e
definir o melhor modelo (que pode ser SQL, NoSQL ou ambos) depende da aplicação,
de como foi desenvolvido e da estrutura prevista pelo ambiente.

Revelo: sua plataforma de recrutamento tech


Gostou de saber mais sobre Banco de dados NoSQL? Agora basta escolher
a plataforma de recrutamento ideal para contratar os profissionais de tecnologia ideais
para sua empresa.

A Revelo utiliza tecnologias exclusivas para pré-selecionar seus candidatos, que


incluem testes técnicos e análises criteriosas que comprovam as habilidades dos
profissionais.

Para isso, utiliza recursos de inteligência artificial e machine learning, que usam o
poder dos dados para selecionar os talentos mais capacitados para sua empresa.

Além disso, com a opção Revelo Remoto, você pode realizar o processo seletivo de
forma totalmente digital, desde a entrevista até a assinatura do contrato.

O Amazon DynamoDB é um serviço de banco de dados noSQL totalmente gerenciado


que suporta estruturas de dados de valor e documentos[2] e é oferecido
por Amazon.com como parte do portfólio da Amazon Web Services. [3] O DynamoDB expõe
um modelo de dados semelhante e deriva seu nome do Dynamo, mas tem uma
implementação subjacente diferente. O Dynamo tinha um design multi-líder exigindo que o
cliente resolvesse conflitos de versão e o DynamoDB usa replicação síncrona em
vários data centers[4] para alta durabilidade e disponibilidade. O DynamoDB foi anunciado
pelo CTO da Amazon Werner Vogels em 18 de janeiro de 2012,[5] e é apresentado como
uma evolução do Amazon SimpleDB

Você também pode gostar