O analista de dados João precisa implementar um banco de dados para armazenar diversos tipos de documentos, com estruturas de dados variadas, provenientes de várias fontes externas ao Tribunal. Para isso, João escolheu um banco de dados não relacional. Essa escolha se justifica pelo fato de que bancos desse tipo:
Asão schemaless;
Bsão normalizados;
Cgarantem as propriedades ACID;
Dpossuem esquema fixo (Schema-on-Write);
Eimplementam integridade referencial nativa.
Revelar gabarito e comentário▾
GabaritoA — são schemaless;
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 e a característica schemaless
Gabarito: letra A. A escolha de João se justifica porque bancos de dados não relacionais (NoSQL) são schemaless, ou seja, não exigem um esquema fixo e rígido definido previamente para a estrutura dos dados — o que é ideal para armazenar documentos com estruturas variadas e provenientes de múltiplas fontes. Essa é a característica central que diferencia os bancos NoSQL dos bancos relacionais tradicionais, que adotam o esquema fixo (Schema-on-Write).
O termo NoSQL (Not Only SQL) designa uma classe de bancos de dados não relacionais que surgiram para atender a cenários de Big Data e aplicações web em larga escala, onde a flexibilidade e a escalabilidade horizontal são mais importantes do que a rigidez estrutural. Diferentemente dos bancos relacionais, que organizam os dados em tabelas com linhas e colunas e exigem que o esquema seja definido antes da inserção dos dados, os bancos NoSQL permitem que cada registro (documento, chave-valor, nó de grafo etc.) tenha sua própria estrutura, sem a necessidade de um esquema prévio. Essa propriedade é conhecida como schemaless ou Schema-on-Read: o esquema é interpretado no momento da leitura, e não imposto na escrita.
Na prática, imagine que João precise armazenar documentos de tipos variados: um PDF, um JSON com metadados, uma planilha, um texto livre. Em um banco relacional, ele precisaria criar tabelas com colunas fixas para cada tipo de documento, e qualquer variação na estrutura exigiria alteração do esquema (DDL). Em um banco NoSQL orientado a documentos (como MongoDB), cada documento pode ter campos diferentes, e novos campos podem ser adicionados sem afetar os documentos existentes. Isso dá a flexibilidade necessária para lidar com dados heterogêneos de fontes externas.
A principal distinção que a banca explora é entre Schema-on-Write (bancos relacionais) e Schema-on-Read (bancos NoSQL). No primeiro, o esquema é definido antes da gravação e os dados devem obedecê-lo; no segundo, os dados são gravados livremente e o esquema é aplicado na leitura. Essa é a fronteira que separa as alternativas corretas das incorretas.
NÃO CAIA NESSA!
A banca tenta confundir o candidato ao associar bancos NoSQL a características típicas dos bancos relacionais, como normalização, ACID e integridade referencial. O candidato que não domina a diferença entre os dois paradigmas pode marcar uma alternativa errada. Lembre-se: NoSQL = flexibilidade (schemaless); Relacional = rigidez (esquema fixo).
Critério
Bancos Relacionais (SQL)
Bancos Não Relacionais (NoSQL)
Esquema
Fixo (Schema-on-Write)
Flexível (Schema-on-Read / schemaless)
Normalização
Aplicada para eliminar redundâncias
Geralmente não aplicada; redundância é aceita
Propriedades
Garantem ACID
Geralmente seguem BASE (consistência eventual)
Integridade referencial
Nativa (chaves estrangeiras)
Não nativa; responsabilidade da aplicação
Alternativa A — ✅ Correta ⟵ GABARITO
A alternativa A está correta porque a principal justificativa para a escolha de um banco de dados não relacional é exatamente o fato de serem schemaless. Isso significa que não há necessidade de definir previamente um esquema rígido para a estrutura dos dados, permitindo armazenar documentos com estruturas variadas, como descrito no enunciado. Essa característica é amplamente reconhecida na literatura e em provas de concursos, como na questão do CESPE/CEBRASPE 2024 que afirma: "Bancos de dados NoSQL são frequentemente descritos como schemaless, porque não requerem um esquema fixo para a estrutura dos dados, permitindo que documentos sejam armazenados sem uma definição rígida de colunas ou atributos."
Alternativa B — ❌ Incorreta
A alternativa B está incorreta porque a normalização é um processo típico dos bancos de dados relacionais, que visa eliminar redundâncias e anomalias de inserção, exclusão e atualização, dividindo tabelas em estruturas menores e mais organizadas. Os bancos NoSQL, por serem schemaless e priorizarem flexibilidade e desempenho, geralmente não seguem as regras de normalização — pelo contrário, muitas vezes aceitam redundância de dados para ganhar velocidade de leitura. Portanto, afirmar que bancos não relacionais são normalizados é um erro conceitual.
Alternativa C — ❌ Incorreta
A alternativa C está incorreta porque as propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade) são garantidas pelos bancos de dados relacionais tradicionais, que priorizam a consistência imediata. Os bancos NoSQL, em sua maioria, não garantem ACID de forma plena, adotando em vez disso o modelo BASE (Basically Available, Soft state, Eventually consistent), que prioriza disponibilidade e tolerância a partição em detrimento da consistência imediata. Embora alguns bancos NoSQL específicos (como o Google Spanner) ofereçam suporte a ACID, isso não é uma característica geral da categoria.
Alternativa D — ❌ Incorreta
A alternativa D está incorreta porque os bancos NoSQL não possuem esquema fixo (Schema-on-Write). Pelo contrário, eles adotam o Schema-on-Read, ou seja, o esquema é aplicado no momento da leitura dos dados, permitindo que cada registro tenha sua própria estrutura. O esquema fixo é uma característica dos bancos relacionais, que exigem a definição prévia de tabelas, colunas e tipos de dados antes da inserção. A alternativa inverte exatamente a característica que define os bancos NoSQL.
Alternativa E — ❌ Incorreta
A alternativa E está incorreta porque a integridade referencial é uma restrição típica dos bancos relacionais, implementada por meio de chaves estrangeiras (foreign keys) que garantem a consistência entre tabelas relacionadas. Os bancos NoSQL, por serem schemaless e distribuídos, não implementam integridade referencial nativa — eles geralmente não possuem mecanismos automáticos para garantir que referências entre documentos ou registros sejam válidas, deixando essa responsabilidade para a aplicação. Portanto, afirmar que bancos não relacionais implementam integridade referencial nativa é incorreto.