Tutorial NoSQL: Tipos de Bancos de Dados NoSQL e Exemplos
⚡ Resumo Inteligente
NoSQL é um sistema de gerenciamento de banco de dados não relacional que não exige um esquema fixo, evita junções e é facilmente escalável. Este recurso explica o que é NoSQL, por que ele existe, sua história, características, os quatro tipos de banco de dados, o teorema CAP, consistência eventual e suas vantagens e desvantagens.

O que é NoSQL?
Banco de dados NoSQL É um sistema de gerenciamento de dados não relacional que não exige um esquema fixo. Ele evita junções e é facilmente escalável. O principal objetivo de usar um banco de dados NoSQL é para armazenamentos de dados distribuídos com necessidades de armazenamento de dados gigantescas. O NoSQL é usado para big data e aplicativos web em tempo real. Por exemplo, empresas como Twitter, Facebook e Google coletar terabytes de dados de usuários todos os dias.
Banco de dados NoSQL Significa "Not Only SQL" ou "Not SQL". Embora um termo melhor fosse "NoREL", NoSQL acabou se popularizando. Carl Strozzi introduziu o conceito de NoSQL em 1998.
Os SGBDs relacionais tradicionais usam a sintaxe SQL para armazenar e recuperar dados para análises mais aprofundadas. Já um sistema de banco de dados NoSQL engloba uma ampla gama de tecnologias que podem armazenar dados estruturados, semiestruturados, não estruturados e polimórficos. Vamos entender o NoSQL com um diagrama neste tutorial sobre bancos de dados NoSQL:
Por que NoSQL?
O conceito de bancos de dados NoSQL tornou-se popular entre gigantes da internet como GoogleFacebook, Amazon, etc. que lidam com grandes volumes de dados. O tempo de resposta do sistema fica lento quando você usa RDBMS para grandes volumes de dados.
Para resolver esse problema, poderíamos “ampliar” nossos sistemas atualizando nosso hardware existente. Este processo é caro.
A alternativa para esse problema é distribuir a carga do banco de dados em vários hosts sempre que a carga aumentar. Esse método é conhecido como "escalonamento horizontal".
Os bancos de dados NoSQL não são relacionais, por isso escalam melhor do que os bancos de dados relacionais, já que são projetados com foco em aplicações web.
Breve história dos bancos de dados NoSQL
- 1998 – Carlo Strozzi usa o termo NoSQL para seu banco de dados relacional leve e de código aberto.
- 2000 – Banco de dados de grafos NeoO 4j foi lançado.
- 2004 - Google O BigTable foi lançado.
- 2005 - CouchDB é lançado.
- 2007 – O artigo de pesquisa sobre Amazon O Dynamo foi lançado.
- 2008 – O Facebook torna o código aberto Cassandra projeto.
- 2009 – O termo NoSQL foi reintroduzido.
Recursos do NoSQL
Não relacional
- Os bancos de dados NoSQL nunca seguem o modelo relacional.
- Nunca forneça tabelas com registros planos de coluna fixa.
- Trabalhe com agregados autocontidos ou BLOBs.
- Não requer mapeamento objeto-relacionalping e normalização de dados.
- Sem recursos complexos como linguagens de consulta, planejadores de consulta, junções de integridade referencial ou ACID.
Livre de esquema
- Os bancos de dados NoSQL são ou livres de esquema ou possuem esquemas flexíveis.
- Não requer nenhum tipo de definição do esquema dos dados.
- Oferecer estruturas de dados heterogêneas no mesmo domínio.

API simples
- Oferece interfaces fáceis de usar para armazenamento e consulta de dados.
- APIs permitem métodos de manipulação e seleção de dados de baixo nível.
- Protocolos baseados em texto são usados principalmente com HTTP REST e JSON.
- Utilizava principalmente uma linguagem de consulta NoSQL sem padrão definido.
- Bancos de dados habilitados para a Web, executados como serviços voltados para a Internet.
Distribuído
- Vários bancos de dados NoSQL podem ser executados de forma distribuída.
- Oferece recursos de escalonamento automático e failover.
- Muitas vezes, o conceito ACID pode ser sacrificado em prol da escalabilidade e da produtividade.
- Na maioria dos casos, não há replicação síncrona entre nós distribuídos; replicação assíncrona multi-mestre, ponto a ponto e replicação HDFS são utilizadas.
- Garantir apenas a consistência eventual.
- Arquitetura sem compartilhamento. Isso possibilita menos coordenação e maior distribuição.
Tipos de bancos de dados NoSQL
Bancos de dados NoSQL Os bancos de dados são categorizados principalmente em quatro tipos: pares chave-valor, orientados a colunas, baseados em grafos e orientados a documentos. Cada categoria possui seus atributos e limitações específicos. Nenhum dos bancos de dados mencionados é melhor para resolver todos os problemas. Os usuários devem selecionar o banco de dados com base nas necessidades do seu produto.
Tipos de bancos de dados NoSQL:
- Baseado em pares de valores-chave
- Gráfico orientado a colunas
- Baseado em gráficos
- Orientado a documentos
Baseado em pares de valores-chave
Os dados são armazenados em pares chave/valor. Esse sistema é projetado para lidar com grandes volumes de dados e cargas elevadas. Bancos de dados com armazenamento de pares chave/valor armazenam dados como uma tabela hash, onde cada chave é única e o valor pode ser um JSON, BLOB (Objetos Binários Grandes), string, etc.
Por exemplo, um par chave-valor pode conter uma chave como “Website” associada a um valor como “Guru99".
É um dos exemplos mais básicos de banco de dados NoSQL. Esse tipo de banco de dados NoSQL é usado para armazenar coleções, dicionários, arrays associativos, etc. Os bancos de dados chave-valor ajudam o desenvolvedor a armazenar dados sem esquema. Eles são ideais para lojas virtuais.ping Conteúdo do carrinho.
Redis, Dynamo e Riak são alguns exemplos de bancos de dados NoSQL de armazenamento chave-valor. Todos eles são baseados em AmazonO jornal do Dínamo.
Baseado em coluna
Bancos de dados orientados a colunas funcionam com base em colunas e são fundamentados no artigo sobre BigTable. GoogleCada coluna é tratada separadamente. Os valores de bancos de dados de coluna única são armazenados de forma contígua.
Eles oferecem alto desempenho em consultas de agregação como SUM, COUNT, AVG, MIN, etc., pois os dados estão prontamente disponíveis em uma coluna. Bancos de dados NoSQL baseados em colunas são amplamente utilizados para gerenciar data warehouses. inteligência de negócios, CRM e catálogos de fichas de biblioteca.
HBase, Cassandra, e Hypertable são exemplos de consultas NoSQL em bancos de dados baseados em colunas.
Orientado a Documentos
Um banco de dados NoSQL orientado a documentos armazena e recupera dados como pares chave-valor, mas a parte do valor é armazenada como um documento. O documento é armazenado em formatos JSON ou XML. O valor é interpretado pelo banco de dados e pode ser consultado.
Neste diagrama à sua esquerda, você pode ver que temos linhas e colunas, e à direita, temos um banco de dados de documentos com uma estrutura semelhante à do JSON. Em um banco de dados relacional, você precisa saber quais colunas existem, e assim por diante. Já em um banco de dados de documentos, você tem um armazenamento de dados como um objeto JSON. Você não precisa defini-lo, o que o torna flexível.
O tipo de documento é usado principalmente em sistemas CMS, plataformas de blogs, análises em tempo real e aplicações de comércio eletrônico. Não deve ser usado para transações complexas que exigem múltiplas operações ou consultas em estruturas agregadas variadas.
Amazon SimpleDB, CouchDB, MongoDBRiak e Lotus Notes são softwares populares orientados a documentos. Sistemas SGBD.
Baseado em gráfico
Um banco de dados do tipo grafo armazena entidades, bem como as relações entre essas entidades. A entidade é armazenada como um nó, com o relacionamento representado por arestas. Uma aresta estabelece uma relação entre nós. Cada nó e aresta possui um identificador único.
Em comparação com um banco de dados relacional, onde as tabelas são fracamente conectadas, um banco de dados de grafos é multirrelacional por natureza. Percorrer os relacionamentos é rápido, pois eles já estão registrados no banco de dados, não sendo necessário calculá-los. Bancos de dados baseados em grafos são usados principalmente para redes sociais, logística e dados espaciais.
Neo4J, gráfico infinito, OrientDBO FlockDB e o db::graph são alguns exemplos populares de bancos de dados baseados em grafos.
Ferramentas de mecanismo de consulta para NoSQL
O mecanismo de recuperação de dados mais comum é a recuperação de um valor com base em sua chave/ID por meio de um recurso GET, utilizando a API REST.
Bancos de dados de armazenamento de documentos oferecem consultas mais complexas, pois compreendem o valor em um par chave-valor. Por exemplo, CouchDB Permite definir visualizações com MapReduce.
O que é o Teorema CAP?
O teorema CAP, também conhecido como teorema de Brewer, afirma que é impossível um armazenamento de dados distribuído oferecer mais de duas das três garantias:
- Consistência
- Disponibilidade
- Tolerância de Partição
Consistência: Os dados devem permanecer consistentes mesmo após a execução de uma operação. Isso significa que, uma vez gravados os dados, qualquer solicitação de leitura futura deverá conter esses dados. Por exemplo, após atualizar o status do pedido, todos os clientes deverão poder ver os mesmos dados.
Disponibilidade: O banco de dados deve estar sempre disponível e responsivo. Não deve haver nenhum tempo de inatividade.
Tolerância de partição: Tolerância de Partição significa que o sistema deve continuar a funcionar mesmo que a comunicação entre os servidores não seja estável. Por exemplo, os servidores podem ser particionados em vários grupos que podem não comunicar entre si. Aqui, se parte do banco de dados estiver indisponível, outras partes sempre não serão afetadas.
Consistência Eventual
O termo "consistência eventual" significa ter cópias dos dados em várias máquinas para obter alta disponibilidade e escalabilidade. Assim, as alterações feitas em qualquer item de dados em uma máquina precisam ser propagadas para as outras réplicas.
A replicação de dados pode não ser instantânea, pois algumas cópias serão atualizadas imediatamente, enquanto outras levarão algum tempo para serem atualizadas. Essas cópias podem ser mutuamente inconsistentes, mas, com o tempo, tornam-se consistentes. Daí o nome consistência eventual.
BASE: Basicamente Adisponível, Smuitas vezes estado, Econsistência ventual
- Basicamente, "disponível" significa que o banco de dados está disponível o tempo todo, conforme o teorema CAP.
- Estado flexível significa que, mesmo sem nenhuma entrada, o estado do sistema pode mudar.
- Consistência eventual significa que o sistema se tornará consistente ao longo do tempo.
Vantagens do NoSQL
- Pode ser utilizado como fonte de dados primária ou analítica.
- Capacidade de análise de Big Data.
- Não há um único ponto de falha.
- Reprodução fácil.
- Não há necessidade de uma camada de cache separada.
- Ele fornece desempenho rápido e escalabilidade horizontal.
- Capaz de lidar com dados estruturados, semiestruturados e não estruturados com igual eficácia.
- Programação orientada a objetos, que é fácil de usar e flexível.
- Os bancos de dados NoSQL não precisam de um servidor dedicado de alto desempenho.
- Suporte às principais linguagens e plataformas de desenvolvimento.
- Mais simples de implementar do que usar um SGBD relacional.
- Ele pode servir como fonte de dados primária para aplicativos online.
- Lida com big data, gerenciando a velocidade, a variedade, o volume e a complexidade dos dados.
- Possui excelente desempenho em operações com bancos de dados distribuídos e múltiplos centros de dados.
- Elimina a necessidade de uma camada de cache específica para armazenar dados.
- Oferece um design de esquema flexível que pode ser facilmente alterado sem tempo de inatividade ou interrupção do serviço.
Desvantagens do NoSQL
- Não existem regras de padronização.
- Capacidades de consulta limitadas.
- RDBMS As bases de dados e as ferramentas são relativamente maduras.
- Ele não oferece recursos tradicionais de banco de dados, como consistência quando múltiplas transações são executadas simultaneamente.
- Com o aumento do volume de dados, torna-se difícil manter valores únicos, pois a criação de chaves se torna complexa.
- Não funciona tão bem com dados relacionais.
- A curva de aprendizado é íngreme para novos desenvolvedores.
- As opções de código aberto não são tão populares entre as empresas.






