View é um resultado originado de uma consulta pré-definida. Essencialmente é um metadado que mapeia uma query para outra, por isto pode ser considerado como uma tabela virtual. Como o próprio nome diz, ela representa uma visão de dados e não contém dados.
Com ela você tem a ilusão que está vendo uma tabela que não existe. Claro que o que você vê nesta tabela existe de outra forma no banco. Veja mais detalhes na Wikipedia.
Pode ajudar entender saber que elas também são chamadas de named queries ou stored queries. Não confundir query (consulta) com resultado. Ela é a query mesmo. É basicamente um texto de um
SELECT. Pense que ela é uma query que você armazena em uma variável e ao invés de escrever toda a query de novo sempre que for necessária usa a variável. Claro que isto é uma grande simplificação para facilitar o entendimento, o funcionamento real é pouco mais complexo que isto mas não é importante aqui.
Elas não são carregadas, elas são geradas sempre que forem necessárias.
A não ser que a view seja materializada, aí você terá tabelas reais representando essas views. Mas a carga delas ocorrerão conforme a necessidade e otimizações do banco de dados. Só neste tipo de view é que os dados são atualizados quando as tabelas reais sofrem atualizações (resposta aqui).
Mas é importante notar que mesmo em uma view não materializada existe a ilusão de que uma atualização da tabela real envolvida reflita na view, afinal a view é gerada no momento que ela é necessária. Essas tabelas virtuais são dinâmicas, elas só existem no momento em que você precisa delas. Somente a query para sua geração é pré-definida. Se um dado for atualizado logo em seguida uma view for acessada, essa atualização não será considerada neste momento, somente na próxima vez que a view for usada.
É bom entender que essa “tabela virtual” que é criada, não é bem uma tabela física criada em memória com todos os dados que você precisa. A view é apenas uma forma de traduzir uma querypara outra query mais complexa. Mas uma otimização pode acabar tornando sim uma view comum em tabela física. Claro isto depende da implementação do DB.
Uma view é muito usada para ajudar dar entendimento do projeto lógico do banco de dados.
Texto por: Ramos De Souza Janones (https://www.ramosdainformatica.com.br/banco_de_dados/views-sql-vantagens-e-desvantagens/)
Revisado e corrigido por Eduarda Morais.
Comments
Post a Comment