Apostila - Bancos de Dados NoSQL
Apostila - Bancos de Dados NoSQL
Apostila - Bancos de Dados NoSQL
Apresentação
Os bancos de dados NoSQL (Not Only SQL) são meios de armazenamento que surgiram
para resolver problemas que os tradicionais bancos de dados relacionais já não eram mais
capazes de resolver, principalmente no que se relaciona ao desempenho.
Nesta aula, vamos entender o que são os bancos de dados não relacionais, os seus vários
tipos e as suas aplicações, diferenciando-os dos bancos de dados relacionais.
Também, vamos abordar as principais ferramentas de bancos de dados para cada tipo
de dados existente.
Vamos nessa!
Os bancos de dados NoSQL, sigla em inglês para Not Only SQL ou, em português,
não somente SQL, surgiram, nos anos 2000, como resposta inovadora para lidar com os
crescentes desafios de armazenamento e processamento de dados que passaram a existir
após a explosão da internet, dos aplicativos e das redes sociais – estes que demandavam
cada vez mais tempo de resposta.
Historicamente, algumas datas foram chaves na ascensão desse tipo de tecnologia:
• Anos 2000: com o crescimento da web e o surgimento de redes sociais, bem como as
aplicações em tempo real e os volumes massivos de dados gerados, começaram a surgir
novos requisitos aos quais os bancos de dados relacionais tradicionais não conseguiam
atender de maneira eficiente;
Livro Eletrônico
faculdade.grancursosonline.com.br 1 de 13
Professor(a): Anderson Nascimento
• 2004: o Google publicou um artigo sobre o Google File System (GFS) e o MapReduce,
que se tornaram as bases para o Hadoop e o processamento distribuído de dados em
larga escala;
• 2007: o Amazon DynamoDB foi lançado pela Amazon Web Services (AWS) como um dos
primeiros exemplos de bancos de dados NoSQL em produção. Ele é um banco de dados
de chave-valor, projetado para alta disponibilidade e escalabilidade;
• 2008: o projeto Apache CouchDB foi lançado como um banco de dados de documentos,
sendo orientado a eventos e projetado para sincronização de dados entre dispositivos
móveis;
• 2009: o projeto Apache Cassandra foi desenvolvido pelo Facebook e lançado como
um banco de dados de colunas distribuído, projetado para escalabilidade e alta
disponibilidade;
• 2009: o projeto Apache HBase foi lançado como um banco de dados de colunas, no
topo do Hadoop HDFS, fornecendo armazenamento e recuperação rápida de dados
em grande escala;
• 2010: o projeto Apache MongoDB foi lançado, fornecendo um banco de dados de do-
cumentos de código aberto, escalável e flexível;
• 2010: o Google publicou um artigo sobre o Bigtable, inspirando o projeto Apache HBase
e influenciando o design de muitos outros bancos de dados NoSQL;
• 2012: o termo “NoSQL” foi oficialmente definido e reconhecido como uma categoria
de bancos de dados em um evento realizado em São Francisco.
Como você pôde ver, o termo NoSQL acabou se tornando uma categoria para bancos
de dados, mas, na verdade, ele engloba uma série de bancos de dados de tipos distintos,
que, por sua vez, armazenam dados de formas também distintas. Alguns tipos de bancos
de dados NoSQL são:
• Colunar;
• Chave-valor;
• Orientado a grafos;
• Orientado a documentos.
O conteúdo deste livro eletrônico é licenciado para JHEFFERSON - 01038556104, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação ou
distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
faculdade.grancursosonline.com.br 2 de 13
Professor(a): Anderson Nascimento
A Figura 1 mostra algumas das classificações e dos tipos de bancos de dados NoSQL.
Esses bancos de dados são indicados para aplicações projetadas com alta carga de dados,
em que a disponibilidade, a escalabilidade e o tempo de resposta são mais importantes que
a consistência, o que ocorre, normalmente, em aplicações de larga escala.
Algumas características que ajudam a definir os bancos de dados NoSQL são:
O conteúdo deste livro eletrônico é licenciado para JHEFFERSON - 01038556104, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação ou
distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
faculdade.grancursosonline.com.br 3 de 13
Professor(a): Anderson Nascimento
Como vimos, os bancos de dados NoSQL podem ser divididos em categorias, cada uma
com suas peculiaridades, que impactam sua forma de armazenar e acessar os dados.
A partir de agora, vamos entender como cada banco de dados funciona.
O conteúdo deste livro eletrônico é licenciado para JHEFFERSON - 01038556104, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação ou
distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
faculdade.grancursosonline.com.br 4 de 13
Professor(a): Anderson Nascimento
Esse modelo foi inicialmente desenvolvido tendo como base o Bigtable da Google; ele
também é conhecido por outros nomes, como “família de colunas”. Essa categoria tem como
característica a organização dos dados em colunas, e não em linhas, como nos bancos de
dados relacionais.
A Figura 2 mostra um exemplo do armazenamento desse banco de dados.
Suponha que você tenha uma planilha com várias colunas, cada uma representando um
tipo de informação, como nome, idade, endereço e e-mail de várias pessoas. Um banco
de dados colunar funciona de forma semelhante, armazenando os dados de cada coluna
juntos, em vez de armazenar as informações de cada pessoa em uma única linha.
O conteúdo deste livro eletrônico é licenciado para JHEFFERSON - 01038556104, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação ou
distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
faculdade.grancursosonline.com.br 5 de 13
Professor(a): Anderson Nascimento
Fonte: <https://www.devmedia.com.br/sgbd-relacionais-orientados-a-coluna-uma-nova-roupagem-ao-data-warehou-
sing-parte-01/11349>. Acesso em: 12 set. 2023.
2.2. Chave-Valor
Os bancos de dados chave-valor (ou key-value) são bem mais simples de entender; eles
armazenam e recuperam dados, como pares de chaves e valores. É uma estrutura simples,
em que cada dado é associado a uma chave única que atua como um identificador.
O conteúdo deste livro eletrônico é licenciado para JHEFFERSON - 01038556104, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação ou
distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
faculdade.grancursosonline.com.br 6 de 13
Professor(a): Anderson Nascimento
Trata-se de um banco de dados eficiente para recuperação rápida de dados, por meio de chaves
únicas, e é particularmente útil em cenários onde a simplicidade e o desempenho são essenciais.
O conteúdo deste livro eletrônico é licenciado para JHEFFERSON - 01038556104, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação ou
distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
faculdade.grancursosonline.com.br 7 de 13
Professor(a): Anderson Nascimento
Nesses bancos de dados, as informações são armazenadas como nós (também chamados
de vértices), e as conexões entre esses nós são representadas por arestas.
Os bancos de dados orientados a grafos são uma ferramenta poderosa para analisar
relacionamentos entre dados. Eles são frequentemente usados para aplicativos de
recomendação, como recomendações de produtos ou recomendações de amigos. Os bancos
de dados orientados a grafos também são usados para aplicativos de análise de rede, como
análise de redes sociais ou análise de tráfego.
O conteúdo deste livro eletrônico é licenciado para JHEFFERSON - 01038556104, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação ou
distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
faculdade.grancursosonline.com.br 8 de 13
Professor(a): Anderson Nascimento
3. Ferramentas NoSQL
O conteúdo deste livro eletrônico é licenciado para JHEFFERSON - 01038556104, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação ou
distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
faculdade.grancursosonline.com.br 9 de 13
Professor(a): Anderson Nascimento
• Amazon Redshift: serviço de data warehouse na nuvem oferecido pela AWS. Ele utiliza
uma arquitetura colunar para análise de dados em grande escala e integração com
outras ferramentas da AWS;
• MariaDB ColumnStore: extensão do MariaDB, é um banco de dados de colunas de código
aberto otimizado para realizar a análise de dados e o armazenamento em memória.
Trata-se de um dos bancos de dados NoSQL mais utilizados. Entre os principais SGBDs
desse tipo, podemos citar:
• Redis: é um dos bancos de dados chave-valor mais popular e amplamente adotado. É
conhecido por sua alta velocidade e flexibilidade, suportando diversos tipos de dados,
como strings, hashes, listas, conjuntos e ordenados, além de oferecer recursos avan-
çados, como persistência em disco e replicação;
• Amazon DynamoDB: é um serviço de banco de dados gerenciado oferecido pela AWS.
É um banco de dados chave-valor altamente disponível, escalável e completamente
gerenciado pela AWS;
• Apache Cassandra: pode ser considerado um banco de dados chave-valor, embora seja
principalmente conhecido como um banco de dados colunar, pois suporta a modelagem
de dados como um mapa de chave-valor aninhado;
• Couchbase: é um banco de dados chave-valor de código aberto com suporte para ar-
mazenamento em cache, alta disponibilidade e escalabilidade horizontal. Ele também
suporta índices secundários e consultas em formato SQL;
• Riak: é um banco de dados distribuído chave-valor, conhecido por sua alta disponi-
bilidade e tolerância a falhas. É adequado para cenários em que a disponibilidade e a
escalabilidade são cruciais;
• Oracle NoSQL Database: é um banco de dados chave-valor distribuído desenvolvido
pela Oracle, projetado para fornecer alta disponibilidade, escalabilidade e desempenho.
Nesse tipo de bancos de dados, utilizado amplamente nos dias de hoje por conta do
conceito de redes de relacionamento, os principais SGBDs são:
• Neo4j: é um dos bancos de dados orientados a grafos mais popular e amplamente ado-
tado. Ele suporta estruturas de dados de grafo nativas e oferece consultas poderosas,
usando a linguagem de consulta Cypher;
O conteúdo deste livro eletrônico é licenciado para JHEFFERSON - 01038556104, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação ou
distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
faculdade.grancursosonline.com.br 10 de 13
Professor(a): Anderson Nascimento
Por fim, chegamos a uma categoria muito utilizada entre os bancos de dados NoSQL.
Os principais bancos de dados orientados a documentos são:
• Couchbase: é um banco de dados de código aberto que oferece suporte híbrido para
modelo de dados orientado a documentos e chaves-valor. Ele é altamente escalável e
possui recursos de gerenciamento de cache e replicação;
• CouchDB: é um banco de dados de código aberto que oferece suporte para documentos
armazenados em formato JSON e consultas baseadas em JavaScript. Ele é otimizado
para disponibilidade e suporta replicação entre servidores.
Bom, são muitas opções de bancos de dados. É importante conhecê-las para saber
qual opção melhor se adapta ao problema a ser resolvido. Também é importante saber se
o servidor que você pretende armazenar, no seu banco de dados, possui suporte para a
sua escolha.
O conteúdo deste livro eletrônico é licenciado para JHEFFERSON - 01038556104, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação ou
distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
faculdade.grancursosonline.com.br 11 de 13
Professor(a): Anderson Nascimento
Nesta aula, aprendemos um pouco sobre os bancos de dados não relacionais ou NoSQL.
Entendemos que esse tipo de banco de dados é uma opção ao modelo relacional, para
situações em que o modelo tradicional não consegue atender, principalmente no que diz
respeito ao desempenho e à escalabilidade.
Além disso, vimos que o NoSQL não se trata apenas de um tipo de banco de dados, mas
vários, cada um com a sua forma de acesso e armazenamento diferente.
Nesse quesito, podemos citar os bancos de dados colunar, chave-valor, orientado a
documentos e orientado a grafos. Cada um deles possui uma série de SGBDs distintos, que
podem ser escolhidos para compor a arquitetura de sua aplicação.
É importante conhecer os bancos de dados NoSQL, pois, além de servirem a muitas das
demandas atuais, que clamam por desempenho e escalabilidade, também fazem parte do
ecossistema do Big Data.
Materiais Complementares
O conteúdo deste livro eletrônico é licenciado para JHEFFERSON - 01038556104, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação ou
distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
faculdade.grancursosonline.com.br 12 de 13
Professor(a): Anderson Nascimento
Referências
SILVA, Luiz Fernando Calaça et al. Banco de dados não relacional. Porto Alegre: SAGAH,
2021. Livro digital. (1 recurso on-line). ISBN 9786556901534. Disponível em: https://in-
tegrada.minhabiblioteca.com.br/books/9786556901534. Acesso em: 21 jul. 2023.
O conteúdo deste livro eletrônico é licenciado para JHEFFERSON - 01038556104, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação ou
distribuição, sujeitando-se aos infratores à responsabilização civil e criminal.
faculdade.grancursosonline.com.br 13 de 13