Apostila - Bancos de Dados NoSQL

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 13

PROFESSOR(A): ANDERSON NASCIMENTO

Tecnologias para Big Data

Bancos de Dados NoSQL


Objetivo da Aula

Apresentar os bancos de dados NoSQL, os seus tipos e as suas diferenças em relação


aos bancos de dados relacionais.

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!

1. Fundamentos de Bancos de Dados NoSQL

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.

Figura 1: Tipos de bancos de dados NoSQL

Fonte: <https://micreiros.com/tipos-de-bancos-de-dados-nosql/>. Acesso em: 12 set. 2023.

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:

• Esquema flexível: os bancos de dados NoSQL geralmente permitem esquemas flexíveis,


permitindo que os dados sejam armazenados sem a necessidade de uma estrutura de
tabela rígida, típica dos bancos de dados relacionais. Isso é útil quando os dados são
heterogêneos ou semiestruturados;
• Modelos de dados não estruturados ou semiestruturados: muitos bancos de dados
NoSQL suportam acomodar dados não estruturados ou semiestruturados, como do-
cumentos JSON, XML ou outros formatos;
• Escalabilidade horizontal: os bancos de dados NoSQL são projetados para permitir a
escalabilidade horizontal, ou seja, a adição de mais servidores, para aumentar a ca-
pacidade de armazenamento e desempenho, ao contrário da escalabilidade vertical
típica dos bancos de dados relacionais;
• Alta disponibilidade e tolerância a falhas: os bancos de dados NoSQL costumam oferecer
mecanismos robustos para garantir a disponibilidade contínua dos dados, incluindo
replicação e distribuição;
• Suporte a grandes volumes de dados: os bancos de dados NoSQL são adequados para
lidar com grandes volumes de dados, tornando-os ideais para aplicativos que lidam
com Big Data;

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

• Modelos de consistência flexíveis: alguns bancos de dados NoSQL permitem escolher


diferentes níveis de consistência, permitindo compromissos entre disponibilidade e
consistência;
• Descentralização e distribuição: alguns bancos de dados NoSQL são projetados para
funcionar em ambientes distribuídos, onde os dados são armazenados e processados
em vários nós ou servidores;
• Alto desempenho: os bancos de dados NoSQL são frequentemente otimizados para
oferecer alto desempenho em cargas de trabalho específicas, como consultas em
tempo real ou análise de dados em grande escala.

Embora sejam algumas características bastante comuns entre os bancos de dados


dessa categoria, algumas dessas ferramentas podem apresentar sensíveis diferenças das
citadas aqui.
De uma maneira geral, várias dessas características citadas podem ser consideradas como
vantagens dos bancos de dados NoSQL, principalmente no que diz respeito à escalabilidade,
à flexibilidade em relação ao esquema, à descentralização e ao alto desempenho.
Contudo, há de se destacar algumas desvantagens importantes, que se referem à
forma de armazenar e recuperar os dados, sobretudo quando falamos em consistência,
transparência e suporte.
Com relação à consistência, os bancos de dados NoSQL podem não ser tão confiáveis
quanto os bancos de dados relacionais, que naturalmente implementam uma série de
restrições relacionadas à integridade dos dados.
Já com relação à transparência, os bancos de dados NoSQL não são tão transparentes
como os relacionais, o que torna o acesso e a manipulação de dados mais complexos.
Por fim, quando falamos em suporte, dependendo do SGBD escolhido, talvez não haja suporte
tão efetivo quanto nos bancos de dados relacionais, como Oracle Database ou Microsoft SQL
Server. Muito disso se dá pelo fato de que os projetos de novas ferramentas se iniciam de maneira
menor, buscando resolver um problema específico. De acordo com o interesse da comunidade,
ele pode se desenvolver e chegar a ponto de um MongoDB, só para citar um exemplo.

2. Tipos de Bancos de Dados NoSQL

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

2.1. Bancos de Dados Colunar

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.

Figura 2: Exemplo de banco de dados colunar

Fonte: <https://micreiros.com/tipos-de-bancos-de-dados-nosql/>. Acesso em: 12 set. 2023.

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

Figura 3: Exemplo de armazenamento de banco de dados colunar

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.

Na Figura 3, vemos um comparativo entre o modelo relacional, armazenado em linha, e o


colunar, armazenado em colunas. No relacional, cada coluna de uma linha é armazenada de
forma contínua, ou seja, todas as informações sobre uma entidade são mantidas juntas; já
no colunar, os conteúdos de cada coluna de uma tabela é que são dispostos em sequência.
Esses bancos têm como indicação de uso servir como base de dados para mídias sociais
e problemas que envolvem consultas complexas.

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

A Figura 4 mostra um exemplo desse tipo de banco de dados.

Figura 4: Exemplo de armazenamento de banco de dados chave-valor

Fonte: <https://db4beginners.com/blog/escolha-o-tipo-bd/>. Acesso em: 12 set. 2023.

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.

2.3. Orientado a Grafos

Os bancos de dados orientados a grafos foram projetados para armazenar e gerenciar


dados que são altamente relacionados, sendo representados por meio de estruturas de grafo.
Em um contexto de banco de dados orientado a grafos, um grafo é uma estrutura de
dados que consiste em nós e arestas. Os nós representam entidades, como pessoas, lugares
ou coisas, e as arestas representam relacionamentos entre essas entidades.
Por exemplo, um grafo pode ser usado para representar uma rede social, em que os nós
são pessoas e as arestas são amizades. Em outro exemplo, um grafo pode ser usado para
representar um sistema de tráfego, no qual os nós são cruzamentos e as arestas são ruas.
A Figura 5 mostra um exemplo de armazenamento em bancos de dados orientados a grafos.

Figura 5: Exemplo de organização de bancos de dados orientados a grafos

Fonte: <https://micreiros.com/tipos-de-bancos-de-dados-nosql/>. Acesso em: 12 set. 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 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.

2.4. Orientado a Documentos

Os bancos de dados orientados a documentos são estruturas de armazenamento que


armazenam e recuperam dados em formato de documentos.
Cada documento é uma unidade independente que contém todas as informações
relacionadas a uma entidade específica, como um objeto, uma pessoa ou um evento. Esses
documentos são, geralmente, estruturados em formatos como JavaScript Object Notation
(JSON) ou Binary JSON (BSON).
A Figura 6 mostra um exemplo desse tipo de banco de dados.

Figura 6: Exemplo de organização de um banco de dados orientado a documentos

Fonte: <https://imasters.com.br/banco-de-dados/bancos-de-dados-nosql-uma-visao-geral>. Acesso em: 12 set. 2023.

Os bancos de dados orientados a documentos são adequados para uma variedade de


cenários, especialmente quando há uma necessidade de flexibilidade no esquema de dados.

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

Por fim, vamos apresentar as principais ferramentas existentes no mercado para se


trabalhar com cada tipo dos principais bancos de dados NoSQL.
A Figura 7 exibe algumas das principais ferramentas para manipulação dos bancos de
dados NoSQL.

Figura 7: Principais ferramentas de banco de dados

Fonte: <https://autociencia.blogspot.com/2020/01/scylladb-um-banco-de-dados-nosql-big-data.html>. Acesso em:


12 set. 2023.

3.1. Bancos de Dados Colunares

Entre os bancos de dados colunares, os SGBDs mais utilizados são:


• Apache Cassandra: banco de dados de colunas distribuído, projetado para alta dispo-
nibilidade e escalabilidade linear. É amplamente utilizado em cenários que exigem alta
tolerância a falhas e escritas rápidas;
• Apache HBase: construído no topo do Hadoop HDFS, é um banco de dados de colunas
não relacional, altamente escalável e otimizado para leitura e gravação de dados em
grande escala;

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.

3.2. Bancos de Dados Chave-Valor

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.

3.3. Bancos de Dados Orientados a Grafos

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

• Amazon Neptune: é um serviço de banco de dados gerenciado oferecido pela AWS. É


um banco de dados orientado a grafos altamente disponível, escalável e compatível
com padrões de grafos populares, como Apache TinkerPop e W3C’s RDF;

• Microsoft Azure Cosmos DB: é um serviço de banco de dados distribuído e multimodelo


da Microsoft. Ele oferece suporte para bancos de dados de grafos, usando o Gremlin
API, e é altamente escalável e disponível globalmente;

• GraphDB: é um banco de dados de grafo nativo desenvolvido pela Ontotext. É conhe-


cido por sua forte aderência aos padrões de grafos e é otimizado para gerenciamento
e consulta de dados semânticos, podendo armazenar e processar grandes conjuntos
de dados de grafo.

3.4. Banco de Dados Orientados a Documentos

Por fim, chegamos a uma categoria muito utilizada entre os bancos de dados NoSQL.
Os principais bancos de dados orientados a documentos são:

• MongoDB: é um dos bancos de dados orientados a documentos mais popular e utili-


zado atualmente. Ele oferece alta flexibilidade, permitindo que os documentos sejam
armazenados sem esquema definido, além de suportar consultas complexas e índices
secundários;

• 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;

• Amazon DocumentDB: é um serviço de banco de dados gerenciado oferecido pela


AWS. Ele é compatível com o MongoDB e oferece escalabilidade, alta disponibilidade
e backup automático;

• 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

Considerações Finais da Aula

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

Você já escolheu o tipo de banco de dados?


2017, Dani. DB4Beginners.
Esse artigo apresenta uma visão geral sobre os bancos de dados NoSQL, apresentando
as principais características de cada um deles.
Link para acesso: https://db4beginners.com/blog/escolha-o-tipo-bd/ (acesso em 21
set. 2023).

Tipos de bancos de dados NoSQL


2017, Turmasm. DB4Beginners.
Esse artigo apresenta uma visão geral sobre os bancos de dados NoSQL, com foco nos
tipos de SGBDs existentes.
Link para acesso: https://micreiros.com/tipos-de-bancos-de-dados-nosql/ (acesso
em 21 set. 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 12 de 13
Professor(a): Anderson Nascimento

SQL vs NoSQL - Qual é a Diferença?


2022, Hashtag Programação.
Esse vídeo traça as principais diferenças entre os bancos de dados relacionais e não
relacionais.
Link para acesso: https://www.youtube.com/watch?v=gFwIbxxys5I (acesso em 21 set.
2023).

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

Você também pode gostar