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 é 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.
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:
Observe que o banco de dados SQL está muito acima em comparação ao NoSQL
SQL x NoSQL (diferenças)
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:
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.
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.
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.
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!
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.
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:
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:
Existe um programa com download gratuito que deixa os arquivos nessa formatação de estilo e cores, o nome do programa é Notepad++.
Após deixar o arquivo neste formato vamos baixar, para isso clique no ícone de Novo no canto superior esquerdo:
-> 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.
Consultas Básicas
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
Também podemos usar os 3 ícones abaixo dos filtros para escolher a forma que vamos visualizar os documentos.
O primeiro é para mostrar o código no formato que estamos usando nesta aula, como uma lista:
O segundo mostra em formato de código:
E o terceiro mostra o código como 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!
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,
Para acessar outras publicações de SQL, clique aqui!
Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.