Olá! Meu nome é Danielle Oliveira, instrutora da Escola de Dados da Alura, e irei te acompanhar neste curso de MongoDB: modelagem de dados!
Danielle é uma mulher de pele morena, cabelos cacheados e olhos castanhos. Está vestindo uma blusa lisa na cor preta e encontra-se sentada. Ao fundo, há uma parede branca sem decoração, com uma iluminação na cor verde.
Iniciaremos nossos estudos conhecendo o projeto a ser desenvolvido, que é da empresa Show Bank, que está passando por problemas em sua base. Precisaremos entender o que considerar ao se modelar um projeto de banco de dados, além de conhecer como as transações são aplicadas no MongoDB.
Conheceremos, ainda, as estruturas de dados que podem ser utilizadas para estruturar e armazenar os nossos dados internamente nos documentos, que é a estrutura de dados incorporados e a estrutura de referência.
Em seguida, entenderemos como o MongoDB trabalha com os relacionamentos e conheceremos cada um deles, que é o relacionamento 1:1 com documentos incorporados, 1 para muitos com documentos incorporados e 1 para muitos com referência de documentos.
Depois, conheceremos uma terceira forma de estruturar os nossos dados, que é a estrutura de árvore, utilizada para armazenar dados de forma hierárquica. Aprenderemos, ainda, os padrões que podem ser utilizados para definir como vamos armazenar nossos dados. São eles:
Para finalizar, colocaremos em prática alguns padrões levantados pelo time do MongoDB que podemos utilizar para modelar o nosso banco de dados. Vamos lá?
Conseguimos resolver os problemas que a empresa Show Bank estava enfrentando utilizando a validação de esquema - um recurso disponibilizado pelo MongoDB onde criamos regras de validação para os nossos campos que devem ser seguidas pelos nossos documentos para que possamos ser inseridos nas nossas coleções.
Porém, novos problemas surgiram e já não podem ser resolvidos com a validação de esquema. Entre eles, podemos citar a lentidão no momento de executar consultas, a estruturação de alguns campos nas coleções, dados que são retornados em todas as consultas sem que sejam necessários e a referenciação entre documentos.
Para que possamos entender melhor estes problemas, vamos verificar como estão as duas coleções que já criamos: de contas e de clientes.
No SQL Booster, software que utilizamos no curso anterior para realizar nossas consultas, abriremos uma guia e nos conectaremos ao banco de dados showbank
para buscar nossas coleções.
Para isso, digite o comando a seguir, selecione-o e tecle "Ctrl + F6" para executá-lo:
db.clientes.find({})
Serão retornados alguns documentos armazenados dentro desta coleção.
Se verificarmos o campos _id
, Nome
e cpf
, por exemplo, veremos que se tratam de dados do tipo string. O campo endereco
, por sua vez, reúne todos os dados de rua, número, bairro, cidade, estado e CEP em um só dado, como uma grande string. A formatação deste campo de endereco
gerou problemas para se trabalhar com os dados, então precisamos separá-los.
Outro ponto que também precisaremos resolver está na nossa coleção de contas. Para consultá-la, digite o comando a seguir, selecione-o e e tecle "Ctrl + F6" para executá-lo:
db.contas.find({})
Os documentos desta coleção nos serão retornados. Nela, temos o campo de CPF
, mas ele não está sendo referenciado ao documento da coleção de clientes, então é outra questão se precisamos resolver.
A validação de esquemas é apenas um dos recursos que podemos utilizar para modelar o nosso projeto de banco de dados, mas há outros disponíveis. Vamos conhecê-los!
Ao se modelar um projeto de banco de dados, precisamos levar em consideração as necessidades da aplicação e como ela utilizará o banco de dados.
Para tentar entender como funcionará a estruturação do banco de dados e qual o foco da nossa aplicação, a pergunta principal é: o que preciso levar em consideração para modelar as coleções?
Podemos, ainda, elencar outros questionamentos para tentar entender como funcionará nossa aplicação. Nós os responderemos pensando no projeto da Show Bank:
Pelo que já trabalhamos e considerando os problemas enfrentados, podemos dizer que o foco da empresa é tanto a consulta quanto o armazenamento.
Não! Nem sempre todos os dados precisarão ser retornados. Supondo que temos o endereço do cliente em uma grande string, por exemplo, não precisaremos retorná-lo sempre que fizermos uma consulta aos dados.
Para a Show Bank, que é um banco digital, vamos considerar que estes dados precisam ficar armazenados por tempo inderteminado, sem que saibamos quando serão removidos, ou sequer se serão removidos algum dia.
Levando em consideração todas essas perguntas e respostas é que vamos estruturar as coleções de contas e de clientes. Precisamos, ainda, estar atentos a outros fatores como, por exemplo, a quantidade de coleções existentes e a quantidade de documentos que estão armazenados em cada coleção. Isso, porque, dependendo da quantidade de documentos, quando formos realizar consultas ou atualizar os dados, algum gargalo pode ser gerado.
Além disso, a partir da versão 4.0 o MongoDB passou a implementar transações ACID, o que precisamos levar em consideração ao modelar um projeto de banco de dados neste software.
A seguir, entenderemos um pouco mais sobre o funcionamento das transações ACID!
O curso MongoDB: modelagem de dados possui 96 minutos de vídeos, em um total de 50 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:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.