Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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.
O NoSQL foi criado para ter melhor desempenho e maior escalabilidade horizontal
para a ineficácia dos bancos de dados relacionais.
Esse modelo de banco de dados é automatizado e otimizado para servir aplicativos que
obrigam a utilização de modelos de Big Data.
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.
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;
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.
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.
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?
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.
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.
Para quem não sabe, MapReduce é uma ferramenta do framework Apache Hadoop,
uma das principais plataformas para processamento de big data.
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.
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.
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 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.
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.
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.