Primeiras aulas do curso Modelagem MongoDB: relacionamentos e cardinalidade

Modelagem MongoDB: relacionamentos e cardinalidade

Criando um modelo conceitual - Introdução

Sejam bem-vindos ao curso de modelagem de dados com o Mongodb, nesse curso, a gente vai aprender muitos conceitos que são fundamentais para quem quer trabalhar com banco de dados de uma maneira mais eficiente, são conceitos muito importantes, que são os conceitos de modelagem.

A gente vai abordar aqui algo de uma maneira bem prática, a gente vai construir uma modelagem de dados para um aloja virtual, então a gente vai vir aqui no VisualStudio Code e a gente vai ir digitando comandos para ir modelando essa loja.

A gente vai ter aqui muitas coleções aqui, a gente vai armazenar clientes, lojas, pedidos, produtos e nisso, a gente vai estar abordando alguns conceitos muito importantes de cardinalidade, de um para um, um para muitos, muitos para muitos.

Se você já ouviu essas palavras e quer saber melhor como que elas... o que que elas significam de fato e como você pode utilizar elas no banco de dados, esse curso é para você. Vejo vocês aqui no curso.

Criando um modelo conceitual - Levantamento de requisitos

O projeto que a gente vai desenvolver nesse curso é a modelagem dos bancos de dados de uma loja virtual, a gente aqui não vai ter nada visual ou algo que a gente possa... uma interface que a gente possa visualizar o nosso programa.

Por isso, a gente vai utilizar aqui como exemplo, para a gente ver mais ou menos como que ficaria uma loja virtual, seria aqui a loja virtual da Casa do Código. A gente vai estar aqui modelando um banco de dados que uma loja desse tipo vai usar.

E numa loja desse tipo a gente tem, por exemplo, produtos a gente tem aqui na lista de produtos, a gente vai poder realizar compras, a gente vai poder selecionar aqui as compras que a gente vai fazer em um carrinho.

Agora que a gente já sabe o que que a gente vai fazer, vamos direto para o código, pera aí, a gente vai aqui modelar uma estrutura de um banco de dados, só que a gente vai modelar utilizando o quê? A gente vai partir de qual ponto? Como que a gente começa a fazer isso?

E o nosso analista aqui, ele preparou para a gente uma lista de requisitos, que são funcionalidades que vão ser essenciais para o nosso programa funcionar e a gente vai precisar modelar o nosso banco de dados, para que essas funcionalidades possam ser possíveis.

A primeira delas é que a loja precisa ter uma opção de listar, a gente vai precisar litar todos os produtos que uma loja virtual tem. O próximo é que a gente vai precisar cadastrar um novo produto, a gente também vai precisar cadastrar um cliente e realizar uma compra de produtos.

Esses vão ser os requisitos iniciais, a gente vai precisar modelar o nosso banco de dados, para que a gente consiga atender esses requisitos, o que que a gente vai precisar fazer? A gente vai precisar aqui listar os produtos da loja, vamos precisar cadastrar produtos.

Esse produtos é uma coisa que a gente vai precisar manipular de uma maneira um pouco frequente. Então, faz sentido a gente separar isso, para a gente começar a pensar em como que a gente pode representar isso no banco de dados, esse tal de produto aqui, que a gente vai precisar manipular.

Outra coisa que a gente também vai precisar manipular com uma certa frequência, aqui, baseado nos nossos requisitos é cliente, a gente vai precisar fazer um cadastro deles, então vamos já separar aqui também o cliente. A gente sabe aqui que a gente vai ter duas coisas, dois modelos aqui.

A gente vai ter o produto e o cliente para a gente representar no nosso banco de dados. Só que essas coisas, elas não se chamam coisas e nem modelos, elas se chamam entidades, esse é o nome que a gente dá para eles, quando a gente está construindo aqui o modelo conceitual do nosso banco de dados.

E nos próximos vídeos aqui, a gente vai explorar melhor esse modelo conceitual, antes de a gente começar a escrever código.

Criando um modelo conceitual - Coleção de produtos

No último vídeo, a gente começou a construir um modelo conceitual dos dados que a gente vai ter que representar no banco e isso serve muito bem para a gente ter uma visão mais alto nível, do que que a gente vai precisar implementar no banco.

Mas agora, a gente pode começar a detalhar um pouco mais aquelas entidades que a gente começou a desenhar, por exemplo, a gente tem aqui a entidade produto e a cliente.

A gente pode pegar aqui uma, vamos pegar o produto e vamos começar a detalhar eles mais, no sentido de o que que um produto deve ter para ser guardado no banco?

O nosso analisa, ele passou aqui para a gente algumas informações que vão caracterizar um produto, as informações aqui vão ser uma marca, um modelo, uma descrição, sistema, memória, chips e o preço, por que tudo isso? Porque o nosso aqui na nossa loja, vai ser um smartphone, vai ser um celular.

Então, ele tem aqui algumas informações que são características de um celular, como os chips e a memória e o sistema dele. Tendo essas informações aqui, vamos começar construir um documento no Mongodb, Eu vou passar aqui para o editor e no editor, eu vou usar o VisualStudio Code.

Eu já tenho baixado aqui os arquivos do projeto e ele vai ter aqui um arquivo que chama modelagem_da_loja.mongo, esse arquivo aqui, ele está vazio, mas a gente vai começar a escrever nele agora. Então, vou aumentar aqui a letra. Pronto.

Agora, vamos fazer o seguinte, criar um documento para armazenar os produtos em uma coleção, porque até agora, a gente não nenhuma no nosso banco. Então, vamos lá, db.produtos é o nome da minha coleção “.inserOne” e vamos colocar aqui o documento.

Ele vai ter que ter aquelas características que a gente tinha mencionado, que vai ser a marca, vai ser o modelo, eu vou colocar todas as características aqui, a gente já preenche. A descrição, sistema, a memória, os chips e o preço. Eu vou cadastrar aqui um iPhone.

Então, eu vou cadastrar aqui a marca Apple, o modelo é um iPhone 11, vou colocar o espaço aqui. A descrição dele vai ser, “O celular mais novo da Apple, com duas câmeras”. Pronto. Muita coisa aqui. Vou arrumar, escrevi errado aqui, celular mais. Pronto.

Liberar aqui um pouco de espaço para a gente enxergar, o sistema dele é o IOS 13, memória, ele tem 128GB e agora os chips, eu poderia colocar assim entre aspas também. E você deve estar se perguntando, por que que eu estou colocando as informações aqui entre aspas.

Eu estou colocando elas entre aspas aqui, porque elas são de um tipo de dados que se chama string, que serve para representar texto, para a gente representar sequências de letras de caracteres.

Só que o chip, ele não é muito bem um texto, se a gente precisar fazer alguma operação de soma, se a gente precisar fazer alguma operação de subtração, é bom que a gente tenha um número, se for uma string, a gente não vai conseguir fazer essas operações nele.

Para a agente representar um número aqui no Mongodb, é só a gente digitar direto o número, aqui no caso, o número é um tipo de dados, que se chama integer e agora aqui no preço, a gente vai colocar o preço dele, que é o 4.999.99, só que um ponto interessante de mencionar.

A gente gravou aqui o chip com o número 1 e ele é um número inteiro, aqui no preço, a gente está tendo um número fracionado, ele está tendo um número que vai ter um ponto decimal aqui, para a gente representar os centavos. O que que acontece se a gente executar essa instrução aqui agira?

Vamos ver. Antes de a gente executar, a gente só vai precisar conectar no banco de dados. Se o no seu VisualStudio Code, estiver mostrando essa mensagem, aqui para conectar, clica nele, que agente conecta. Eu vou colocar aqui para eu escolher o bando de dados local. Pronto.

A gente já está conectado no banco loja, só faltou a gente colocar a vírgula depois de cadas umas dessas características do produto. Vamos executar aqui, vou colocar execute. Para eu executar essa operação e ele deu ok, vamos ver o que que aconteceu com o nosso preço aqui.

Se a gente entrar agora no Bongodb Compass, eu vou recarregar ele aqui, ele não encontrou aqui. Se isso acontecer para você também, se ele mostrar aqui que não conseguiu encontrar o banco de dados, não se preocupa, isso as vezes acontece.

Se a gente deixar as vezes ele muito tempo aberto, ele dá esse tipo de erro. Então, vamos fechar, vou vir aqui e vou abrir ele de novo. Opa, ele não fechou. Quit. Pronto. Mongodb Commpass. Está abrindo. Pronto, agora que ele terminou de abrir, vamos clicar aqui em conect.

A gente já tem aqui o nosso banco, tem o banco loja e já temos a coleção de produtos, que foi a coleção que a gente deu o nome aqui para ela. Então, ele já criou, vamos ver o nosso documento. Já temos aqui o nosso Iphone 11. Se a gente clicar aqui para editar, nesse ícone que é um lápis, em cima desse documento, vamos clicar nele.

Olha que bacanal, ele mostra os tipos de dados aqui para a gente, a gente pode ver que o texto que a gente digitou, ele tem o tipo string, modelo aqui também tipo string, a descrição também, a memória. Só que os chips aqui, ele mostrar como int 32, é o tipo de dados, inteiro, para números inteiros.

E olha o preço, o que que aconteceu, quando a gente colocou o ponto, ele ficou aqui, tipo double, que é um tipo que a gente pode utilizar quando a gente tem uma cada decimal. Só que tem uma coisa muito importante aqui, esse tipo double, ele não é recomendado quando a gente vai se tratar de valores monetários, como o preço aqui. A gente está tratando desses 5 mil aqui, quase R$ 5.000,00.

Então é muito importante que a gente tenha o máximo de precisão que a gente tiver e para isso, existe um tipo chamado decimal e ele é o tipo que a gente deve usar quando a gente se trata de valores que podem ter uma casa decimal e são valores monetários, que a gente precisa de alta precisão.

Então, vamos fazer um ajuste aqui, eu vou vir aqui nesse documento, eu vou remover ele aqui pelo Mongodb Compass, mesmo, que a gente já vai adicionar ele de novo. Delete. Aqui, então no VisualStudio Code, ao invés da gente colocar o preço diretamente, a gente vai iniciar um novo NumberDecimal, eu vou me instanciar aqui, esse objeto.

A gente está colocando aqui esse mesmo valor, só que ele não vai ser um tipo double, vai ser um tipo decimal, só que a extensão aqui do VisualStudio Code, ela não suporta esse tipo. Então, a gente vai ter que inserir ele pelo termina. Eu vou abrir aqui o terminar do VisualStudio Code. Abri.

Agora, se a gente executar Mongo, já estamos aqui no terminal do Mongodb, vou colocar use loja, para ele conectar no banco de dados chamado loja e a gente pode copiar aqui, dei o “Ctrl + A”, “Ctrl + C” e eu vou dar aqui um “Ctrl + V” para colar.

Enter, pronto, inseriu. Vamos ver no Compass, se eu vir aqui no Compass, recarregar, ele já mostrou aqui o preço, agora aqui no preço, a gente pode alterar esse número aqui, o 499.99, ou seja, quase 5 mil. Agente pode vir aqui e colocar o tipo decimal, vamos instanciar aqui um objeto que se chama NumberDeciamal.

Então, NumberDecimal, então o NumberDecimal, a gente vai colocar o valor aqui entre parênteses, só que a gente não vai passar o diretamente o número para ele, a gente vai lembrar de colocar aqui entre aspas. Coloquei aqui entre aspas. Só que, no VisualStudio Code, ele não suporta a instanciação aqui desse objeto.

Então, isso ano tem problema nenhum, a gente vai selecionar aqui, vamos copiar ele e a gente vai executar isso daqui no terminal. Vamos abrir o terminal do VisualStudio Code mesmo, vou colocar aqui new terminal, digitar mongo, para ele iniciar o terminal do Mongodb, digitar use loja aqui, para ele conectar no nosso banco de dados que se chama loja.

E agora, eu posso dar um “Ctrl + V” para ele colar o texto que a gente copiou, se eu apetar aqui “Enter”, ele inseriu o nosso documento e se eu abrir aqui o Compass, vou abrir o Compass. Pronto, está aqui o Compass. Se eu recarregar aqui a lista de documentos.

Legal, ele mostrou o nosso Iphone 11 também e ele colocou aqui o tipo como decimal, 128 é exatamente o tipo que a gente quer. Assim, a gente sabe que a gente não vai ter problemas com ele no futuro e a gente está armazenando com o tipo correto para um valor monetário.

Sobre o curso Modelagem MongoDB: relacionamentos e cardinalidade

O curso Modelagem MongoDB: relacionamentos e cardinalidade possui 125 minutos de vídeos, em um total de 44 atividades. Gostou? Conheça nossos outros cursos de NoSQL em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda NoSQL acessando integralmente esse e outros cursos, comece hoje!

Plus

  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$85
à vista R$1.020
Matricule-se

Pro

  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$120
à vista R$1.440
Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas