Pular para o conteúdo principal

Questão de Banco de Dados — Visão (View) — Quadrix 2023

Banco de DadosVisão (View)
Código
qa540998
Banca
Quadrix
Órgão
CREF 3
Ano
2023
Cargo
Ana ( )
Considerando as tabelas acima, que representam a apuração de denúncias por agentes do CREF3, criadas em um banco de dados relacional, julgue o item.   Não é permitido que seja criada uma view para mostrar a quantidade de denúncias ocorridas na cidade de Joinville, já que uma view somente pode ser criada referenciando, no mínimo, duas tabelas.Imagem associada para resolução da questão
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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

Visões (views) em banco de dados relacionais

Gabarito: ERRADO (letra E). A afirmação de que uma view somente pode ser criada referenciando, no mínimo, duas tabelas é falsa — uma view pode ser criada a partir de uma única tabela, de várias tabelas ou até de outras views. O conceito central é que uma view é uma tabela virtual derivada de uma consulta armazenada, sem a restrição de quantidade de tabelas-base.

Uma view (ou visão) é, essencialmente, uma consulta SQL pré-definida e armazenada no banco de dados, que se comporta como uma tabela virtual para os usuários. Quando você cria uma view, o SGBD guarda apenas a definição da consulta (o comando CREATE VIEW), não os dados em si. Ao ser referenciada, a view executa a consulta subjacente e retorna os dados atualizados das tabelas-base. Isso significa que a view não ocupa espaço físico de armazenamento (exceto no caso de views materializadas, que veremos adiante) e sempre reflete as alterações feitas nas tabelas originais.

A utilidade prática das views é enorme: elas permitem restringir o acesso a determinadas colunas ou linhas (segurança), simplificar consultas complexas para usuários finais, mascarar a complexidade do esquema e padronizar consultas frequentemente utilizadas. Por exemplo, se um sistema precisa frequentemente consultar o total de denúncias por cidade, em vez de reescrever a consulta com JOIN e GROUP BY toda vez, pode-se criar uma view que encapsula essa lógica.

A pegadinha desta questão está na falsa premissa de que uma view exige múltiplas tabelas. Na verdade, a definição de view não impõe nenhum requisito mínimo de quantidade de tabelas. Uma view pode ser criada sobre uma única tabela, filtrando colunas e linhas, ou sobre múltiplas tabelas com junções. A única exigência real é que a consulta subjacente seja válida. Portanto, a afirmação de que "não é permitido" criar uma view com uma única tabela é completamente equivocada.

Para fixar: a view é uma abstração sobre o esquema físico, e sua flexibilidade é justamente um de seus pontos fortes. A banca explora a confusão entre "view exige junção de tabelas" (mito) e a realidade de que views podem ser simples ou complexas, conforme a necessidade.

1Definição
Consulta SQL armazenada
Não guarda dados (exceto materializada)
Sempre reflete as tabelas-base
2Fontes possíveis
Uma única tabela
Várias tabelas (JOIN)
Outras views
3Utilidades
Segurança (restringe colunas/linhas)
Simplifica consultas complexas
Padroniza consultas frequentes
4Requisito real
Consulta subjacente válida
Sem mínimo de tabelas
View (tabela virtual)
LEVELsoulevel.com.br
View (tabela virtual): Definição (Consulta SQL armazenada, Não guarda dados (exceto materializada), Sempre reflete as tabelas-base); Fontes possíveis (Uma única tabela, Várias tabelas (JOIN), Outras views); Utilidades (Segurança (restringe colunas/linhas), Simplifica consultas complexas, Padroniza consultas frequentes); Requisito real (Consulta subjacente válida, Sem mínimo de tabelas)

Item — ❌ ERRADO

A assertiva afirma que não é permitido criar uma view para mostrar a quantidade de denúncias na cidade de Joinville, sob o argumento de que uma view somente pode ser criada referenciando, no mínimo, duas tabelas. Esse argumento é falso. Uma view pode ser criada a partir de uma única tabela, de várias tabelas ou até de outras views. Não existe nenhuma restrição no modelo relacional ou na linguagem SQL que exija um número mínimo de tabelas para a criação de uma view.

No caso concreto, se a tabela de denúncias contém a coluna cidade (ou similar), seria perfeitamente possível criar uma view com uma consulta como:

CREATE VIEW DenunciasJoinville AS
SELECT COUNT(*) AS total_denuncias
FROM Denuncias
WHERE cidade = 'Joinville';

Essa view referencia apenas uma tabela e é totalmente válida. Portanto, a justificativa apresentada no enunciado está incorreta, tornando o item ERRADO.

NÃO CAIA NESSA!

A banca tenta fazer o candidato acreditar que view é sinônimo de junção (JOIN) entre tabelas. Na prática, a view é apenas uma consulta armazenada — ela pode ser tão simples quanto SELECT * FROM tabela ou tão complexa quanto uma consulta com múltiplos JOINs, GROUP BY e subconsultas. A quantidade de tabelas envolvidas não é um critério de validade.

PEGA ESSA DICA!

Ao julgar questões sobre views, lembre-se sempre: view = consulta armazenada (tabela virtual). Pergunte-se: "essa consulta poderia ser executada diretamente?" Se sim, a view também pode ser criada. Não existe limitação de número de tabelas, nem de tipos de dados, nem de quantidade de consultas.

Gabarito: letra E (ERRADO).

Link permanente: /questoes/qa540998