Questão FC546296
Uma equipe da Secretaria da Fazenda está desenvolvendo um sistema para armazenar e consultar dados de auditorias fiscais usando um banco de dados NoSQL baseado em documentos. Cada
Sistema de Gerenciamento de Banco de Dados (SGBD)
FCC · 2025
Uma equipe da Secretaria da Fazenda está desenvolvendo um sistema para armazenar e consultar dados de auditorias fiscais usando um banco de dados NoSQL baseado em documentos. Cada auditoria é armazenada como um documento JSON, contendo um campo "irregularidades", que é um grande array listando todas as infrações identificadas. É necessário recuperar todas as auditorias em que pelo menos uma irregularidade seja classificada como "grave". Em condições ideais, a abordagem mais adequada e eficiente para realizar essa consulta é:
- Utilizar uma consulta que aproveite um operador nativo do banco NoSQL para busca dentro de arrays, garantindo que o sistema encontre os documentos que contenham elementos correspondentes à condição desejada.
- Filtrar os documentos fazendo a iteração sobre todos os elementos do array no código da aplicação, verificando se a irregularidade é classificada como "grave".
- Utilizar uma consulta tradicional baseada em igualdade, buscando diretamente pelo campo "irregularidades" contendo o valor "grave", pois todos os resultados possíveis são automaticamente retornados.
- Aplicar um tripleindex no campo "irregularidades", garantindo que todas as auditorias que possuam irregularidades sejam rapidamente acessadas, sem a necessidade de um operador específico para busca dentro do array.
- Criar um modelo relacional dentro do banco NoSQL, armazenando as irregularidades em uma coleção separada e utilizando junções para correlacionar os dados das auditorias com as infrações.
Mostrar resposta e comentário
Gabarito
A
Comentário do professor
Utilizar um operador nativo para busca dentro de arrays aproveita a capacidade do banco de dados documental de testar elementos internos sem desestruturar o documento. Esse recurso permite localizar documentos que contenham pelo menos uma irregularidade com a condição desejada diretamente no servidor, reduzindo leitura e processamento.
Além de ser funcional, é mais eficiente porque a consulta pode explorar indexação multichave sobre o campo do array, evitando varreduras completas dos documentos e melhorando desempenho em coleções grandes.
Exemplo prático: em bancos como MongoDB use dot notation ou $elemMatch, por exemplo {"irregularidades.classificacao":"grave"} ou {"irregularidades": {$elemMatch: {classificacao: "grave"}}} para casos com múltiplas condições no mesmo elemento.
Conteúdo do catálogo FC Concursos · Atualizado em