7
Engenharia de Software
UMG
21
Engenharia de Software
UMG
8
Engenharia de Software
UMG
1
Engenharia de Software
UMG
23
Engenharia de Software
UMG
3
Engenharia de Software
UMG
1
Engenharia de Software
UMG
2
Engenharia de Software
UMG
11
Engenharia de Software
UMG
47
Engenharia de Software
UMG
Texto de pré-visualização
Bancos de Dados Não Relacionais Roteiro Aula Prática 2 ROTEIRO DE AULA PRÁTICA NOME DA DISCIPLINA Bancos de Dados Não Relacionais Escolher um item Escolher um item OBJETIVOS Definição dos objetivos da aula prática Criar e manipular um banco de dados não relacional no MongoDB INFRAESTRUTURA Instalações Laboratório de Informática Materiais de consumo Descrição Quantid de materiais por procedimentoatividade Computador 01 por aluno Software Sim X Não Em caso afirmativo qual Pago Não Pago X Tipo de Licença Freeware Descrição do software MongoDB Community Server O banco de dados MongoDB é um software de banco de dados orientado a documentos livre de código aberto e multiplataforma escrito na linguagem C Este banco é classificado como um programa de banco de dados NoSQL httpswwwmongodbcomtrydownloadcommunity MongoDB Compass O Compass é uma ferramenta interativa para consultar otimizar e analisar os dados do bando de dados MongoDB de forma gráfica é instalado opcionalmente pelo mesmo instalador do MongoDB Server 3 Equipamento de Proteção Individual EPI NSA PROCEDIMENTOS PRÁTICOS ProcedimentoAtividade Nº 1 Atividade proposta Criar um banco de dados no MongoDB Compass inserir e atualizar documentos em uma collection Procedimentos para a realização da atividade Nesta atividade você deverá criar um banco de dados no MongoDB Compass chamado de lojadb Ele será utilizado no contexto de uma loja onde você deverá cadastrar documentos referentes a vendas efetuadas pela loja Etapa 1 Crie o banco de dados e em seguida realize a criação de uma collection vendas Agora insira os seguintes dados conforme o conhecimento adquirido nas aulas utilizando o comando insert pela Shell do mongodb ou graficamente pelo Compass Inicialmente vamos inserir apenas os dados básicos dos clientes que realizaram compras na loja Para isso utilize as informações na tabela a seguir Note que o campo telefone deverá ser adicionado como uma Array NOME CLIENTE VIP 1 SIM 0 NÃO EMAIL TELEFONE João 1 joaoemailcom 99991111 88881111 Marcos 0 99992222 Maria 1 mariaemailcom 99993333 88883333 99883000 4 Note que como estamos falando de um banco de dados não relacional nós não temos uma estrutura definida Então cada cliente não precisa necessariamente ter os mesmos campos Por exemplo o cliente Marcos não tem email portanto o campo email não precisa ser adicionado em sua entrada Além disso veja que os três clientes têm quantidades diferentes de telefones Etapa 2 Vamos continuar o processo de inserção de dados que iniciamos na etapa anterior Para isso você terá de ATUALIZAR documentos já presentes na collection Vamos adicionar o endereço de cada cliente conforme a tabela a seguir O endereço deverá ser inserido como um campo do tipo Objeto separando dentro dele a rua número complemento cidade e estado NOME ENDEREÇO João Rua Um 1000 Apto 1 Bloco 1 São PauloSP Marcos Rua Dois 4000 CampinasSP Maria Rua Três 3000 LondrinaPR Por fim vamos adicionar os dados das compras efetuadas por cada cliente Os dados das compras deverão ser adicionados nos mesmos documentos com as informações dos clientes Um outro detalhe é que agora você irá utilizar o conceito de Arrays de Objetos no campo compras NOME COMPRAS João Nome do produto notebook Preço R 500000 Quantidade 1 Marcos Nome do produto Caderno Preço R 2000 Quantidade 1 Nome do produto Caneta 5 Preço R 300 Quantidade 5 Nome do produto Borracha Preço R 200 Quantidade 2 Maria Nome do produto Tablet Preço R 250000 Quantidade 1 Nome do produto Capa para tablet Preço R 5000 Quantidade 1 ProcedimentoAtividade Nº 2 Atividade proposta Realizar pesquisas e consultas em um banco de dados não relacional MongoDB Até aqui você já criou o banco de dados lojadb uma collection chamada vendas e inseriu documentos dados nesta collection inclusive atualizandoos posteriormente Agora você irá utilizar este banco que já está criado para realizar consultas Para cada consulta que realizar informe o comando correto DICA nas consultas que realizar por linha de comando utilize pretty ao final do comando de busca para que o resultado seja identado ao ser exibido Realize uma consulta que retorne todos os documentos da collection Realize uma consulta que localize as informações da cliente Maria Realize uma busca que retorna os clientes VIPs da loja VIP 1 Retorne apenas o campo nome de cada um 6 Realize uma consulta que exiba as compras efetuadas por Marcos Realize uma consulta que retorne todos os nomes de produtos comprados por todos os clientes Nesta consulta em específico utilize a linha de comando do MongoDB Checklist Acessar o MongoDB Compass Criar um banco de dados no MongoDB Criar uma collection em um banco de dados Inserir documentos na collection criada Atualizar a collection vendas no banco de dados lojadb de acordo com as informações das tabelas Navegar até a collection vendas do banco de dados lojadb Realizar as 5 consultas especificadas RESULTADOS Resultados da aula prática É esperado que ao término da prática o aluno saiba desenvolver bancos de dados não relacionais orientados a documentos utilizando o MongoDB incluindo a criação de collections e inserçãoatualização de documentos bem como a realização de consultas à base de dados UNIVERSIDADE CURSO ALUNO A RELATÓRIO AULA PRÁTICA BANCO DE DADOS NÃO RELACIONAIS CIDADE UF 2025 ALUNO A RELATÓRIO AULA PRÁTICA BANCO DE DADOS NÃO RELACIONAIS Relatório técnico apresentado à disciplina Banco de Dados Não Relacionais como parte da avaliação da unidade curricular CIDADE UF 2025 SUMÁRIO 1 INTRODUÇÃO5 2 DESENVOLVIMENTO6 3 RESULTADOS7 4 CONCLUSÃO12 REFERÊNCIAS13 APÊNDICES14 1 INTRODUÇÃO Os bancos de dados não relacionais NoSQL surgiram como resposta às limitações dos modelos relacionais diante do crescimento do volume variedade e velocidade dos dados nas aplicações modernas Diferentemente das tabelas rigidamente normalizadas do modelo relacional os bancos NoSQL adotam estruturas flexíveis como documentos pares chavevalor colunas ou grafos permitindo evolução do esquema alta disponibilidade e escalabilidade horizontal Nesse contexto o MongoDB um banco orientado a documentos destacase pela representação de dados em JSONBSON pela facilidade de modelagem de objetos do domínio e por operar consultas expressivas sobre documentos aninhados e arrays Esta atividade prática da disciplina Bancos de Dados Não Relacionais tem como objetivo criar e manipular um banco de dados no MongoDB utilizando tanto o MongoDB Compass interface gráfica quanto o mongosh linha de comando Para tornar o exercício mais próximo de um cenário real foi definido o domínio de uma loja os dados dos clientes seus contatos endereços e compras foram modelados em uma única collection vendas utilizando objetos e arrays de objetos explorando justamente a flexibilidade de esquema proporcionada pelo MongoDB Ao longo da prática foram executadas as etapas essenciais de um ciclo de trabalho com NoSQL criação do banco e da collection inserção de documentos com campos opcionais por exemplo cliente sem email atualizações para inclusão de subdocumentos endereço e arrays compras e consultas específicas para recuperação e projeção de dados incluindo filtros por atributos simples clientes VIP acesso a campos aninhados compras por cliente e operações agregadas extração dos nomes de produtos Essas operações evidenciam como o modelo de documentos reduz a necessidade de joins mantendo os dados relacionados no mesmo registro e simplificando leituras frequentes do aplicativo Além do domínio técnico a prática reforça competências importantes para o desenvolvimento profissional modelagem orientada a documentos escrita de consultas idiomáticas no MongoDB compreensão de tradeoffs entre consistência desempenho e flexibilidade e uso combinado de ferramentas gráficas e de shell Como resultado o estudante consolida a capacidade de escolher e aplicar um banco NoSQL em cenários onde a evolução rápida do esquema a heterogeneidade dos dados e a agilidade de desenvolvimento são fatores críticos 2 DESENVOLVIMENTO A atividade foi conduzida no MongoDB Compass conectado a uma instância local do MongoDB Community Server Após confirmar a conexão com o servidor criouse o banco de dados denominado lojadb e dentro dele a collection vendas A opção por uma única collection para representar clientes e suas compras teve como objetivo explorar a flexibilidade de esquema típica de bancos de dados orientados a documentos reduzindo a necessidade de junções e mantendo informações correlatas em um mesmo registro As Figuras 1 e 2 apresentam respectivamente a conexão ativa no Compass e a estrutura inicial com o banco criado Em seguida realizouse a inserção dos registros de clientes contemplando campos de identificação status de cliente VIP e formas de contato Um ponto importante nesta etapa foi a adoção de um array para o campo de telefone permitindo múltiplos números por cliente sem a rigidez de um esquema fixo Além disso respeitouse a natureza esquemaless do MongoDB ao aceitar a ausência de determinados atributos quando não havia dados por exemplo cliente sem email reforçando o princípio de que documentos não precisam compartilhar exatamente a mesma estrutura A Figura 3 exibe a collection populada com os três clientes evidenciando a presença de arrays e campos opcionais Para aproximar o exercício de um cenário real de aplicação os documentos foram atualizados com um campo de endereço e com o histórico de compras O endereço foi modelado como um subdocumento agregando rua número complemento cidade e estado em um único atributo o que melhora a coesão e a legibilidade dos dados Já as compras foram representadas por um array de objetos em que cada item corresponde a um produto adquirido incluindo nome preço e quantidade Esse desenho facilita consultas analíticas comuns como listagens de itens comprados ou somatórios por cliente preservando ao mesmo tempo a simplicidade do documento principal As Figuras 4 e 5 mostram respectivamente um panorama da collection com os clientes completos e um detalhamento do documento da cliente Maria onde é possível visualizar o endereço e a lista de compras Concluída a etapa de modelagem e atualização foram realizadas consultas de verificação e exploração todas sobre a collection vendas a listagem de todos os documentos para conferência geral a recuperação específica do documento da cliente Maria para validar a presença de todos os campos a filtragem dos clientes VIP retornando apenas seus nomes para demonstrar projeção de campos a exibição das compras de um cliente específico Marcos confirmando a estrutura do array de compras e por fim a obtenção de todos os nomes de produtos comprados por todos os clientes evidenciando a facilidade de acessar e percorrer arrays aninhados As Figuras 6 a 9 registram os resultados dessas consultas na interface do Compass comprovando que a base está consistente e que as operações de leitura sobre documentos e subdocumentos foram bemsucedidas Do ponto de vista de modelagem a prática ilustra claramente os benefícios do modelo de documentos em cenários de cadastro e vendas os dados pertinentes a um mesmo contexto de uso perfil do cliente contatos endereço e compras permanecem agregados o que simplifica o acesso e reduz a sobrecarga de junções frequentes que seriam necessárias em um modelo relacional tradicional A possibilidade de evoluir o documento ao longo do tempo adicionando novos campos conforme a necessidade sem migrações complexas de esquema reforça a agilidade de desenvolvimento e a resiliência a mudanças típicas de aplicações modernas Por fim a atividade também consolidou o uso combinado de ferramenta gráfica e shell o Compass foi útil para criação navegação e inspeção visual dos documentos enquanto o shell ofereceu rapidez e precisão para operações em lote e atualizações estruturadas Esse equilíbrio de ferramentas melhora a produtividade e reduz erros favorecendo tanto tarefas do dia a dia quanto rotinas mais repetitivas que podem ser automatizadas Em síntese a prática atingiu o objetivo proposto ao permitir a criação e manipulação de um banco de dados não relacional com documentos ricos demonstrando consultas típicas e evidenciando os principais diferenciais do MongoDB em relação ao paradigma relacional 3 RESULTADOS Ao término da prática o ambiente foi corretamente conectado no Compass à instância local e o banco lojadb foi criado com a collection vendas A Figura 1 mostra a estrutura do servidor com o banco e a collection confirmando o provisionamento inicial Figura 1 Estrutura do servidor no Compass com o banco lojadb e a collection vendas visíveis na barra lateral Fonte elaboração própria Em seguida realizouse a inserção dos três documentos de clientes Na Figura 2 visualizase a aba Documents exibindo os registros com o campo telefone modelado como array e a presença de campos opcionais como email apenas quando informado evidenciando a flexibilidade de esquema do MongoDB Figura 2 Aba Documents mostrando os três clientes inseridos e o uso de arrays para telefones Fonte elaboração própria Após a inserção os documentos foram enriquecidos com o subdocumento endereco e com o histórico de compras array de objetos A Figura 3 apresenta a listagem completa dos documentos já com os arrays de compras preenchidos João com a compra de notebook Marcos com Caderno Caneta e Borracha e Maria com Tablet e Capa para tablet Figura 3 Visualização geral dos documentos contendo telefones endereços e o array compras Fonte elaboração própria Para validação dirigida a Figura 4 focaliza o documento da cliente Maria confirmando o status de cliente VIP os múltiplos telefones e o array de compras com dois itens Essa checagem reforça a legibilidade e a coesão dos dados no modelo de documentos Figura 4 Documento da cliente Maria com contatos e compras registradas Fonte elaboração própria Também foi demonstrada a projeção de campos A Figura 5 exibe o resultado da consulta que retorna apenas os nomes dos clientes VIP evidenciando a filtragem por atributo simples e a limitação do conjunto de campos retornados Figura 5 Consulta dos clientes VIP retornando somente o campo nome Fonte elaboração própria A Figura 6 apresenta a consulta direcionada ao array de compras do cliente Marcos comprovando a utilidade da modelagem por array de objetos para históricos transacionais com cardinalidade variável Figura 6 Consulta exibindo o array de compras do cliente Marcos Fonte elaboração própria Por fim duas consultas de caráter analítico ilustram operações sobre arrays a Figura 7 mostra a lista única de nomes de produtos adquiridos por todos os clientes e a Figura 8 traz a listagem linha a linha dos itens após desaninhar o array de compras útil para visões tabulares Figura 7 Lista distinta dos nomes de produtos comprados catálogo gerado a partir do campo comprasnome Fonte elaboração própria Figura 8 Resultado da agregação que percorre desaninha o array de compras e projeta os nomes dos produtos Fonte elaboração própria Em síntese os resultados confirmam que o modelo orientado a documentos atendeu plenamente ao cenário foi possível armazenar dados heterogêneos com presençaausência de atributos representar multiplicidades telefones e compras e realizar consultas que vão de verificações simples a extrações analíticas sobre arrays mantendo a coesão das informações no mesmo documento e reduzindo a necessidade de junções típicas do modelo relacional 4 CONCLUSÃO A prática atingiu plenamente os objetivos propostos para a disciplina Bancos de Dados Não Relacionais Foi possível criar o banco lojadb estruturar a collection vendas e manipular documentos no MongoDB explorando características centrais do modelo orientado a documentos flexibilidade de esquema subdocumentos endereço e arrays de objetos compras As consultas realizadas demonstraram desde filtros simples e projeções clientes VIP seleção de campos até explorações sobre dados aninhados listagem das compras por cliente e extração de nomes de produtos evidenciando como a proximidade entre o modelo lógico e os objetos da aplicação reduz a necessidade de junções e simplifica leituras frequentes Além do domínio técnico a atividade consolidou boas práticas de trabalho com NoSQL inserções e atualizações idempotentes verificação de consistência por meio de consultas dirigidas e uso combinado do Compass inspeçãovisualização e do mongosh operações rápidas e repetíveis Como continuidade recomendase evoluir o modelo para contemplar Decimal128 em valores monetários incluir índices adequados a padrões de consulta mais intensivos e introduzir regras de validação de schema JSON Schema para garantir qualidade dos dados em cenários de produção Em síntese os resultados confirmam a adequação do MongoDB para contextos com heterogeneidade de dados evolução rápida de requisitos e necessidade de agilidade no desenvolvimento REFERÊNCIAS CHODOROW Kristina MongoDB The Definitive Guide 3 ed Sebastopol OReilly Media 2019 MONGODB INC MongoDB Manual Sl MongoDB Inc sd Disponível em httpswwwmongodbcomdocsmanual Acesso em 23 out 2025 MONGODB INC MongoDB Compass Documentation Sl MongoDB Inc sd Disponível em httpswwwmongodbcomdocscompass Acesso em 23 out 2025 SADALAGE Pramod J FOWLER Martin NoSQL Distilled A Brief Guide to the Emerging World of Polyglot Persistence Boston AddisonWesley 2012 APÊNDICES Apêndice A Roteiro de criação do banco e da collection mongosh Objetivo registrar de forma reprodutível a preparação do ambiente use lojadb dbcreateCollectionvendas Apêndice B Inserção inicial dos clientes Observação telefones como array email ausente quando não informado nome João vip 1 email joaoemailcom telefone 9999111188881111 nome Marcosvip 0 telefone 99992222 nome Maria vip 1 email mariaemailcomtelefone 99993333888833339988 3000 Inserido via Compass Add Data Insert Document Array Apêndice C Atualização dos documentos endereço objeto e compras array de objetos Executado no Open MongoDB Shell após use lojadb Endereços dbvendasupdateOne nomeJoão set endereco ruaRua Um numero1000 complementoApto 1 Bloco 1 cidadeSão Paulo estadoSP dbvendasupdateOne nomeMarcos set endereco ruaRua Dois numero4000 cidadeCampinas estadoSP dbvendasupdateOne nomeMaria set endereco ruaRua Três numero3000 cidadeLondrina estadoPR Compras dbvendasupdateOne nomeJoão set compras nomenotebook preco500000 quantidade1 dbvendasupdateOne nomeMarcos set compras nomeCaderno preco2000 quantidade1 nomeCaneta preco300 quantidade5 nomeBorracha preco200 quantidade2 dbvendasupdateOne nomeMaria set compras nomeTablet preco250000 quantidade1 nomeCapa para tablet preco5000 quantidade1 Apêndice D Consultas solicitadas no roteiro 1 Todos os documentos dbvendasfindpretty 2 Documento da cliente Maria dbvendasfind nomeMaria pretty 3 Clientes VIP somente nome dbvendasfind vip1 id0 nome1 pretty 4 Compras do cliente Marcos dbvendasfind nomeMarcos id0 compras1 pretty 5 Nomes de produtos comprados duas formas dbvendasdistinctcomprasnome dbvendasaggregate unwindcompras project id0 produtocomprasnome pretty Apêndice E Consultas complementares Total gasto por cliente preço x quantidade dbvendasaggregate unwind compras group id nome total sum multiply compraspreco comprasquantidade project id 0 cliente id total 1 pretty Quantidade total de itens por cliente dbvendasaggregate unwind compras group id nome itens sum comprasquantidade project id 0 cliente id itens 1 pretty
7
Engenharia de Software
UMG
21
Engenharia de Software
UMG
8
Engenharia de Software
UMG
1
Engenharia de Software
UMG
23
Engenharia de Software
UMG
3
Engenharia de Software
UMG
1
Engenharia de Software
UMG
2
Engenharia de Software
UMG
11
Engenharia de Software
UMG
47
Engenharia de Software
UMG
Texto de pré-visualização
Bancos de Dados Não Relacionais Roteiro Aula Prática 2 ROTEIRO DE AULA PRÁTICA NOME DA DISCIPLINA Bancos de Dados Não Relacionais Escolher um item Escolher um item OBJETIVOS Definição dos objetivos da aula prática Criar e manipular um banco de dados não relacional no MongoDB INFRAESTRUTURA Instalações Laboratório de Informática Materiais de consumo Descrição Quantid de materiais por procedimentoatividade Computador 01 por aluno Software Sim X Não Em caso afirmativo qual Pago Não Pago X Tipo de Licença Freeware Descrição do software MongoDB Community Server O banco de dados MongoDB é um software de banco de dados orientado a documentos livre de código aberto e multiplataforma escrito na linguagem C Este banco é classificado como um programa de banco de dados NoSQL httpswwwmongodbcomtrydownloadcommunity MongoDB Compass O Compass é uma ferramenta interativa para consultar otimizar e analisar os dados do bando de dados MongoDB de forma gráfica é instalado opcionalmente pelo mesmo instalador do MongoDB Server 3 Equipamento de Proteção Individual EPI NSA PROCEDIMENTOS PRÁTICOS ProcedimentoAtividade Nº 1 Atividade proposta Criar um banco de dados no MongoDB Compass inserir e atualizar documentos em uma collection Procedimentos para a realização da atividade Nesta atividade você deverá criar um banco de dados no MongoDB Compass chamado de lojadb Ele será utilizado no contexto de uma loja onde você deverá cadastrar documentos referentes a vendas efetuadas pela loja Etapa 1 Crie o banco de dados e em seguida realize a criação de uma collection vendas Agora insira os seguintes dados conforme o conhecimento adquirido nas aulas utilizando o comando insert pela Shell do mongodb ou graficamente pelo Compass Inicialmente vamos inserir apenas os dados básicos dos clientes que realizaram compras na loja Para isso utilize as informações na tabela a seguir Note que o campo telefone deverá ser adicionado como uma Array NOME CLIENTE VIP 1 SIM 0 NÃO EMAIL TELEFONE João 1 joaoemailcom 99991111 88881111 Marcos 0 99992222 Maria 1 mariaemailcom 99993333 88883333 99883000 4 Note que como estamos falando de um banco de dados não relacional nós não temos uma estrutura definida Então cada cliente não precisa necessariamente ter os mesmos campos Por exemplo o cliente Marcos não tem email portanto o campo email não precisa ser adicionado em sua entrada Além disso veja que os três clientes têm quantidades diferentes de telefones Etapa 2 Vamos continuar o processo de inserção de dados que iniciamos na etapa anterior Para isso você terá de ATUALIZAR documentos já presentes na collection Vamos adicionar o endereço de cada cliente conforme a tabela a seguir O endereço deverá ser inserido como um campo do tipo Objeto separando dentro dele a rua número complemento cidade e estado NOME ENDEREÇO João Rua Um 1000 Apto 1 Bloco 1 São PauloSP Marcos Rua Dois 4000 CampinasSP Maria Rua Três 3000 LondrinaPR Por fim vamos adicionar os dados das compras efetuadas por cada cliente Os dados das compras deverão ser adicionados nos mesmos documentos com as informações dos clientes Um outro detalhe é que agora você irá utilizar o conceito de Arrays de Objetos no campo compras NOME COMPRAS João Nome do produto notebook Preço R 500000 Quantidade 1 Marcos Nome do produto Caderno Preço R 2000 Quantidade 1 Nome do produto Caneta 5 Preço R 300 Quantidade 5 Nome do produto Borracha Preço R 200 Quantidade 2 Maria Nome do produto Tablet Preço R 250000 Quantidade 1 Nome do produto Capa para tablet Preço R 5000 Quantidade 1 ProcedimentoAtividade Nº 2 Atividade proposta Realizar pesquisas e consultas em um banco de dados não relacional MongoDB Até aqui você já criou o banco de dados lojadb uma collection chamada vendas e inseriu documentos dados nesta collection inclusive atualizandoos posteriormente Agora você irá utilizar este banco que já está criado para realizar consultas Para cada consulta que realizar informe o comando correto DICA nas consultas que realizar por linha de comando utilize pretty ao final do comando de busca para que o resultado seja identado ao ser exibido Realize uma consulta que retorne todos os documentos da collection Realize uma consulta que localize as informações da cliente Maria Realize uma busca que retorna os clientes VIPs da loja VIP 1 Retorne apenas o campo nome de cada um 6 Realize uma consulta que exiba as compras efetuadas por Marcos Realize uma consulta que retorne todos os nomes de produtos comprados por todos os clientes Nesta consulta em específico utilize a linha de comando do MongoDB Checklist Acessar o MongoDB Compass Criar um banco de dados no MongoDB Criar uma collection em um banco de dados Inserir documentos na collection criada Atualizar a collection vendas no banco de dados lojadb de acordo com as informações das tabelas Navegar até a collection vendas do banco de dados lojadb Realizar as 5 consultas especificadas RESULTADOS Resultados da aula prática É esperado que ao término da prática o aluno saiba desenvolver bancos de dados não relacionais orientados a documentos utilizando o MongoDB incluindo a criação de collections e inserçãoatualização de documentos bem como a realização de consultas à base de dados UNIVERSIDADE CURSO ALUNO A RELATÓRIO AULA PRÁTICA BANCO DE DADOS NÃO RELACIONAIS CIDADE UF 2025 ALUNO A RELATÓRIO AULA PRÁTICA BANCO DE DADOS NÃO RELACIONAIS Relatório técnico apresentado à disciplina Banco de Dados Não Relacionais como parte da avaliação da unidade curricular CIDADE UF 2025 SUMÁRIO 1 INTRODUÇÃO5 2 DESENVOLVIMENTO6 3 RESULTADOS7 4 CONCLUSÃO12 REFERÊNCIAS13 APÊNDICES14 1 INTRODUÇÃO Os bancos de dados não relacionais NoSQL surgiram como resposta às limitações dos modelos relacionais diante do crescimento do volume variedade e velocidade dos dados nas aplicações modernas Diferentemente das tabelas rigidamente normalizadas do modelo relacional os bancos NoSQL adotam estruturas flexíveis como documentos pares chavevalor colunas ou grafos permitindo evolução do esquema alta disponibilidade e escalabilidade horizontal Nesse contexto o MongoDB um banco orientado a documentos destacase pela representação de dados em JSONBSON pela facilidade de modelagem de objetos do domínio e por operar consultas expressivas sobre documentos aninhados e arrays Esta atividade prática da disciplina Bancos de Dados Não Relacionais tem como objetivo criar e manipular um banco de dados no MongoDB utilizando tanto o MongoDB Compass interface gráfica quanto o mongosh linha de comando Para tornar o exercício mais próximo de um cenário real foi definido o domínio de uma loja os dados dos clientes seus contatos endereços e compras foram modelados em uma única collection vendas utilizando objetos e arrays de objetos explorando justamente a flexibilidade de esquema proporcionada pelo MongoDB Ao longo da prática foram executadas as etapas essenciais de um ciclo de trabalho com NoSQL criação do banco e da collection inserção de documentos com campos opcionais por exemplo cliente sem email atualizações para inclusão de subdocumentos endereço e arrays compras e consultas específicas para recuperação e projeção de dados incluindo filtros por atributos simples clientes VIP acesso a campos aninhados compras por cliente e operações agregadas extração dos nomes de produtos Essas operações evidenciam como o modelo de documentos reduz a necessidade de joins mantendo os dados relacionados no mesmo registro e simplificando leituras frequentes do aplicativo Além do domínio técnico a prática reforça competências importantes para o desenvolvimento profissional modelagem orientada a documentos escrita de consultas idiomáticas no MongoDB compreensão de tradeoffs entre consistência desempenho e flexibilidade e uso combinado de ferramentas gráficas e de shell Como resultado o estudante consolida a capacidade de escolher e aplicar um banco NoSQL em cenários onde a evolução rápida do esquema a heterogeneidade dos dados e a agilidade de desenvolvimento são fatores críticos 2 DESENVOLVIMENTO A atividade foi conduzida no MongoDB Compass conectado a uma instância local do MongoDB Community Server Após confirmar a conexão com o servidor criouse o banco de dados denominado lojadb e dentro dele a collection vendas A opção por uma única collection para representar clientes e suas compras teve como objetivo explorar a flexibilidade de esquema típica de bancos de dados orientados a documentos reduzindo a necessidade de junções e mantendo informações correlatas em um mesmo registro As Figuras 1 e 2 apresentam respectivamente a conexão ativa no Compass e a estrutura inicial com o banco criado Em seguida realizouse a inserção dos registros de clientes contemplando campos de identificação status de cliente VIP e formas de contato Um ponto importante nesta etapa foi a adoção de um array para o campo de telefone permitindo múltiplos números por cliente sem a rigidez de um esquema fixo Além disso respeitouse a natureza esquemaless do MongoDB ao aceitar a ausência de determinados atributos quando não havia dados por exemplo cliente sem email reforçando o princípio de que documentos não precisam compartilhar exatamente a mesma estrutura A Figura 3 exibe a collection populada com os três clientes evidenciando a presença de arrays e campos opcionais Para aproximar o exercício de um cenário real de aplicação os documentos foram atualizados com um campo de endereço e com o histórico de compras O endereço foi modelado como um subdocumento agregando rua número complemento cidade e estado em um único atributo o que melhora a coesão e a legibilidade dos dados Já as compras foram representadas por um array de objetos em que cada item corresponde a um produto adquirido incluindo nome preço e quantidade Esse desenho facilita consultas analíticas comuns como listagens de itens comprados ou somatórios por cliente preservando ao mesmo tempo a simplicidade do documento principal As Figuras 4 e 5 mostram respectivamente um panorama da collection com os clientes completos e um detalhamento do documento da cliente Maria onde é possível visualizar o endereço e a lista de compras Concluída a etapa de modelagem e atualização foram realizadas consultas de verificação e exploração todas sobre a collection vendas a listagem de todos os documentos para conferência geral a recuperação específica do documento da cliente Maria para validar a presença de todos os campos a filtragem dos clientes VIP retornando apenas seus nomes para demonstrar projeção de campos a exibição das compras de um cliente específico Marcos confirmando a estrutura do array de compras e por fim a obtenção de todos os nomes de produtos comprados por todos os clientes evidenciando a facilidade de acessar e percorrer arrays aninhados As Figuras 6 a 9 registram os resultados dessas consultas na interface do Compass comprovando que a base está consistente e que as operações de leitura sobre documentos e subdocumentos foram bemsucedidas Do ponto de vista de modelagem a prática ilustra claramente os benefícios do modelo de documentos em cenários de cadastro e vendas os dados pertinentes a um mesmo contexto de uso perfil do cliente contatos endereço e compras permanecem agregados o que simplifica o acesso e reduz a sobrecarga de junções frequentes que seriam necessárias em um modelo relacional tradicional A possibilidade de evoluir o documento ao longo do tempo adicionando novos campos conforme a necessidade sem migrações complexas de esquema reforça a agilidade de desenvolvimento e a resiliência a mudanças típicas de aplicações modernas Por fim a atividade também consolidou o uso combinado de ferramenta gráfica e shell o Compass foi útil para criação navegação e inspeção visual dos documentos enquanto o shell ofereceu rapidez e precisão para operações em lote e atualizações estruturadas Esse equilíbrio de ferramentas melhora a produtividade e reduz erros favorecendo tanto tarefas do dia a dia quanto rotinas mais repetitivas que podem ser automatizadas Em síntese a prática atingiu o objetivo proposto ao permitir a criação e manipulação de um banco de dados não relacional com documentos ricos demonstrando consultas típicas e evidenciando os principais diferenciais do MongoDB em relação ao paradigma relacional 3 RESULTADOS Ao término da prática o ambiente foi corretamente conectado no Compass à instância local e o banco lojadb foi criado com a collection vendas A Figura 1 mostra a estrutura do servidor com o banco e a collection confirmando o provisionamento inicial Figura 1 Estrutura do servidor no Compass com o banco lojadb e a collection vendas visíveis na barra lateral Fonte elaboração própria Em seguida realizouse a inserção dos três documentos de clientes Na Figura 2 visualizase a aba Documents exibindo os registros com o campo telefone modelado como array e a presença de campos opcionais como email apenas quando informado evidenciando a flexibilidade de esquema do MongoDB Figura 2 Aba Documents mostrando os três clientes inseridos e o uso de arrays para telefones Fonte elaboração própria Após a inserção os documentos foram enriquecidos com o subdocumento endereco e com o histórico de compras array de objetos A Figura 3 apresenta a listagem completa dos documentos já com os arrays de compras preenchidos João com a compra de notebook Marcos com Caderno Caneta e Borracha e Maria com Tablet e Capa para tablet Figura 3 Visualização geral dos documentos contendo telefones endereços e o array compras Fonte elaboração própria Para validação dirigida a Figura 4 focaliza o documento da cliente Maria confirmando o status de cliente VIP os múltiplos telefones e o array de compras com dois itens Essa checagem reforça a legibilidade e a coesão dos dados no modelo de documentos Figura 4 Documento da cliente Maria com contatos e compras registradas Fonte elaboração própria Também foi demonstrada a projeção de campos A Figura 5 exibe o resultado da consulta que retorna apenas os nomes dos clientes VIP evidenciando a filtragem por atributo simples e a limitação do conjunto de campos retornados Figura 5 Consulta dos clientes VIP retornando somente o campo nome Fonte elaboração própria A Figura 6 apresenta a consulta direcionada ao array de compras do cliente Marcos comprovando a utilidade da modelagem por array de objetos para históricos transacionais com cardinalidade variável Figura 6 Consulta exibindo o array de compras do cliente Marcos Fonte elaboração própria Por fim duas consultas de caráter analítico ilustram operações sobre arrays a Figura 7 mostra a lista única de nomes de produtos adquiridos por todos os clientes e a Figura 8 traz a listagem linha a linha dos itens após desaninhar o array de compras útil para visões tabulares Figura 7 Lista distinta dos nomes de produtos comprados catálogo gerado a partir do campo comprasnome Fonte elaboração própria Figura 8 Resultado da agregação que percorre desaninha o array de compras e projeta os nomes dos produtos Fonte elaboração própria Em síntese os resultados confirmam que o modelo orientado a documentos atendeu plenamente ao cenário foi possível armazenar dados heterogêneos com presençaausência de atributos representar multiplicidades telefones e compras e realizar consultas que vão de verificações simples a extrações analíticas sobre arrays mantendo a coesão das informações no mesmo documento e reduzindo a necessidade de junções típicas do modelo relacional 4 CONCLUSÃO A prática atingiu plenamente os objetivos propostos para a disciplina Bancos de Dados Não Relacionais Foi possível criar o banco lojadb estruturar a collection vendas e manipular documentos no MongoDB explorando características centrais do modelo orientado a documentos flexibilidade de esquema subdocumentos endereço e arrays de objetos compras As consultas realizadas demonstraram desde filtros simples e projeções clientes VIP seleção de campos até explorações sobre dados aninhados listagem das compras por cliente e extração de nomes de produtos evidenciando como a proximidade entre o modelo lógico e os objetos da aplicação reduz a necessidade de junções e simplifica leituras frequentes Além do domínio técnico a atividade consolidou boas práticas de trabalho com NoSQL inserções e atualizações idempotentes verificação de consistência por meio de consultas dirigidas e uso combinado do Compass inspeçãovisualização e do mongosh operações rápidas e repetíveis Como continuidade recomendase evoluir o modelo para contemplar Decimal128 em valores monetários incluir índices adequados a padrões de consulta mais intensivos e introduzir regras de validação de schema JSON Schema para garantir qualidade dos dados em cenários de produção Em síntese os resultados confirmam a adequação do MongoDB para contextos com heterogeneidade de dados evolução rápida de requisitos e necessidade de agilidade no desenvolvimento REFERÊNCIAS CHODOROW Kristina MongoDB The Definitive Guide 3 ed Sebastopol OReilly Media 2019 MONGODB INC MongoDB Manual Sl MongoDB Inc sd Disponível em httpswwwmongodbcomdocsmanual Acesso em 23 out 2025 MONGODB INC MongoDB Compass Documentation Sl MongoDB Inc sd Disponível em httpswwwmongodbcomdocscompass Acesso em 23 out 2025 SADALAGE Pramod J FOWLER Martin NoSQL Distilled A Brief Guide to the Emerging World of Polyglot Persistence Boston AddisonWesley 2012 APÊNDICES Apêndice A Roteiro de criação do banco e da collection mongosh Objetivo registrar de forma reprodutível a preparação do ambiente use lojadb dbcreateCollectionvendas Apêndice B Inserção inicial dos clientes Observação telefones como array email ausente quando não informado nome João vip 1 email joaoemailcom telefone 9999111188881111 nome Marcosvip 0 telefone 99992222 nome Maria vip 1 email mariaemailcomtelefone 99993333888833339988 3000 Inserido via Compass Add Data Insert Document Array Apêndice C Atualização dos documentos endereço objeto e compras array de objetos Executado no Open MongoDB Shell após use lojadb Endereços dbvendasupdateOne nomeJoão set endereco ruaRua Um numero1000 complementoApto 1 Bloco 1 cidadeSão Paulo estadoSP dbvendasupdateOne nomeMarcos set endereco ruaRua Dois numero4000 cidadeCampinas estadoSP dbvendasupdateOne nomeMaria set endereco ruaRua Três numero3000 cidadeLondrina estadoPR Compras dbvendasupdateOne nomeJoão set compras nomenotebook preco500000 quantidade1 dbvendasupdateOne nomeMarcos set compras nomeCaderno preco2000 quantidade1 nomeCaneta preco300 quantidade5 nomeBorracha preco200 quantidade2 dbvendasupdateOne nomeMaria set compras nomeTablet preco250000 quantidade1 nomeCapa para tablet preco5000 quantidade1 Apêndice D Consultas solicitadas no roteiro 1 Todos os documentos dbvendasfindpretty 2 Documento da cliente Maria dbvendasfind nomeMaria pretty 3 Clientes VIP somente nome dbvendasfind vip1 id0 nome1 pretty 4 Compras do cliente Marcos dbvendasfind nomeMarcos id0 compras1 pretty 5 Nomes de produtos comprados duas formas dbvendasdistinctcomprasnome dbvendasaggregate unwindcompras project id0 produtocomprasnome pretty Apêndice E Consultas complementares Total gasto por cliente preço x quantidade dbvendasaggregate unwind compras group id nome total sum multiply compraspreco comprasquantidade project id 0 cliente id total 1 pretty Quantidade total de itens por cliente dbvendasaggregate unwind compras group id nome itens sum comprasquantidade project id 0 cliente id itens 1 pretty