1
INSTITUTO FEDERAL DO NORTE DE MINAS GERAIS-CAMPUS ALMENARA
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE
SISTEMAS
HÉRCULES JARDIM DAMASCENO SILVA
MARCOS SANTOS MOREIRA
BANCO DE DADOS: NOSQL
ALMENARA, MINAS GERAIS
2023
INSTITUTO FEDERAL DO NORTE DE MINAS GERAIS-CAMPUS ALMENARA
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE
SISTEMAS
HÉRCULES JARDIM DAMASCENO SILVA
MARCOS SANTOS MOREIRA
BANCO DE DADOS: NOSQL
Trabalho feito como requisito parcial
para obtenção de nota na disciplina
de Banco de Dados ministrada
pelo professora Valdete Maria Gonçalves
de Almeida no curso de graduação em
Tecnologia em Análise e Desenvolvimento
Sistemas.
ALMENARA, MINAS GERAIS
2023
2
RESUMO
Este trabalho tem como objetivo informar de maneira detalhada e objetiva,
alguns dos mais notórios e famigerados modelos de noSQL (not SQL), que é um
modelo de banco de dados que não utiliza o modelo convencional de
armazenamento baseado em tabelas, como é o caso do MySQL , MariaDB, Oracle
entre outros.
Este trabalho não foca na especialização ou utilização de determinados
bancos de dados no SQL, mas sim, no entendimento do que é um database no SQL
e quais são seus benefícios, para a área de TI.
Palavras-chave: noSQL. Trabalho. Database. TI. Benefícios.
3
ABSTRACT
This work aims to inform in a detailed and objective way, some of the most
notorious and famous models of noSQL (not SQL), which is a database model that
does not use the conventional model of storage based on tables, as is the case
MySQL, MariaDB, Oracle and others.
This work does not focus on the specialization or use of certain databases in
SQL, but on the understanding of what a database in SQL is and what are its
benefits, for the IT area.
Keywords: Library. noSQL. Work. Database. IT. Benefits.
4
SUMÁRIO
1. INTRODUÇÃO.................................................................................................... 5
2. PRINCIPAIS CARACTERÍSTICAS NOSQL DETALHADOS.............................. 6
2.1 Flexibilidade........................................................................................... 6
2.2 A Escalabilidade Horizontal....................................................................6
2.3 Grande Volume de Dados Não Estruturados ou Semiestruturados.......6
2.4 Conclusão das Características...............................................................7
3. PRINCIPAIS TIPOS DE MODELOS DE DADOS NOSQL..................................8
3.1 Chave-valor (key-value)......................................................................... 8
3.2 Orientado a Colunas.............................................................................. 9
3.3 Orientado a Documentos..................................................................... 10
3.4 Orientado a Grafos............................................................................... 11
4. BANCOS DE DADOS NOSQL..........................................................................12
5. EMPRESAS QUE UTILIZAM NOSQL.............................................................. 13
6. EXEMPLOS DE UTILIZAÇÃO.......................................................................... 14
REFERÊNCIAS.................................................................................................... 16
5
1. INTRODUÇÃO
Com a evolução tecnológica e o desenvolvimento da Web, o modelo
relacional de banco de dados (SQL), passou a não conseguir atender a algumas
necessidades, como manipular dados com formato de imagem, vídeo, som entre
outros, e a fim de conseguir atender essas necessidades nasceria mais tarde o que
chamamos hoje de NoSQL (Not Only SQL).
NoSQL (Not Only SQL) é um termo que se refere a um conjunto de sistemas
de gerenciamento de banco de dados que foram projetados para lidar com tipos de
dados e modelos de armazenamento diferentes daqueles oferecidos pelos bancos
de dados relacionais tradicionais.
Esses sistemas são frequentemente usados para casos em que a
flexibilidade, escalabilidade horizontal e a capacidade de lidar com grandes volumes
de dados não estruturados ou semiestruturados são indispensáveis.
6
2. PRINCIPAIS CARACTERÍSTICAS NOSQL DETALHADOS
Os Bancos de Dados NoSQL além de serem uma solução para a limitação
dos bancos de dados relacionais, contam ainda com alguns outros fatores que os
tornam poderosas ferramentas no momento da persistência dos dados. Essas
características simplesmente mudaram a forma de desenvolvimento voltado para
web.
2.1 Flexibilidade
Refere-se à capacidade de um sistema se adaptar a diferentes necessidades
e situações. No contexto de sistemas, isso implica que o sistema pode ser
configurado e personalizado de várias maneiras para atender às necessidades
específicas de um determinado caso de uso, sem requerer mudanças drásticas na
arquitetura ou no código.
2.2 A Escalabilidade Horizontal
A escalabilidade horizontal é a capacidade de um sistema lidar com um
aumento na carga de trabalho ou na demanda, adicionando mais recursos, como
servidores ou máquinas, em vez de apenas aumentar os recursos em um único
servidor. Isso é feito distribuindo a carga entre várias instâncias do sistema.
2.3 Grande Volume de Dados Não Estruturados ou Semiestruturados
Dados não estruturados são informações que não se encaixam facilmente em
formatos tabulares ou bancos de dados tradicionais. Eles podem incluir texto livre,
imagens, áudio, vídeo entre outros. Dados semi estruturados são uma forma
intermediária entre dados estruturados (como tabelas de bancos de dados) e não
estruturados. Eles possuem alguma organização mas não se encaixam
perfeitamente em uma estrutura rígida. Sistemas que lidam com esses tipos de
dados precisam ser capazes de extrair informações úteis deles, mesmo que não
estejam em um formato estruturado convencional.
7
2.4 Conclusão das Características
Portanto, o tipo de banco de dados NoSQL é utilizado frequentemente em
casos onde a flexibilidade, escalabilidade horizontal e a capacidade de lidar com
grandes volumes de dados não estruturados ou semiestruturados são cruciais, ou
seja, são sistemas que foram projetados para serem adaptáveis, capazes de crescer
conforme a demanda e conseguem lidar com diferentes tipos de dados, até mesmo
aqueles que não estão organizados de maneira tradicional.
Exemplos de sistemas que se enquadram nesta descrição podem incluir
plataformas de processamento de Big Data1, como o Hadoop, sistemas de
gerenciamento de conteúdo, redes sociais, mecanismos de busca avançados e
muitos outros aplicativos que precisam lidar com grande quantidade de dados que
sofrem mudança constantemente.
1
Uma área do conhecimento com o intuito de estudar maneiras de tratar, analisar e gerar
conhecimento através de grandes conjuntos de dados que não conseguem ser trabalhados em
sistemas tradicionais (ALURA, 2023).
8
3. PRINCIPAIS TIPOS DE MODELOS DE DADOS NOSQL
3.1 Chave-valor (key-value)
Este modelo é considerado bastante simples e permite visualizar um banco
de dados como uma grande tabela que consiste em um conjunto de chaves, cada
uma associada a um único valor, que pode ser uma string ou dados binários. A
Figura-1 mostra um exemplo de banco de dados que armazena informações
pessoais no formato “valor-chave”. A chave representa um campo como nome ou
idade, enquanto o valor representa a instância de dados correspondente para esse
campo.
Figura-1: exemplo de NoSQL chave-valor.
Fonte: DEVMEDIA(2012).
Devido à sua facilidade de implementação, este modelo permite o acesso
rápido aos dados através de chaves, especialmente em sistemas altamente
escaláveis, aumentando assim a disponibilidade dos dados. As operações
disponíveis para manipulação de dados são simples, como 'get()' para recuperar
valores e 'set()' para armazenar valores. No entanto, uma desvantagem deste
modelo é que ele não suporta a recuperação de objetos através de consultas mais
complexas.
9
3.2 Orientado a Colunas
Diferente do modelo NoSQL do tipo “chave-valor”, que apresenta uma
abordagem simples e de fácil assimilação, o modelo orientado a colunas por sua vez
apresenta uma certa complexidade. Neste modelo há uma grande diferença em
relação ao modelo tradicional de armazenamento de informação, onde o paradigma
de armazenação orientado a tuplas ou registros, como nos modelos relacionais,
muda e passa registrar os dados através de uma tripla (linha, coluna, timestamp),
com isso linhas e colunas são identificadas por chaves enquanto o timestamp
permite diferir as múltiplas versões de um mesmo dado.
Figura 2: Exemplo de NoSQL orientado a Colunas.
Fonte: DEVMEDIA(2012).
A Figura 2 mostra um exemplo explícito da forma de retorno de dados dos
Bancos de Dados orientados a colunas, onde mesmo que façamos uma simples
consulta pelo “sobrenome”, todas as colunas são retornadas, fato o qual é
denominado atomicidade. Outro conceito também associado a este tipo de banco de
dados é o column family, que é recurso que nos permite agrupar coluna que são de um
mesmo tipo de dados.
10
3.3 Orientado a Documentos
De maneira bastante auto-explicativa este modelo de NoSQL, faz o
armazenamento através de coleções de documentos. Um documento basicamente é
um objeto o qual contém um identificador que é único (como um id dos Banco
Dados tradicionais), e um conjunto de campos, que podem ser strings, listas ou
documentos aninhados (LÓSCIO; OLIVEIRA; PONTES, 2023).
Figura 3: Exemplo de NoSQL orientado a Documentos.
Fonte: DEVMEDIA(2012).
Uma característica que deve se levar em conta é que apesar de apresentar
um identificador, este modelo não apresenta uma estrutura fixa, como ocorre nos
modelos relacionais. A Figura 3 mostra um exemplo simplificado do funcionamento
do armazenamento deste modelo de banco de dados.
11
3.4 Orientado a Grafos
O modelo orientado a grafos possui três componentes básicos: os nós (são
os vértices do grafo), os relacionamentos (são as arestas) e as propriedades (ou
atributos) dos nós e relacionamentos (LÓSCIO; OLIVEIRA; PONTES, 2023). Na
Figura 4 é mostrado um exemplo do funcionamento deste modelo.
Figura 4: Exemplo de NoSQL Orientado a Grafos.
Fonte: DEVMEDIA(2012).
Neste caso, o banco de dados pode ser visto como um multigrafo
rotulado e direcionado, onde cada par de nós pode ser conectado por mais de uma
aresta (LÓSCIO; OLIVEIRA; PONTES, 2023).
12
4. BANCOS DE DADOS NOSQL
Alguns dos exemplos mostrados logo abaixo, possuem uma imagem Docker2,
o que pode ser de grande relevância e praticidade, visto que a sua utilização traz um
grande benefício no âmbito de testes e análises minuciosas, além de possuir uma
alta facilidade de aplicação e replicação.
1. MongoDB: este é um modelo de banco de dados NoSQL de Documentos,
que faz o processo armazenamento de dados em documentos BSON
(formato binário JSON). Cada documento pode ter uma estrutura diferente e
não é necessário que todos sigam um modelo padrão. Este modelo possui
imagem Docker (“mongo”).
2. Cassandra: neste outro modelo, o qual é baseado em “Colunas” e que é
projetado para alta escalabilidade e disponibilidade, faz seu armazenamento
de dados em colunas, permitindo consultas analíticas eficientes. Também
possui imagem Docker( “cassandra”).
3. Redis: este tipo de database é do tipo “Chave-Valor”, porém ele armazena
pares chave-valor na memória principal do computador, o que resulta em alta
velocidade para operações de leitura e gravação. Ele também possui uma
imagem Docker(“redis”).
4. Neo4j: “Banco de Dados de Grafos”. Ele armazena os dados na forma de nós
e arestas para modelar relacionamentos complexos. É eficaz para consultas
de dados conectados. Imagem Docker: “neo4j”.
2
O Docker é um software de código aberto usado para implantar aplicativos dentro de containers
virtuais. A conteinerização permite que vários aplicativos funcionem em diferentes ambientes
complexos (HOSTINGER, 2023).
13
5. EMPRESAS QUE UTILIZAM NOSQL
Embora a utilização de banco de dados relacionais atualmente seja muito
comum nas diversas aplicações web, esta utilização no decorrer do tempo pode
acabar gerando futuros transtornos devido a sua forma engessada e estática de
manipular dados, e por conta desta característica os torna ultrapassados ou até
mesmo obsoletos.
Para lidar com a imensa quantidade de dados não estruturados ou
semiestruturados a utilização de Bancos de Dados NoSQL em muitas empresas
mundialmente conhecidas atualmente, se faz indispensável, visto que devido a
imensa quantidade de informação que surge todo dia sem um tipo de formatação
específica para armazenamento.
Entre essas empresas podemos citar Amazon, Google, Netflix e Facebook
(LINKEDIN, 2023), que fazem uso dos benefícios do NoSQL como escalabilidade,
disponibilidade etc, pois possuem uma linguagem de consulta simples com alta
escalabilidade e confiabilidade.
14
6. EXEMPLOS DE UTILIZAÇÃO
Para melhor compreensão e assimilação do funcionamento dos modelos de
banco de dados noSQL, será aqui apresentado um breve exemplo de utilização
prática. Depois de uma análise meticulosa do grupo, concluímos em utilizar o
MongoDB que é um tipo de banco de dados orientado a documentos e possui uma
vasta pré configuração disponível e uma excelente documentação.
Para fazer todo o processo de acesso ao banco, bem como sua utilização via
API e terminal, foi utilizado Docker, que possui atualmente em 2023, uma vasta
quantidade de recursos, bem como imagens de bancos de dados NoSQL que
podem ser facilmente feitas e produzidas por quem deseja conhecer e explorar o
mundo do Not Only SQL.
A Figura 5 mostra as imagens utilizadas para o processo de conteinerização,
e podem ser facilmente baixadas3 para quem já possui docker instalado em seu
computador.
Figura 5: screenshot das imagens Docker utilizadas.
Fonte: Docker Hub.
A imagem “mongo” é a imagem que contém todos os recursos para oferecer
o MongoDB de forma conteinerizada, enquanto o “mongo-express” é imagem que
possui uma API que facilita o processo de visualização e manipulação dos dados. A
estruturação de pastas está descrita na Figura 6.
3
[Link]
15
Figura 6: imagem de estruturação de pasta do projeto docker e código principal.
Fonte: Docker Hub4.
De forma geral basta criar uma pasta, e seguir a estruturação de pastas
descrita na imagem. Dentro da pasta docker criar um novo arquivo com o nome
“[Link]” com o código da imagem ou indo no próprio Docker Hub e
copiando o código fornecido na próxima página ao clicar na imagem “mongo”
(Figura 5).
Em seguida pelo terminal e estando no mesmo diretório do arquivo
“[Link]” executar o comando: “sudo docker-compose up -d”, e
depois basta acessar seu navegador na porta especificado pelo projeto, que neste
caso basta acessar o navegador e digitar o endereço: “[Link] A
Figura 7 mostra o resultado obtido.
4
[Link]
16
Figura 7: Imagem do resultado do projeto no link [Link]
Fonte: Autoria Própria.
Dentro do próprio site MongoDB, existe uma guia de documentação que pode
ser facilmente acessada e podendo até mesmo fazer alguns testes de CRUD5 (Criar,
Ler, Atualizar e Deletar dados). Como os comando são feitos via terminal acesse o
terminal com o seguinte comando ( com usuário e senha padrões, Figura 6):
● “sudo docker container exec -it docker_mongo_1 mongosh --username
root --authenticationDatabase”. A senha padrão é “example”.
Ao executar este comando será apresentado o terminal do MongoDB, no
qual poderá ser realizada as operações de CRUD descritas pelo site. A Figura 8
mostra um exemplo de inserção de dados via terminal Docker.
Figura 8: inserção de dados via terminal (MongoDB NoSQL).
Fonte: Autoria Própria.
5
[Link]
17
REFERÊNCIAS
AWS. O que é NoSQL?: bancos de dados não relacionais de alta performance com
modelos de dados flexíveis. Bancos de dados não relacionais de alta performance
com modelos de dados flexíveis. 2023. Disponível em:
[Link] Acesso em: 31 ago. 2023.
DEVMEDIA. O que é noSQL? - Java Magazine 86. 2010. Disponível em:
[Link]
0tecnologias%20noSQL%20n%C3%A3o%20t%C3%AAm,dentro%20de%20uma%2
0mesma%20aplica%C3%A7%C3%A3o. Acesso em: 31 ago. 2023.
LÓSCIO, Bernadette Farias; OLIVEIRA, Hélio Rodrigues de; PONTES, Jonas César
de Sousa. NoSQL no desenvolvimento de aplicações Web colaborativas.
Disponível em:
[Link]
QL_no_desenvolvimento_de_aplicacoes_Web_colaborativas/links/576aa72008aef2a
864d1ef8c/[Link].
Acesso em: 27 ago. 2023.
STRAUCH, Christof. NoSQL Databases. 2011. 149 f. TCC (Graduação) - Curso de
Computer Science And Media (Csm), Stuttgart Media University, Stuttgart
(Alemanha), 2011. Disponível em: [Link]
Acesso em: 31 ago. 2023.
DEVMEDIA. Banco de dados NoSQL: Um novo paradigma - Revista SQL Magazine
102. 2012. Disponível em:
[Link]
-magazine-102/25918. Acesso em: 27 ago. 2023.
18
HOSTINGER. O Que é Docker e Como Ele Funciona? – Docker Explicado. 2023.
Disponível em: [Link] Acesso em: 1
set. 2023.
ALURA. Big Data: Entenda mais sobre esse conceito. 2023. Disponível em:
[Link]
D+%5BPerformance%5D+-+Dynamic+Search+Ads+-+Artigos+e+Conte%C3%BAdos&
utm_source=adwords&utm_medium=ppc&hsa_acc=7964138385&hsa_cam=113843
29873&hsa_grp=111087461203&hsa_ad=662261334153&hsa_src=g&hsa_tgt=aud-5
39280195284:dsa-843358956400&hsa_kw=&hsa_mt=&hsa_net=adwords&hsa_ver=3
&gclid=CjwKCAjw3dCnBhBCEiwAVvLcu15akiA66sHgC5hbKWel4PKypy_tACVGX5-Vp
46wFtKjwDFilifmhBoCUGsQAvD_BwE. Acesso em: 3 set. 2023.
LINKEDIN. Por que Amazon, Google, Netflix e Facebook mudaram para NoSQL?
Disponível em:
[Link]
l-shannon-block-cfe. Acesso em: 3 set. 2023.