Questão de Banco de Dados — PostgreSQL — Quadrix 2024
- Código
- qg354208
- Banca
- Quadrix
- Órgão
- IBICT
- Ano
- 2024
- Nível
- Superior
- Cargo
- Tecnologista - Tecnologia da Informação
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ERRADO. O MongoDB é um banco NoSQL orientado a documentos, projetado para cenários em que a modelagem relacional tradicional — com muitas chaves estrangeiras e JOINs — é evitada ou minimizada. A afirmação inverte a lógica: relacionamentos intensos entre entidades são justamente o caso de uso dos bancos relacionais (como MySQL e PostgreSQL), não do MongoDB.
O MongoDB é um SGBD NoSQL do tipo orientado a documentos. Em vez de tabelas com linhas e colunas rigidamente definidas, ele armazena dados em documentos (formato BSON, similar ao JSON), organizados em coleções. Essa estrutura permite alta flexibilidade de esquema, escalabilidade horizontal e desempenho em operações de leitura/escrita em grandes volumes de dados não estruturados ou semiestruturados.
A grande diferença entre bancos relacionais e NoSQL está na forma de modelar e consultar os dados. Nos relacionais, a normalização e a integridade referencial (chaves estrangeiras) são centrais, e as consultas frequentemente combinam várias tabelas por meio de JOINs. No MongoDB, o modelo de documentos favorece a desnormalização: dados relacionados costumam ser embutidos em um mesmo documento (embedded documents) ou referenciados por IDs, mas sem a rigidez das chaves estrangeiras e sem a necessidade de JOINs complexos. O próprio MongoDB oferece o operador $lookup para simular JOINs, mas seu uso é desencorajado em favor de um design que evite relacionamentos profundos.
Portanto, o cenário descrito no item — "relacionamentos entre diversas entidades são importantes" e "necessidade de empregar muitas chaves estrangeiras e JOINs" — é exatamente o oposto do que o MongoDB busca otimizar. Esse cenário é típico de bancos relacionais, como MySQL e PostgreSQL, que possuem suporte nativo a chaves estrangeiras e JOINs eficientes.
A pegadinha da banca está em inverter o perfil de uso: o candidato que sabe que o MongoDB é NoSQL pode ser induzido a acreditar que ele é adequado para relacionamentos complexos, quando na verdade a escolha do MongoDB se justifica justamente quando o modelo relacional é um obstáculo (alta escalabilidade, dados sem esquema fixo, etc.).
Critério | MongoDB (NoSQL) | MySQL / PostgreSQL (Relacional) |
|---|---|---|
Modelo de dados | Documentos BSON (JSON-like) em coleções | Tabelas com linhas e colunas, esquema rígido |
Relacionamentos entre entidades | Desnormalização: dados embutidos ou referências por ID; | Normalização com chaves estrangeiras e JOINs nativos e eficientes |
Cenário ideal | Grandes volumes de dados não estruturados/semiestruturados, alta escalabilidade horizontal, esquema flexível | Sistemas com muitos relacionamentos, integridade referencial e consultas complexas entre tabelas |
Suporte a chaves estrangeiras | Não possui (apenas referências manuais) | Suporte nativo e enforcement de integridade referencial |
A afirmação está incorreta porque atribui ao MongoDB um cenário que é típico dos bancos relacionais. O MongoDB é orientado a documentos e não foi projetado para gerenciar relacionamentos complexos com muitas chaves estrangeiras e JOINs; pelo contrário, seu modelo favorece a desnormalização e o embutimento de dados relacionados. O uso de muitas chaves estrangeiras e JOINs é característica de SGBDs relacionais, como MySQL e PostgreSQL, que possuem suporte nativo a esses recursos.
Gabarito: ERRADO
Link permanente: /questoes/qg354208