Pular para o conteúdo principal

Questão de Banco de Dados — Documentos (MongoDB e CouchDB) — FUNDATEC 2025

Banco de DadosDocumentos (MongoDB e CouchDB)
Código
qa699116
Banca
FUNDATEC
Órgão
UFRGS
Ano
2025
Cargo
Tec ( )

Uma empresa de e-commerce precisa escolher a arquitetura de banco de dados mais adequada para diferentes necessidades do seu sistema. Nesse sentido, analise os cenários abaixo:

 

\bullet Cenário I: Armazenar informações de produtos com atributos fixos (código, nome, preço, categoria) e garantir consistência transacional para operações de venda.

 

\bullet Cenário II: Gerenciar logs de navegação dos usuários, comentários de produtos e dados de sessão com estrutura variável e alta velocidade de inserção.

 

Considerando as características dos dados estruturados, não estruturados e os modelos de dados disponíveis, qual seria a escolha mais apropriada para cada cenário descrito?

  1. AI: MongoDB (documentos) – II: PostgreSQL (relacional).
  2. BI: Cassandra (colunas) – II: Oracle (relacional).
  3. CI: Redis (chave-valor) – II: Cassandra (colunas).
  4. DI: Neo4j (grafos) – II: Redis (chave-valor).
  5. EI: MySQL (relacional) – II: MongoDB (documentos).
Revelar gabarito e comentário

GabaritoE — I: MySQL (relacional) – II: MongoDB (documentos).

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”.

Escolha de Banco de Dados: Relacional × NoSQL

Gabarito: letra E. O Cenário I exige atributos fixos e consistência transacional — características do modelo relacional (MySQL); o Cenário II exige estrutura variável e alta velocidade de inserção — características do modelo NoSQL orientado a documentos (MongoDB). A alternativa E é a única que combina corretamente os dois modelos.

A questão testa a capacidade de associar cada cenário ao modelo de banco de dados mais adequado, contrastando o modelo relacional (SQL) com o NoSQL. O modelo relacional é a escolha clássica para dados estruturados, com esquema fixo (tabelas, colunas, tipos definidos) e suporte robusto a transações ACID (Atomicidade, Consistência, Isolamento, Durabilidade). Já o NoSQL orientado a documentos, como o MongoDB, é ideal para dados semiestruturados ou não estruturados, com esquema flexível (documentos JSON/BSON podem ter campos diferentes) e alta performance de escrita, sendo amplamente usado para logs, sessões e conteúdo gerado pelo usuário.

No Cenário I, a empresa precisa armazenar produtos com atributos fixos (código, nome, preço, categoria) e garantir consistência transacional nas vendas. Isso aponta diretamente para um banco relacional, como MySQL ou PostgreSQL, que oferece integridade referencial, transações ACID e linguagem SQL. O Cenário II, por sua vez, envolve logs de navegação, comentários e dados de sessão — dados com estrutura variável e alta velocidade de inserção. O MongoDB, com seu modelo de documentos flexíveis e alta capacidade de escrita, é a escolha natural.

A pegadinha da questão está em associar o Cenário I a um banco NoSQL (como MongoDB) por pensar que "e-commerce" sempre usa NoSQL, ou associar o Cenário II a um banco relacional (como PostgreSQL) por pensar que logs precisam de SQL. A banca explora exatamente essa confusão entre os modelos. A alternativa E é a única que acerta as duas associações.

Critério

Cenário I (produtos/vendas)

Cenário II (logs/sessões)

Modelo de dados

Relacional (SQL)

NoSQL orientado a documentos

Banco adequado

MySQL

MongoDB

Estrutura

Atributos fixos (esquema rígido)

Variável (documentos flexíveis)

Consistência

Transacional (ACID)

Alta velocidade de inserção

Alternativa A — ❌ Incorreta

Inverte os modelos: coloca MongoDB (NoSQL) no Cenário I, que exige consistência transacional e atributos fixos — características do modelo relacional. O MongoDB não é recomendado para transações complexas que envolvam múltiplas operações, como vendas. E coloca PostgreSQL (relacional) no Cenário II, que exige estrutura variável e alta velocidade de inserção — características do NoSQL. O PostgreSQL, embora possa lidar com JSON, não é a escolha ideal para logs com estrutura variável em alta escala.

Alternativa B — ❌ Incorreta

Cassandra é um banco NoSQL orientado a colunas, não adequado para o Cenário I (que pede consistência transacional e atributos fixos — o modelo relacional é mais apropriado). Oracle é relacional, mas não é a melhor escolha para o Cenário II, que pede estrutura variável e alta velocidade de inserção — o modelo de documentos (MongoDB) é mais adequado.

Alternativa C — ❌ Incorreta

Redis é um banco chave-valor, não adequado para o Cenário I (que pede consistência transacional e atributos fixos — o modelo relacional é mais apropriado). Cassandra é orientado a colunas, mas não é a melhor escolha para o Cenário II, que pede estrutura variável — o modelo de documentos (MongoDB) é mais adequado.

Alternativa D — ❌ Incorreta

Neo4j é um banco de grafos, não adequado para o Cenário I (que pede consistência transacional e atributos fixos — o modelo relacional é mais apropriado). Redis é chave-valor, mas não é a melhor escolha para o Cenário II, que pede estrutura variável — o modelo de documentos (MongoDB) é mais adequado.

Alternativa E — ✅ Correta ⟵ GABARITO

MySQL é um banco relacional, ideal para o Cenário I: atributos fixos (código, nome, preço, categoria) e consistência transacional (ACID). MongoDB é um banco NoSQL orientado a documentos, ideal para o Cenário II: estrutura variável (documentos flexíveis) e alta velocidade de inserção (logs, comentários, sessões). A combinação atende perfeitamente aos dois cenários.

Gabarito: letra E

Link permanente: /questoes/qa699116