Questão de Banco de Dados — Tópicos Mesclados e Outros Assuntos de Banco de Dados — FGV 2024
Banco de Dados›Tópicos Mesclados e Outros Assuntos de Banco de Dados
Código
fg165186
Banca
FGV
Órgão
Pref BH
Ano
2024
Cargo
ACI ( )
Com relação às tecnologias referentes a bancos de dados, analise as afirmativas a seguir.
I. As consultas abaixo representam condições inconsistentes, pois sempre retornam resultados inválidos, independentemente do estado do banco, por apresentarem erros semânticos no esquema (SQL_01) e na consulta (SQL_02), respectivamente.
SQL_01:Exemplo de erro semântico no esquema
SELECT*
FROM Empregado E
WHERE E.sexo = 'M' AND E.sexo = 'F';
SQL_02: Exemplo de erro semântico na consulta
--CHECK CONSTRAINT (sexo = 'M' or sexo = 'F');
SELECT*
FROM Empregado E
WHERE E.sexo = 'W';
II. Dependendo da complexidade da consulta e do grau de normalização dos dados, o Banco de Dados NoSQL não deve substituir a escolha de um banco de dados relacionais, pois o BD NoSQL funciona adequadamente com consultas em uma única tabela e normalmente não oferece junções complexas, subconsultas e aninhamento de consultas em uma cláusula WHERE.
III. Análise de dados complexos podem ser realizados usando cubos de dados OLAP (On-line Analytical Processing) digerindo dados obtidos diretamente por ETL. (Extraction – Tranformation – Load), sendo o resultado do processamento armazenado no DW (Data Warehouse) ou DM (Data Mart).
Está correto o que se afirma em
AII e III, apenas.
BI e II, apenas.
CII, apenas.
DI, apenas.
Revelar gabarito e comentário▾
GabaritoC — II, apenas.
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: SQL, NoSQL e OLAP
Gabarito: letra C — apenas o item II está correto. O item I está errado porque as consultas SQL_01 e SQL_02 não representam erros semânticos de esquema ou de consulta, mas sim consultas que retornam conjuntos vazios (ou, no caso da SQL_01, uma condição logicamente impossível, mas sintaticamente válida). O item III está errado porque o resultado do processamento OLAP não é armazenado no DW ou DM; o DW/DM é a fonte de dados para o OLAP, e não o destino.
Vamos entender cada conceito para fixar a matéria. A questão mistura três temas: a semântica de consultas SQL, as limitações dos bancos NoSQL e a arquitetura de Business Intelligence (BI) com ETL, DW e OLAP.
Item I — Consultas SQL e erros semânticos: A afirmativa diz que as consultas SQL_01 e SQL_02 representam "condições inconsistentes" que "sempre retornam resultados inválidos" por apresentarem "erros semânticos no esquema" e "na consulta". Isso está errado. A SQL_01 (WHERE E.sexo = 'M' AND E.sexo = 'F') é uma condição logicamente impossível — nenhuma linha pode ter sexo 'M' e 'F' ao mesmo tempo —, mas é uma consulta sintaticamente válida e semanticamente correta do ponto de vista do SGBD. Ela simplesmente retorna um conjunto vazio. Não há erro de esquema (o esquema pode até ter uma CHECK CONSTRAINT que restrinja sexo a 'M' ou 'F', mas isso não torna a consulta inválida). A SQL_02 (WHERE E.sexo = 'W') também é válida; ela retorna vazio se não houver 'W' na coluna, mas isso é um resultado válido, não um erro. A afirmativa confunde "resultado vazio" com "erro". Um erro semântico de consulta seria, por exemplo, referenciar uma coluna inexistente ou usar uma função de forma incorreta.
Item II — NoSQL e consultas complexas: Este item está correto. Bancos NoSQL (Not Only SQL) são projetados para escalabilidade horizontal, alta disponibilidade e dados semiestruturados ou não estruturados. Eles sacrificam, em muitos casos, a capacidade de realizar junções complexas, subconsultas e aninhamentos, que são pontos fortes dos bancos relacionais. A afirmativa diz que "dependendo da complexidade da consulta e do grau de normalização dos dados, o Banco de Dados NoSQL não deve substituir a escolha de um banco de dados relacionais". Isso é verdade: para consultas complexas que exigem junções e subconsultas, o modelo relacional é mais adequado. O NoSQL funciona bem com consultas em uma única tabela (ou coleção), mas não é a melhor escolha para cenários que exigem relacionamentos complexos.
Item III — OLAP, ETL e DW: Este item está errado. O fluxo correto é: dados de origem → ETL (Extract, Transform, Load) → DW/DM → OLAP. O OLAP (On-line Analytical Processing) é a ferramenta que consome os dados do DW/DM para realizar análises multidimensionais (cubos). O resultado do processamento OLAP não é armazenado no DW/DM; ele é apresentado ao usuário para análise. A afirmativa inverte o fluxo, dizendo que o OLAP "digerindo dados obtidos diretamente por ETL" e que "o resultado do processamento armazenado no DW ou DM". Isso está incorreto: o ETL carrega o DW, e o OLAP lê o DW.
Agora, vamos analisar cada item em detalhes.
Item I — ❌ Incorreto
A afirmativa está errada ao classificar as consultas como "condições inconsistentes" que "sempre retornam resultados inválidos" por "erros semânticos". A SQL_01 (WHERE E.sexo = 'M' AND E.sexo = 'F') é uma condição logicamente impossível, mas sintaticamente válida. O SGBD não acusa erro; ele simplesmente retorna um conjunto vazio. A SQL_02 (WHERE E.sexo = 'W') também é válida; retorna vazio se não houver 'W'. Não há erro semântico de esquema nem de consulta. O erro da afirmativa é confundir "resultado vazio" com "erro". Um erro semântico real seria, por exemplo, SELECT * FROM Empregado WHERE sexo = 'M' AND salario > (consulta incompleta) ou referenciar uma coluna inexistente.
Item II — ✅ Correto ⟵ GABARITO
A afirmativa está correta. Bancos NoSQL são otimizados para escalabilidade e dados não estruturados, mas não são ideais para consultas complexas que exigem junções, subconsultas e aninhamentos. O modelo relacional é mais adequado para esses cenários. A afirmativa reflete com precisão essa limitação: "o BD NoSQL funciona adequadamente com consultas em uma única tabela e normalmente não oferece junções complexas, subconsultas e aninhamento de consultas em uma cláusula WHERE".
Item III — ❌ Incorreto
A afirmativa inverte o fluxo da arquitetura de BI. O fluxo correto é: ETL → DW/DM → OLAP. O ETL extrai, transforma e carrega os dados no DW/DM. O OLAP é a ferramenta de análise que lê os dados do DW/DM para criar cubos multidimensionais. O resultado do processamento OLAP não é armazenado no DW/DM; ele é apresentado ao usuário. A afirmativa diz que o OLAP "digerindo dados obtidos diretamente por ETL" e que "o resultado do processamento armazenado no DW ou DM", o que está errado.
Conclusão: Apenas o item II está correto. Portanto, a alternativa correta é a letra C.