Questão de Banco de Dados — Banco de Dados — Quadrix 2025
- Código
- qg595981
- Banca
- Quadrix
- Órgão
- CRA-SP
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista II - Desenvolvimento de Sistemas
- ARedis
- BMongoDB
- COracle
- DNeo4j
- ECassandra
GabaritoB — MongoDB
Gabarito: letra B. O MongoDB é o banco de dados NoSQL orientado a documentos que armazena dados em formato Binary JSON (BSON), uma representação binária do JSON, atendendo exatamente ao requisito de armazenar perfis, posts e comentários aninhados em uma única estrutura de documento. As demais opções representam outros modelos de banco de dados: Redis (chave-valor), Oracle (relacional), Neo4j (grafos) e Cassandra (orientado a colunas).
O problema descreve uma necessidade clássica de aplicações modernas: armazenar dados semiestruturados, com formato flexível e hierarquias aninhadas, como um perfil de usuário contendo seus posts e comentários. Em bancos de dados relacionais tradicionais, essa estrutura exigiria múltiplas tabelas (usuário, post, comentário) e operações de junção (JOIN) para recuperar os dados completos. Os bancos NoSQL orientados a documentos resolvem isso armazenando toda a informação relacionada em um único documento, que pode ser um JSON, XML ou BSON.
O MongoDB é o principal representante dessa categoria. Ele armazena registros como documentos BSON, que é a codificação binária do JSON. O BSON estende o JSON com tipos de dados adicionais (como Date e BinData) e é otimizado para eficiência de armazenamento e velocidade de varredura. Os documentos são organizados em coleções, que são análogas às tabelas dos bancos relacionais, mas sem exigir um esquema rígido — cada documento pode ter campos diferentes. Essa flexibilidade é o que permite armazenar o perfil do usuário, seus posts e comentários aninhados em uma única estrutura, como um objeto JSON com arrays e subdocumentos.
A distinção fundamental entre os modelos NoSQL é o formato de armazenamento e o caso de uso típico. O modelo chave-valor (Redis, DynamoDB) armazena pares simples de chave e valor, sem estruturação interna. O modelo orientado a colunas (Cassandra, HBase) organiza dados em famílias de colunas, otimizado para consultas analíticas em grandes volumes. O modelo orientado a grafos (Neo4j) representa entidades como nós e relacionamentos como arestas, ideal para dados altamente conectados. O modelo orientado a documentos (MongoDB, CouchDB) é o que melhor atende ao requisito de dados semiestruturados e aninhados, pois o documento é uma unidade autônoma que pode conter toda a hierarquia de informações.
A pegadinha desta questão está em associar corretamente cada banco ao seu modelo de dados. O candidato que conhece apenas o nome dos bancos, mas não o modelo que cada um implementa, pode facilmente confundir. O MongoDB é o único entre as opções que é explicitamente orientado a documentos e utiliza BSON. O CouchDB, que também é orientado a documentos, não aparece nas alternativas, mas usa JSON puro em vez de BSON. Essa distinção é crucial: a questão pede especificamente o banco que armazena em formato BSON, e o MongoDB é a resposta canônica.
Guarde a correspondência entre banco e modelo de dados: é exatamente nela que as alternativas se dividem. Cada opção representa um modelo NoSQL ou relacional diferente, e a chave é identificar qual deles é orientado a documentos com suporte a BSON.
Critério | MongoDB (B) | Redis (A) | Oracle (C) | Neo4j (D) | Cassandra (E) |
|---|---|---|---|---|---|
Modelo de dados | Orientado a documentos | Chave-valor | Relacional (SQL) | Grafos | Orientado a colunas |
Formato de armazenamento | BSON (Binary JSON) | Pares chave-valor em memória | Tabelas com linhas/colunas | Nós e arestas | Famílias de colunas |
Suporte a dados aninhados (posts/comentários) | Sim, via subdocumentos e arrays | Não | Não (exige JOINs) | Parcial (via relacionamentos) | Não |
Esquema flexível (semelhante a JSON) | Sim | Não | Não (esquema rígido) | Não | Não |
Adequação ao requisito do enunciado | ✅ Atende plenamente | ❌ Inadequado | ❌ Inadequado | ❌ Inadequado | ❌ Inadequado |
O Redis é um banco de dados NoSQL do tipo chave-valor, não orientado a documentos. Ele armazena dados em memória como pares de chave e valor, otimizado para cache e filas de mensagens. Não possui suporte nativo a documentos aninhados no formato BSON, sendo inadequado para o requisito de armazenar perfis, posts e comentários em uma única estrutura hierárquica.
O MongoDB é um banco de dados NoSQL orientado a documentos. Ele armazena registros como documentos BSON, que é a representação binária do JSON. Os documentos podem conter subdocumentos e arrays, permitindo armazenar o perfil do usuário, seus posts e comentários aninhados em uma única estrutura. Essa é exatamente a característica que atende ao requisito da aplicação de rede social descrita no enunciado.
O Oracle é um banco de dados relacional (SQL), não NoSQL. Ele organiza dados em tabelas com linhas e colunas, exigindo um esquema predefinido e normalização. Para armazenar dados aninhados como posts e comentários, seria necessário criar múltiplas tabelas e usar junções, o que contraria o requisito de flexibilidade e estrutura única do enunciado.
O Neo4j é um banco de dados NoSQL orientado a grafos. Ele representa dados como nós (entidades) e arestas (relacionamentos), otimizado para consultas de navegação em dados altamente conectados, como redes sociais. Embora possa modelar usuários e posts, não armazena documentos no formato BSON e não é a escolha natural para dados semiestruturados aninhados em uma única estrutura.
O Cassandra é um banco de dados NoSQL orientado a colunas. Ele organiza dados em famílias de colunas, otimizado para escrita e leitura em larga escala com alta disponibilidade. Não suporta documentos aninhados no formato BSON, sendo inadequado para o requisito de armazenar perfis, posts e comentários em uma única estrutura hierárquica.
A regra de ouro para esta questão é memorizar a classificação dos bancos NoSQL por modelo de dados: MongoDB (documentos/BSON), Redis (chave-valor), Neo4j (grafos), Cassandra (colunas). Quando a questão mencionar formato flexível semelhante a JSON e dados aninhados, a resposta quase sempre será o MongoDB.
Gabarito: letra B
Link permanente: /questoes/qg595981