Visão (View) em Banco de Dados
Gabarito: C (itens II e III). Visões são tabelas virtuais que armazenam apenas a definição da consulta, não as linhas (item II correto), e visões complexas podem conter funções, como agregações ou funções de string (item III correto). O item I erra ao afirmar que visões complexas podem utilizar comandos DML para manipulação dos dados (na prática, apenas visões simples e atualizáveis permitem DML), e o item IV erra ao equiparar visões a tabelas temporárias, que armazenam dados fisicamente.
A questão cobra conceitos fundamentais sobre views no modelo relacional. O principal a entender é que uma view é uma consulta armazenada (uma tabela virtual) que não materializa os dados; ela apenas referencia as tabelas base. Já as tabelas temporárias (temp tables) de fato armazenam linhas em disco ou memória, com suporte a DML completo.
Item | Afirmação | Correto? | Justificativa |
|---|
I | Visões complexas podem utilizar comandos DML para manipulação dos dados. | ❌ | Visões complexas (com JOIN, GROUP BY, funções de agregação) geralmente não são atualizáveis; apenas visões simples permitem DML com restrições. |
II | Visões fazem referência a tabelas, sem armazenar nenhuma linha. | ✅ | Visões são tabelas virtuais que armazenam apenas a definição da consulta, não os dados fisicamente. |
III | Visões complexas podem conter funções. | ✅ | Visões podem incluir funções de agregação (SUM, COUNT), funções de string, matemáticas, etc. |
IV | Visões e tabelas temporárias são equivalentes quanto ao tratamento. | ❌ | Tabelas temporárias armazenam dados fisicamente (em disco/memória), enquanto visões são apenas consultas armazenadas. |
Item I — ❌ Incorreto
Afirma que visões complexas podem utilizar comandos DML (INSERT, UPDATE, DELETE) para manipulação de dados. No entanto, visões complexas — que envolvem junções (JOIN), agrupamento (GROUP BY), funções de agregação ou outras operações que não mapeiam diretamente uma única tabela — geralmente não são atualizáveis. Apenas visões simples (baseadas em uma única tabela, sem funções de agregação ou DISTINCT) podem permitir DML, e mesmo assim com restrições. Portanto, a afirmação é falsa.
Item II — ✅ Correto
"Visões fazem referência a tabelas, sem armazenar nenhuma linha." Perfeito. Conforme o conceito:
Uma visão (ou view) é uma única tabela que é derivada de outras tabelas... Uma visão não necessariamente existe em forma física; ela é considerada uma tabela virtual, ao contrário das tabelas da base, cujas tuplas sempre estão armazenadas fisicamente no banco de dados. (Trecho do contexto)
A visão armazena apenas a consulta (DDL), não os dados. Logo, correto.
Item III — ✅ Correto
"Visões complexas podem conter funções." Sim, visões podem incluir funções de agregação (SUM, COUNT, AVG), funções de string, funções matemáticas, etc. Isso é uma característica comum das views. O item está correto.
Item IV — ❌ Incorreto
"Visões e tabelas temporárias são equivalentes quanto ao tratamento." Falso. Tabelas temporárias são objetos físicos que armazenam dados temporariamente em disco ou memória, permitindo DML irrestrito. Visões são virtuais, não armazenam dados e têm regras específicas para atualizações. Não há equivalência.
Alternativa A — ❌ Incorreta
Afirma que estão certos apenas os itens I e II. O item I é falso, pois visões complexas não permitem DML. Logo, a combinação está errada.
Alternativa B — ❌ Incorreta
Afirma que estão certos apenas os itens I e IV. Ambos são falsos (item I e item IV). Logo, incorreta.
Alternativa C — ✅ Correta ⟵ GABARITO
Afirma que estão certos apenas os itens II e III. Ambos são verdadeiros, conforme a análise. Portanto, esta é a alternativa correta.
Alternativa D — ❌ Incorreta
Afirma que estão certos apenas os itens I, III e IV. Os itens I e IV são falsos. Logo, incorreta.
Alternativa E — ❌ Incorreta
Afirma que estão certos apenas os itens II, III e IV. O item IV é falso. Logo, incorreta.
Gabarito: C (itens II e III).