Blog

Postado em em 12 de maio de 2023

Introdução ao NoSQL e MongoDB

Nesta aula vou fazer uma introdução ao NoSQL e MongoDB, duas ferramentas usadas em situação mais específicas, porem, indispensáveis!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Fala Impressionadores! Você já ouviu falar em NoSQL? Eu preparei uma aula para dar uma breve introdução ao NoSQL e MongoDB.

Vou te explicar o que é NoSQL e quais os tipos de bancos de dados NoSQL. Um desses bancos é o MongoDB que vamos abordar nessa aula, o MongoDB é o banco de dados não relacional mais utilizado, então vou te ajudar a dar os primeiros passos nele…

Você vai aprender como fazer consultas básicas e como importar dados no MongoDB.

E aí, quer aprender mais sobre NoSQL e sobre o banco de dados MongoDB?

Então vem comigo que eu te ensino! – Introdução ao NoSQL e MongoDB

O que vamos aprender nesta aula?

  • 1 – O que é NoSQL?
  • 2 – Primeiro banco de dados, coleções e documentos dentro do MongoDB
  • 3 – Consultas ao Banco de Dados

1 – O que é o NoSQL?

Antigamente, dizia-se que:

“NoSQL significa ‘Não SQL’.”

“NoSQL é o oposto de SQL.”

“NoSQL veio para substituir o SQL.”

Na verdade, NoSQL significa: Not Only SQL, ou seja, “Não apenas SQL”.

O SQL é uma linguagem feita para manipular Bancos de Dados Relacionais, compostos por tabelas que se relacionam entre si, e essas tabelas são compostas por colunas e linhas.

2 – Primeiro banco de dados, coleções e documentos dentro do MongoDB

Porém, existe outro tipo de banco dados conhecido como Não Relacional, é aí que entra o NoSQL.

Esses tipos de bancos de dados existem desde o final da década de 1960, mas só passaram a ser reconhecidos como NoSQL com as necessidades de empresas como Facebook, Google e Amazon, por volta dos anos 2000.

Essas empresas vieram com uma nova demanda de tipos de dados que já não podiam ser trabalhados em um banco de dados relacional, era preciso usar um banco de dados Não relacional, então derivado do SQL surgiu o NoSQL.

Bancos de Dados NoSQL são cada vez mais usados em big data e aplicações web de tempo real (da ordem de terabytes e pentabytes).

Porém, ele ainda é usado em aplicações muito específicas, não tendo a mesma expressividade em termos de procura e mercado como a de bancos de dados relacionais.

ranking
ranking

Fonte: https://db-engines.com/en/ranking

Outro ponto importante é que dentre os primeiros 7 bancos de dados mais utilizados no mundo, somente o MongoDB é um banco de dados Não relacional, aparecendo em 5º lugar.

Isso não quer dizer que bancos de dados não relacionais não tem importância, na verdade, eles são indispensáveis, porém, seu uso ainda é muito específico.

Buscas pelo termo “NoSQL” em comparação ao termo “SQL” ainda são inexpressivas (de acordo com o Google Trends).

Temos também uma pesquisa de interesse ao longo do tempo:

comparação
comparação

Observe que o banco de dados SQL está muito acima em comparação ao NoSQL

SQL x NoSQL (diferenças)

características
características

Tipos de Bancos de Dados NoSQL

Diferente dos bancos de dados relacionais, que possuem um padrão de estrutura e linguagem, os bancos de dados NoSQL têm características específicas e particulares, não seguindo um padrão na linguagem de consulta.

Existem vários tipos de bancos de dados não relacionais e cada um tem a sua forma de trabalhar.

Geralmente, eles são reconhecidos conforme o modo como os dados são armazenados, e assim, divididos em alguns tipos de bancos de dados.

1. Gráfico:

Em um banco orientado a gráficos, não existem tabelas, documentos ou qualquer outra estrutura que seja comparável a uma tabela.

Neste tipo de banco, tudo que há são nós (vértices) e relacionamentos (arestas). O mais popular deles é o Neo4j.

2. Chave/Valor:

Neste caso todos os registros fazem parte da mesma coleção de elementos.

Fazendo uma comparação com os bancos de dados relacionais, é como se o banco de dados inteiro fosse uma única tabela que possui apenas duas colunas: uma chave, e o valor. Um exemplo desse tipo é o Redis.

3. Colunar:

A estrutura principal dos bancos colunares é basicamente uma grande tabela. Cada registro pode ter quantas e quais colunas precisar (schemaless).

Os bancos de dados colunares são os que mais se assemelham aos bancos de dados relacionais por terem uma “tabela” na sua estrutura, mesmo que, na verdade, sejam muito diferentes, já que os dados estão orientados a colunas internamente. Um exemplo desse tipo é o Cassandra.

4. Documento:

O banco de dados de estilo de documento usa o que equivale a um objeto como sua menor unidade lógica e uma coleção pode conter vários documentos.

Por não haver um esquema fixo, cada documento pode ter um número e um tipo de campo diferente, o que contribui para a flexibilidade. Um exemplo desse tipo é MongoDB.

Dentre todos esses tipos, nessa aula, vamos fazer uma introdução ao MongoDB, que é o principal banco de dados não relacional utilizado atualmente.

Links úteis:

– Instalação MongoDB: https://www.mongodb.com/try/download/community-kubernetes-operator

– Operadores MongoDB: https://www.mongodb.com/docs/manual/reference/operator/query/#query-selectors

– Download Notepad++: https://notepad-plus-plus.org/downloads/

3 – Consultas ao Banco de Dados – Introdução ao NoSQL e MongoDB

Após baixar o MongoDB uma janela vai abrir, nela vamos fazer uma Nova Conexão, recomendo que você faça a conexão padrão e clique em conectar.

Feito isso vamos para a tela inicial do MongoDB que é uma tela muito amigável como você pode ver na figura abaixo:

tela inicial
tela inicial

No canto superior esquerdo, clicando no sinal de + podemos inserir um novo banco de dados e clicando em Databases podemos ver os bancos de dados que vem como padrão do MongoDB.

Introdução ao NoSQL e MongoDB
create database

Como criar uma Database?

Clique no sinal de + e escolha um nome para a Database “HashtagNoSQL” e também o nome da coleção “Collection_01”. Observe que o programa já abre as pastas do lado esquerdo da tela.

Introdução ao NoSQL e MongoDB
create collection

Se fossemos fazer um paralelo aqui com os bancos de dados relacionais diríamos que o hashtagNoSQL seria o banco de dados.

Dentro deste banco de dados podemos armazenar coleções -> essas coleções são como tabelas, dentro delas temos os documentos que são registros da tabela, assim cada linha é um documento.

Esses documentos serão compostos por chave e valor, por exemplo, vamos colocar o nome do cliente e o valor, colocar o salário e o valor, etc.

Clicando em =Create collection podemos criar mais coleções.

Para excluir passe o cursor do mouse sobre as coleções e clique no ícone de lixeira, feito isso informe o nome da coleção e então já pode excluir. Se você excluir todas as coleções de um banco de dados o banco criado para essas coleções também é excluído.

Quando abrirmos a coleção, vamos ver uma janela como a imagem abaixo, nesta imagem temos um botão para adicionar valores, podemos adicionar dessa forma ou direto pela interface do MongoDB no formato JSON, ou CSV.

baixar documentos
baixar documentos

Como adicionar pela interface?

Para adicionar pela interface clique em ADD DATA e escolha a opção Insert document, após clicar, vai se abrir uma janela onde podemos escrever um código com o que iremos armazenar.

Cada documento criado vai ter um ID gerado automaticamente!

insert document
insert document

Para criar um documento vamos seguir uma estrutura, vamos abrir uma chave e dentro dela criar uma estrutura de chave-valor, ou seja, o nome do primeiro campo e seu valor associado, o nome do segundo campo e seu valor associado e assim sucessivamente.

{

“Curso”: “Excel Impressionador”,

“Ano de Lançamento”: 2016,

"Módulos Disponíveis": 20,

"Categoria": "Pacote Office",

"Cursos Recomendados": ["VBA Impressionador", "Power BI Impressionador"],

"Avaliação dos Alunos": 10

}

Observe que se você esquecer de colocar uma vírgula, o programa não permite que você crie o documento, mas fazendo tudo certo apenas clique em Insert e logo os dados ficam disponíveis na tela.

ADD DATA
ADD DATA

Podemos criar um ou mais novos documentos fazendo o mesmo procedimento e se passarmos o mouse sobre as linhas criadas vamos ver 4 ícones do lado direito:

  • O primeiro ícone serve para atualizar
  • O segundo para copiar o código
  • O terceiro para clonar o documento (assim você pode editar por cima aproveitando a estrutura).
  • O quarto ícone é a lixeira para excluir o documento.

Usando a opção 3 “clonar”, você consegue polpar tempo de trabalho e inserir diversos documentos!

[{

"Curso": "Power BI Impressionador",

"Ano de Lançamento": 2016,

"Módulos Disponíveis": 26,

"Categoria": "Microsoft",

"Cursos Recomendados": ["Excel Impressionador", "SQL Impressionador"],

"Avaliação dos Alunos": 9.5

},

{

"Curso": "Python Impressionador",

"Ano de Lançamento": 2020,

"Módulos Disponíveis": 40,

"Categoria": "Programação",

"Cursos Recomendados": ["Power BI Impressionador", "SQL Impressionador"],

"Avaliação dos Alunos": 9.5

},

{

"Curso": "SQL Impressionador",

"Ano de Lançamento": 2021,

"Módulos Disponíveis": 28,

"Categoria": "Programação",

"Cursos Recomendados": ["Power BI Impressionador", "Python Impressionador"],

"Avaliação dos Alunos": 10

}

]

Como inserir arquivos CSV?

Para inserir arquivos CSV você deve ter os arquivos no formato da imagem abaixo:

Introdução ao NoSQL e MongoDB
notepad++

Existe um programa com download gratuito que deixa os arquivos nessa formatação de estilo e cores, o nome do programa é Notepad++.

Introdução ao NoSQL e MongoDB
notepad++

Após deixar o arquivo neste formato vamos baixar, para isso clique no ícone de Novo no canto superior esquerdo:

Introdução ao NoSQL e MongoDB
novo

-> Na nova tela clique em Arquivo

-> salvar como

-> coloque o nome do arquivo e em Tipo escolha a opção JSON file.

Feito isso volte em ADD DATA -> Import JSON or CSV file -> Selecione e baixe o arquivo salvo.

Introdução ao NoSQL e MongoDB
JSON or CSV

Consultas Básicas

filtro
filtro

Na parte de consultas podemos utilizar o filtro (filter), o campos (Project), sort (ordenar), etc.

Filter

{“Categoria”: “Pacote Office”}

Clicando em Find do lado direito da tela todos os produtos da categoria pacote Office vão ser listados conforme a busca que fizemos no código acima.

Project

{“Curso”:1, “Categoria”: 1, _id: 0}

O project serve para filtrar por campo do documento, então vamos colocar o nome do campo que queremos visualizar e onde queremos ver colocamos o número 1, o número 0 é para os campos que não serão filtrados, isso quando no filtro temos zero e 1.

Se estiver tudo zerado na pesquisa a interpretação muda, veja abaixo:

{“Curso”:0, “Categoria”: 0, _id: 0}

Se colocarmos 0 em todos os campos então ele retorna os campos opostos, ou seja, todos os outros campos com exceção dos indicados nas chaves.

Sort

{“Ano de Lançamento”: 1}

Neste caso o número 1 representa a ordem crescente e -1 a ordem decrescente.

Caso algo seja escrito de forma errada no código então a opção de Find fica indisponível até a correção do código.

Temos também 3 campos importantes do lado direito

filtro
filtro
  • O campo MaxTimeMS serve para determinar o tempo máximo de espera pela consulta.
  • O campo Skip é para determinar quantos documentos queremos pular para começar a consulta.
  • O campo Limit determina a quantidade de documentos vamos mostrar como resultado da pesquisa.

Também podemos usar os 3 ícones abaixo dos filtros para escolher a forma que vamos visualizar os documentos.

formatação
formatação

O primeiro é para mostrar o código no formato que estamos usando nesta aula, como uma lista:

Introdução ao NoSQL e MongoDB
lista

O segundo mostra em formato de código:

Introdução ao NoSQL e MongoDB
código

E o terceiro mostra o código como tabela:

Introdução ao NoSQL e MongoDB
tabela

Para que as visualizações fiquem com um mesmo valor de colunas e linhas, os campos de cada documento devem ter o mesmo nome, modificando apenas o valor em cada linha.

Dessa forma os filtros ficam mais organizados e todas essas configurações podem ser usadas em conjunto!

Conclusão – Introdução ao NoSQL e MongoDB

Na primeira parte desta aula trouxe um resumo sobre o que é o NoSQL e o que é o MongoDB. Na segunda parte procurei trazer uma introdução sobre como usar o banco de dados não relacional MongoDB.

Se você ainda não sabe o que é este banco, para que é usado e como começar a conhecer esta ferramenta, aproveite esta aula onde tiro as principais dúvidas sobre este tema!

Eu fico por aqui! Um abraço,

Hashtag Treinamentos

Para acessar outras publicações de SQL, clique aqui!


Quer aprender mais sobre SQL com um minicurso básico gratuito?

Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador