Pular para o conteúdo principal

Questão de Banco de Dados — Conceitos Gerais de NoSQL — INSTITUTO AOCP 2024

Banco de DadosConceitos Gerais de NoSQL
Código
qa630664
Banca
INSTITUTO AOCP
Órgão
MPE PR
Ano
2024
Cargo
Ana ( )

A respeito de bancos de dados NoSQL, analise as assertivas e assinale a alternativa correta.

 

I. Bancos de dados NoSQL são ideais para armazenar dados estruturados e normalizados que requerem transações ACID estritas.

 

II. Os bancos de dados NoSQL, como MongoDB e Cassandra, são projetados para lidar com grandes volumes de dados e alta taxa de leitura/escrita.

 

III. A consistência eventual é um modelo de consistência frequentemente usado em bancos de dados NoSQL, em que as atualizações são propagadas gradualmente e os dados se tornam consistentes eventualmente.

 

IV. Bancos de dados NoSQL utilizam esquemas rígidos, tornando a alteração da estrutura dos dados um processo complexo e demorado.

  1. AApenas I e IV estão incorretas.
  2. BApenas II e III estão incorretas.
  3. CApenas I e III estão incorretas.
  4. DI, II, III e IV estão corretas.
  5. EI, II, III e IV estão incorretas.
Revelar gabarito e comentário

GabaritoA — Apenas I e IV estão incorretas.

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

Bancos de dados NoSQL: características fundamentais

Gabarito: letra A. As assertivas I e IV estão incorretas, pois os bancos NoSQL são projetados para dados semiestruturados ou não estruturados, com esquemas flexíveis, e não para dados estritamente normalizados com transações ACID rígidas. As assertivas II e III estão corretas, refletindo a escalabilidade horizontal e a consistência eventual, características centrais do paradigma NoSQL.

Os bancos de dados NoSQL (Not Only SQL) surgiram para atender a requisitos de grandes volumes de dados, alta disponibilidade e escalabilidade, especialmente em aplicações web e Big Data. Diferentemente dos bancos relacionais, que seguem o modelo tabular com esquemas rígidos e transações ACID, os bancos NoSQL adotam modelos de dados mais flexíveis, como chave-valor, documentos, colunas e grafos. Essa flexibilidade permite lidar com dados semiestruturados ou não estruturados, onde a estrutura pode variar entre registros, e facilita a escalabilidade horizontal, distribuindo os dados em clusters de máquinas.

A consistência eventual é um modelo de consistência frequentemente adotado em sistemas NoSQL distribuídos. Nesse modelo, as atualizações são propagadas gradualmente entre os nós do cluster, e os dados se tornam consistentes eventualmente, ou seja, após um período de propagação. Isso contrasta com a consistência imediata dos bancos relacionais, que garantem que qualquer leitura reflita a última escrita. A consistência eventual é uma escolha de design que prioriza disponibilidade e tolerância a partição, em detrimento da consistência forte, conforme o Teorema CAP.

Na prática, um banco NoSQL como o MongoDB (orientado a documentos) permite armazenar documentos JSON com estruturas diferentes, sem a necessidade de definir um esquema prévio. Já o Cassandra (orientado a colunas) é otimizado para escrita e leitura em larga escala, sendo usado em sistemas de logs e contadores. Esses bancos são ideais para cenários que exigem alta taxa de leitura/escrita e escalabilidade horizontal, mas não são adequados para aplicações que demandam transações ACID estritas, como sistemas bancários tradicionais.

A pegadinha desta questão está em inverter as características dos bancos NoSQL: a banca apresenta como corretas as características dos bancos relacionais (dados estruturados, normalizados, ACID, esquemas rígidos) e como incorretas as características reais dos NoSQL (dados flexíveis, consistência eventual, escalabilidade). O candidato que não domina o conceito pode ser induzido a marcar as assertivas I e IV como corretas, caindo na armadilha. Guarde a fronteira: NoSQL = flexibilidade, escalabilidade, consistência eventual; SQL = estrutura rígida, ACID, consistência imediata.

Critério

SQL (Relacional)

NoSQL

Modelo de dados

Tabelas, esquema rígido

Documentos, colunas, chave-valor, grafos

Esquema

Fixo, migrações complexas

Flexível, sem esquema prévio

Transações

ACID estritas

Geralmente sem ACID, consistência eventual

Escalabilidade

Vertical

Horizontal (clusters)

Uso típico

Sistemas bancários, dados normalizados

Big Data, alta taxa de leitura/escrita

Item I — ❌ Incorreto

A assertiva afirma que bancos NoSQL são ideais para dados estruturados e normalizados com transações ACID estritas. Isso é exatamente o oposto da realidade. Os bancos NoSQL são projetados para dados semiestruturados ou não estruturados, com esquemas flexíveis, e geralmente não oferecem transações ACID no sentido estrito. A maioria dos bancos NoSQL sacrifica a consistência forte em favor de disponibilidade e tolerância a partição, adotando a consistência eventual. Portanto, a assertiva está incorreta.

Item II — ✅ Correto

A assertiva afirma que bancos NoSQL, como MongoDB e Cassandra, são projetados para grandes volumes de dados e alta taxa de leitura/escrita. Isso está correto. Esses bancos são explicitamente projetados para execução em clusters, permitindo escalabilidade horizontal e alto desempenho em operações de leitura e escrita. O MongoDB é orientado a documentos, enquanto o Cassandra é orientado a colunas, ambos otimizados para cenários de Big Data e aplicações web de alta demanda.

Item III — ✅ Correto

A assertiva descreve corretamente a consistência eventual, um modelo de consistência frequentemente usado em bancos NoSQL. Nesse modelo, as atualizações são propagadas gradualmente entre os nós, e os dados se tornam consistentes eventualmente, após um período de propagação. Isso significa que uma leitura pode não refletir imediatamente a última escrita, mas eventualmente todos os nós convergem para o mesmo estado. Essa é uma característica fundamental de muitos sistemas NoSQL distribuídos.

Item IV — ❌ Incorreto

A assertiva afirma que bancos NoSQL utilizam esquemas rígidos, tornando a alteração da estrutura dos dados um processo complexo e demorado. Isso é o oposto da realidade. Os bancos NoSQL são conhecidos por sua flexibilidade de esquema, permitindo a inserção de dados sem um esquema predefinido e facilitando alterações na estrutura dos dados. Essa flexibilidade é uma das principais vantagens dos bancos NoSQL em relação aos relacionais, que exigem migrações complexas para alterar o esquema.

Conclusão: Corretos: II e III → portanto a alternativa é a letra A (apenas I e IV estão incorretas).

Gabarito: letra A

Link permanente: /questoes/qa630664