Pular para o conteúdo principal

Questão de Banco de Dados — Documentos (MongoDB e CouchDB) — Quadrix 2024

Banco de DadosDocumentos (MongoDB e CouchDB)
Código
qa630732
Banca
Quadrix
Órgão
IBICT
Ano
2024
Cargo
Tecno ( )
Acerca dos Sistemas Gerenciadores de Banco de Dados (SGBDs) MySQL e PostgreSQL, do Solr e do MongoDB, julgue o item abaixo:   O cenário mais indicado para se utilizar o MongoDB configura‑se quando relacionamentos entre diversas entidades são importantes para o sistema, ou seja, no caso de haver a necessidade de se empregar muitas chaves estrangeiras e JOINs.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

MongoDB: banco NoSQL orientado a documentos

Gabarito: ERRADO (letra E). O MongoDB é um banco de dados NoSQL orientado a documentos, e seu cenário ideal é justamente o oposto do descrito: ele é recomendado quando há dados semiestruturados e pouca necessidade de relacionamentos complexos, pois documentos incorporados reduzem a necessidade de JOINs. A afirmação inverte a lógica, atribuindo ao MongoDB um cenário típico de bancos relacionais, como MySQL e PostgreSQL.

O MongoDB é um SGBD NoSQL do tipo orientado a documentos. Em vez de tabelas com linhas e colunas fixas, ele armazena documentos em formato BSON (representação binária do JSON), organizados em coleções. Cada documento é uma estrutura de pares campo-valor, podendo conter outros documentos, arrays e arrays de documentos. Essa flexibilidade permite que documentos da mesma coleção tenham estruturas diferentes, sem exigir um esquema rígido.

A principal vantagem desse modelo é que os documentos incorporados (embedded documents) reduzem a necessidade de junções caras. Em um banco relacional, para relacionar dados de clientes e pedidos, por exemplo, seria necessário usar chaves estrangeiras e JOINs. No MongoDB, é possível armazenar os pedidos diretamente dentro do documento do cliente, eliminando a necessidade de consultas complexas. Por isso, o MongoDB é ideal para aplicações web, mobile e sistemas que lidam com dados semiestruturados, onde a agilidade no desenvolvimento e a escalabilidade horizontal são mais importantes do que a integridade referencial rígida.

Por outro lado, quando o sistema exige muitos relacionamentos entre entidades, com muitas chaves estrangeiras e JOINs, o modelo relacional (MySQL, PostgreSQL) é o mais indicado. Esses bancos são projetados para garantir a integridade referencial, normalização e consultas complexas envolvendo múltiplas tabelas. O MongoDB, por ser NoSQL, não suporta JOINs nativamente (embora exista o operador $lookup para agregações, ele é menos eficiente e não substitui o JOIN relacional em cenários complexos).

A pegadinha da questão está em inverter o cenário ideal: a banca descreve o caso de uso do banco relacional e o atribui ao MongoDB. O candidato que não conhece a diferença entre os modelos pode cair na armadilha, achando que o MongoDB é um banco relacional ou que ele é indicado para relacionamentos complexos.

NÃO CAIA NESSA!

A banca inverte o cenário ideal: ela descreve o caso de uso do banco relacional (muitas chaves estrangeiras e JOINs) e o atribui ao MongoDB. Lembre-se: MongoDB é NoSQL orientado a documentos, e sua vantagem é justamente reduzir a necessidade de JOINs com documentos incorporados. Se a questão falar em muitos relacionamentos, pense em banco relacional, não em MongoDB.

Critério

MongoDB (NoSQL)

MySQL/PostgreSQL (Relacional)

Modelo de dados

Documentos BSON flexíveis (sem esquema rígido)

Tabelas com linhas/colunas e esquema fixo

Relacionamentos

Documentos incorporados (embedded) reduzem necessidade de JOINs

Chaves estrangeiras e JOINs para relacionar entidades

Cenário ideal

Dados semiestruturados, escalabilidade horizontal, agilidade no desenvolvimento

Integridade referencial, normalização, consultas complexas com múltiplas tabelas

Suporte a JOINs

Não nativo (apenas $lookup em agregações, menos eficiente)

Nativo e otimizado para junções complexas

Alternativa E — ❌ Incorreta (gabarito)

A afirmação está errada porque inverte o cenário ideal do MongoDB. O MongoDB é um banco NoSQL orientado a documentos, e sua principal vantagem é a flexibilidade do esquema e a redução de JOINs por meio de documentos incorporados. O cenário descrito — muitos relacionamentos, chaves estrangeiras e JOINs — é típico de bancos relacionais, como MySQL e PostgreSQL, que são projetados para garantir integridade referencial e consultas complexas. Portanto, o MongoDB não é o mais indicado para esse cenário; pelo contrário, ele é recomendado quando há dados semiestruturados e pouca necessidade de relacionamentos complexos.

Gabarito: letra E (ERRADO)

Link permanente: /questoes/qa630732